@danielgindi/selectbox 1.0.39 → 1.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["node_modules/core-js/internals/engine-v8-version.js","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/function-call.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/function-uncurry-this.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-callable.js","node_modules/core-js/internals/is-object.js","node_modules/core-js/internals/get-built-in.js","node_modules/core-js/internals/object-is-prototype-of.js","node_modules/core-js/internals/engine-user-agent.js","node_modules/core-js/internals/native-symbol.js","node_modules/core-js/internals/use-symbol-as-uid.js","node_modules/core-js/internals/is-symbol.js","node_modules/core-js/internals/try-to-string.js","node_modules/core-js/internals/a-callable.js","node_modules/core-js/internals/get-method.js","node_modules/core-js/internals/ordinary-to-primitive.js","node_modules/core-js/internals/set-global.js","node_modules/core-js/internals/shared-store.js","node_modules/core-js/internals/shared.js","node_modules/core-js/internals/to-object.js","node_modules/core-js/internals/has-own-property.js","node_modules/core-js/internals/uid.js","node_modules/core-js/internals/well-known-symbol.js","node_modules/core-js/internals/to-primitive.js","node_modules/core-js/internals/to-property-key.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/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-key.js","node_modules/core-js/internals/hidden-keys.js","node_modules/core-js/internals/function-name.js","node_modules/core-js/internals/redefine.js","node_modules/core-js/internals/to-integer-or-infinity.js","node_modules/core-js/internals/to-absolute-index.js","node_modules/core-js/internals/to-length.js","node_modules/core-js/internals/length-of-array-like.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/own-keys.js","node_modules/core-js/internals/object-get-own-property-symbols.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/function-apply.js","node_modules/core-js/internals/is-array.js","node_modules/core-js/internals/to-string-tag-support.js","node_modules/core-js/internals/object-create.js","node_modules/core-js/internals/classof.js","node_modules/core-js/internals/to-string.js","node_modules/core-js/internals/object-keys.js","node_modules/core-js/internals/object-define-properties.js","node_modules/core-js/internals/html.js","node_modules/core-js/internals/array-slice.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/internals/path.js","node_modules/core-js/internals/set-to-string-tag.js","node_modules/core-js/internals/function-bind-context.js","node_modules/core-js/internals/is-constructor.js","node_modules/core-js/internals/array-species-constructor.js","node_modules/core-js/internals/array-species-create.js","node_modules/core-js/internals/array-iteration.js","node_modules/core-js/modules/es.symbol.js","node_modules/core-js/modules/es.symbol.description.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/object-to-array.js","node_modules/core-js/modules/es.object.entries.js","node_modules/core-js/internals/create-property.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/internals/array-method-is-strict.js","node_modules/core-js/modules/es.array.join.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/iterators.js","node_modules/core-js/internals/is-array-iterator-method.js","node_modules/core-js/internals/get-iterator-method.js","node_modules/core-js/internals/get-iterator.js","node_modules/core-js/internals/array-from.js","node_modules/core-js/internals/check-correctness-of-iteration.js","node_modules/core-js/modules/es.array.from.js","node_modules/core-js/internals/string-multibyte.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/create-iterator-constructor.js","node_modules/core-js/internals/a-possible-prototype.js","node_modules/core-js/internals/object-set-prototype-of.js","node_modules/core-js/internals/define-iterator.js","node_modules/core-js/modules/es.string.iterator.js","node_modules/core-js/internals/is-regexp.js","node_modules/core-js/modules/es.string.starts-with.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.array.splice.js","node_modules/core-js/modules/es.array.slice.js","node_modules/core-js/internals/create-html.js","node_modules/core-js/modules/es.string.anchor.js","node_modules/core-js/internals/string-html-forced.js","node_modules/core-js/internals/add-to-unscopables.js","node_modules/core-js/modules/es.array.find.js","node_modules/core-js/internals/inherit-if-required.js","node_modules/core-js/internals/regexp-flags.js","node_modules/core-js/internals/regexp-sticky-helpers.js","node_modules/core-js/internals/set-species.js","node_modules/core-js/internals/regexp-unsupported-dot-all.js","node_modules/core-js/internals/regexp-unsupported-ncg.js","node_modules/core-js/modules/es.regexp.constructor.js","node_modules/core-js/internals/regexp-exec.js","node_modules/core-js/modules/es.regexp.exec.js","node_modules/core-js/modules/es.regexp.to-string.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","lib/utils/escapeRegex.js","lib/DropList.js","node_modules/core-js/modules/es.array.iterator.js","node_modules/core-js/internals/array-buffer-non-extensible.js","node_modules/core-js/internals/object-is-extensible.js","node_modules/core-js/internals/freezing.js","node_modules/core-js/internals/internal-metadata.js","node_modules/core-js/internals/iterate.js","node_modules/core-js/internals/an-instance.js","node_modules/core-js/internals/collection.js","node_modules/core-js/internals/redefine-all.js","node_modules/core-js/internals/collection-strong.js","node_modules/core-js/modules/es.set.js","node_modules/core-js/internals/dom-token-list-prototype.js","node_modules/core-js/modules/web.dom-collections.iterator.js","node_modules/core-js/internals/dom-iterables.js","node_modules/core-js/internals/object-assign.js","node_modules/core-js/modules/es.object.assign.js","node_modules/core-js/internals/string-trim-forced.js","node_modules/core-js/internals/string-trim.js","node_modules/core-js/modules/es.string.trim.js","node_modules/core-js/internals/whitespaces.js","node_modules/core-js/modules/es.array.filter.js","node_modules/core-js/modules/es.array.map.js","node_modules/core-js/modules/es.array.find-index.js","node_modules/core-js/internals/array-sort.js","node_modules/core-js/internals/engine-ff-version.js","node_modules/core-js/internals/engine-is-ie-or-edge.js","node_modules/core-js/internals/engine-webkit-version.js","node_modules/core-js/modules/es.array.sort.js","lib/utils/throttle.js","lib/SelectBox.js"],"sourcesContent":["var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && 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;\n","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 es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\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 // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.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} : $propertyIsEnumerable;\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 FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.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 -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\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","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\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 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.19.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\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 symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : 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 // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(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 uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\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 || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(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 isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\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 DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\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 name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\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 isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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 = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\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 = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\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 uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\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) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, 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\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\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\nvar concat = uncurryThis([].concat);\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 ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\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 (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\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 : isCallable(detection) ? 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 options.name - the .name of the function if it does not match the key\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","var FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\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","/* global ActiveXObject -- old IE, WSH */\nvar 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 activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\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 global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\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' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\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\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\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++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\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 (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function (argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n // we can't check .prototype since constructors produced by .bind haven't it\n } return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n};\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (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 C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` 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_REJECT = 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);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? 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(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\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.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\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 arraySlice = require('../internals/array-slice');\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');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\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');\n\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(SymbolPrototype);\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 $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(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 || call($propertyIsEnumerable, 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 = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(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 (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, 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 (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, 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 (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(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 SymbolPrototype = $Symbol[PROTOTYPE];\n\n redefine(SymbolPrototype, '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(SymbolPrototype, '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 = $toString(key);\n if (hasOwn(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 (hasOwn(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 -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var $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 (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n var valueOf = SymbolPrototype.valueOf;\n // eslint-disable-next-line no-unused-vars -- required for .length\n redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n // TODO: improve hint logic\n return call(valueOf, this);\n });\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 uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\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 : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\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\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\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","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\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(O, key)) {\n push(result, 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","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\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 global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\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';\nvar TypeError = global.TypeError;\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 // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\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 = lengthOfArrayLike(E);\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","'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 -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\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 } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","module.exports = {};\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","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\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 getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\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 IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, 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 = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(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","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 es/no-array-from, no-throw-literal -- required for testing\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 $ = 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 // eslint-disable-next-line es/no-array-from -- required for testing\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 uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (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 fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\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\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\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 = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\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 // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\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 Object = global.Object;\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 var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\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 global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar 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-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(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(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\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 Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\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 (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(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.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\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 // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\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: toString(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","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","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\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 global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\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 un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\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 }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\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 (isConstructor(Constructor) && (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 un$Slice(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 uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '&quot;') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\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 $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var isCallable = require('../internals/is-callable');\nvar 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 isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\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","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('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 = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\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 fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (UNSUPPORTED_Y && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, 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 || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n // eslint-disable-next-line max-statements -- TODO\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(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 = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], 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 call(nativeReplace, 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 if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.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 = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, 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 FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\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: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[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 uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\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(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 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 ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\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 // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\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\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\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 : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(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 push(results, result);\n if (!global) break;\n\n var matchStr = toString(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 = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(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++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","export default value => value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\r\n","import escapeRegex from './utils/escapeRegex';\r\nimport {\r\n closestUntil,\r\n createElement,\r\n} from '@danielgindi/dom-utils/lib/Dom';\r\nimport {\r\n remove,\r\n toggleClass,\r\n} from '@danielgindi/dom-utils/lib/DomCompat';\r\nimport {\r\n setCssProps,\r\n getElementHeight,\r\n getElementWidth,\r\n setElementHeight,\r\n setElementWidth, getElementOffset, anchoredPosition,\r\n parseTransition,\r\n} from '@danielgindi/dom-utils/lib/Css';\r\nimport DomEventsSink from '@danielgindi/dom-utils/lib/DomEventsSink';\r\nimport VirtualListHelper from '@danielgindi/virtual-list-helper';\r\nimport {\r\n VALUE_DOWN,\r\n VALUE_END,\r\n VALUE_ENTER, VALUE_ESCAPE,\r\n VALUE_HOME,\r\n VALUE_PAGE_DOWN,\r\n VALUE_PAGE_UP,\r\n VALUE_SPACE,\r\n VALUE_UP,\r\n} from 'keycode-js';\r\nimport mitt from 'mitt';\r\n\r\nconst ItemSymbol = Symbol('item');\r\nconst DestroyedSymbol = Symbol('destroyed');\r\nconst GhostSymbol = Symbol('ghost');\r\n\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\n/**\r\n * @typedef {Object} DropList.Options\r\n * @property {Element} [el] An element to attach to, instead of creating a new one\r\n * @property {string} [baseClassName='droplist'] class name for the menu root element\r\n * @property {string|string[]} [additionalClasses]\r\n * @property {number} [itemBlurDelay=300] How long to wait before deciding to blur the focused item?\r\n * @property {boolean} [capturesFocus=true] Should this DropList be added to the TAB-key stack?\r\n * @property {boolean} [multi=false] Does this DropList show checkboxes for multiple item selection?\r\n * @property {function} [keyDownHandler=null] An alternative \"keydown\" event handler. Return true to prevent default behaviour.\r\n * @property {boolean} [autoCheckGroupChildren=true] When a group is checked/unchecked - all items beneath it will update accordingly\r\n * @property {boolean} [useExactTargetWidth=false] Use the exact target's width, do not allow growing\r\n * @property {boolean} [constrainToWindow=true] Should the position be constrained to the window, attaching to window's borders if needed?\r\n * @property {Boolean} [autoFlipDirection=true] Should the position/anchor be flipped automatically when there's no space in the required direction?\r\n * @property {number} [estimatedItemHeight=20] An estimated row height, for approximating scroll height.\r\n * @property {boolean} [estimateWidth=false] Use an estimation for the width instead of measuring. May be faster - needs testing and may depend on the CSS.\r\n * @property {number} [virtualMinItems=100] Turns into a virtual list - with items being created and showing up on viewport only. The value specified the minimum item count where a virtual list will be created.\r\n * @property {string} [labelProp='label']\r\n * @property {string} [valueProp='value']\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderItem] Function to call when rendering an item element\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderItem] Function to call when rendering an item element\r\n * @property {function(name: string, data: *)} [on]\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.PositionAnchor\r\n * @property {'left'|'center'|'right'|'start'|'end'|string|number} x - horizontal anchor specification (could be either `'left'|'center'|'right'|'start'|'end'` or a percentage `'50%'` or a fixed decimal `Number`)\r\n * @property {'top'|'center'|'bottom'|string|number} y - vertical anchor specification (could be either `'top'|'center'|'bottom'` or a percentage `'50%'` or a fixed decimal `Number`)\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.PositionOptions\r\n * @property {Element} [target] Target element to act as anchor\r\n * @property {{left: number, top: number}} [targetOffset=undefined] Override the offset of target. Automatically calculated if unspecified.\r\n * @property {number} [targetHeight=undefined] Override height of the target\r\n * @property {number} [targetWidth=undefined] Override width of the target\r\n * @property {DropList.PositionAnchor} [position=undefined]\r\n * @property {DropList.PositionAnchor} [anchor=undefined]\r\n * @property {boolean} [updateWidth=false] Should update the width of the menu according to target\r\n * @property {string} [targetRtl=undefined] Override for rtl mode of the target\r\n * @property {{x: number, y: number}} [offset=undefined] Extra rtl-aware offset to the target\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.ItemBase\r\n * @property {string} [value]\r\n * @property {string} [label]\r\n * @property {boolean} [_group=false]\r\n * @property {boolean} [_child=false]\r\n * @property {boolean} [_nocheck=false]\r\n * @property {boolean} [_nointeraction=false]\r\n * */\r\n\r\n/**\r\n * @typedef {DropList.ItemBase} DropList.Item\r\n * @property {boolean} [_checked=false]\r\n * */\r\n/** */\r\n\r\n/** @type {DropList.Options} */\r\nlet defaultOptions = {\r\n baseClassName: 'droplist',\r\n\r\n itemBlurDelay: 300,\r\n capturesFocus: true,\r\n multi: false,\r\n keyDownHandler: null,\r\n autoCheckGroupChildren: true,\r\n useExactTargetWidth: false,\r\n\r\n constrainToWindow: true,\r\n autoFlipDirection: true,\r\n\r\n estimateWidth: false,\r\n virtualMinItems: 100,\r\n\r\n labelProp: 'label',\r\n valueProp: 'value',\r\n\r\n on: null,\r\n};\r\n\r\n/*\r\nEmits the following events:\r\n---------------------------\r\n\r\n'itemfocus' {value, item, event}: item gained focus.\r\n'itemblur' {value, item}: item lost focus.\r\n'select' {value, item}: item was selected (in single mode).\r\n'show:before': the drop list will show.\r\n'show': the drop list has been shown.\r\n'hide:before': the drop list will hide.\r\n'hide': the drop list was hidden.\r\n'hide:after': emitted after the hide css transition has ended, or immediately after 'hide'.\r\n'check' {value, item, isCheckingGroup}: item was selected (in multi mode).\r\n'groupcheck' {value, item, affectedItems}: item was selected (in multi mode).\r\n */\r\n\r\n// noinspection JSUnusedGlobalSymbols\r\nclass DropList {\r\n\r\n /**\r\n * @param {DropList.Options} options\r\n */\r\n constructor(options) {\r\n const o = { ...defaultOptions };\r\n\r\n for (let [key, value] of Object.entries(/**@type Object*/options))\r\n if (value !== undefined)\r\n o[key] = value;\r\n\r\n const p = this._p = {\r\n ownsEl: true,\r\n elOriginalDisplay: '',\r\n\r\n baseClassName: o.baseClassName,\r\n additionalClasses: o.additionalClasses,\r\n itemBlurDelay: o.itemBlurDelay,\r\n capturesFocus: o.capturesFocus,\r\n multi: o.multi,\r\n keyDownHandler: o.keyDownHandler,\r\n autoCheckGroupChildren: o.autoCheckGroupChildren,\r\n useExactTargetWidth: o.useExactTargetWidth,\r\n constrainToWindow: o.constrainToWindow,\r\n autoFlipDirection: o.autoFlipDirection,\r\n estimateWidth: o.estimateWidth,\r\n virtualMinItems: o.virtualMinItems,\r\n labelProp: o.labelProp,\r\n valueProp: o.valueProp,\r\n renderItem: o.renderItem,\r\n unrenderItem: o.unrenderItem,\r\n on: o.on || null,\r\n silenceEvents: true,\r\n mitt: mitt(),\r\n\r\n focusItemIndex: -1,\r\n focusItemEl: null,\r\n\r\n sink: new DomEventsSink(),\r\n };\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n const initialCss = {\r\n // make initial position not interfere with layout so it can be correctly calculated\r\n top: '-9999px',\r\n };\r\n\r\n let el = o.el;\r\n if (el instanceof Element) {\r\n p.elOriginalDisplay = el.style.display || '';\r\n el.classList.add(...classes);\r\n el.role = 'menu';\r\n setCssProps(/**@type ElementCSSInlineStyle*/el, initialCss);\r\n p.ownsEl = false;\r\n } else {\r\n el = createElement('ul', {\r\n class: classes.join(' '),\r\n role: 'menu',\r\n css: initialCss,\r\n });\r\n }\r\n\r\n p.el = el;\r\n\r\n p.items = [];\r\n\r\n p.groupCount = 0; // This will keep state of how many `group` items we have\r\n\r\n p.mouseHandled = false;\r\n\r\n p.virtualListHelper = new VirtualListHelper({\r\n list: p.el,\r\n virtual: true,\r\n buffer: 5,\r\n estimatedItemHeight: o.estimatedItemHeight || 20,\r\n itemElementCreatorFn: () => {\r\n return createElement('li',\r\n {\r\n role: 'menuitem',\r\n tabIndex: p.capturesFocus ? -1 : null,\r\n },\r\n );\r\n },\r\n onItemRender: (itemEl, index) => {\r\n let item;\r\n\r\n if ((/**@type any*/index) === GhostSymbol) {\r\n item = {\r\n [p.labelProp]: p.lastMeasureLongestLabelText,\r\n [p.valueProp]: 'Measure',\r\n };\r\n itemEl.setAttribute('aria-hidden', 'true');\r\n } else {\r\n item = p.items[index];\r\n }\r\n\r\n if (!item) {\r\n // eslint-disable-next-line no-console\r\n console.warn('onItemRender called for (' + index + ') which has no item');\r\n }\r\n\r\n itemEl.className = `${p.baseClassName}__item`;\r\n\r\n const classList = itemEl.classList;\r\n\r\n if (p.multi) {\r\n if (item._nocheck) {\r\n classList.add(`${p.baseClassName}__item_multi_nocheck`);\r\n } else {\r\n classList.add(`${p.baseClassName}__item_multi`);\r\n\r\n if (item._checked) {\r\n classList.add(`${p.baseClassName}__item_checked`);\r\n }\r\n }\r\n } else {\r\n classList.add(`${p.baseClassName}__item_single`);\r\n }\r\n\r\n if (item._group)\r\n classList.add(`${p.baseClassName}__item_group`);\r\n\r\n if (item._child)\r\n classList.add(`${p.baseClassName}__item_child`);\r\n\r\n if (item._nointeraction)\r\n classList.add(`${p.baseClassName}__item_nointeraction`);\r\n\r\n if (p.focusItemIndex === index) {\r\n p.focusItemEl = itemEl;\r\n classList.add(`${p.baseClassName}__item_focus`);\r\n }\r\n\r\n this._renderItemContent(item, itemEl);\r\n\r\n itemEl[ItemSymbol] = item;\r\n },\r\n });\r\n\r\n if (typeof p.unrenderItem === 'function') {\r\n const fn = p.unrenderItem;\r\n p.virtualListHelper.setOnItemUnrender(el => {\r\n try {\r\n fn(el[ItemSymbol], el);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n delete el[ItemSymbol];\r\n\r\n if (p.focusItemEl === el)\r\n p.focusItemEl = null;\r\n });\r\n } else {\r\n p.virtualListHelper.setOnItemUnrender(el => {\r\n delete el[ItemSymbol];\r\n\r\n if (p.focusItemEl === el)\r\n p.focusItemEl = null;\r\n });\r\n }\r\n\r\n if (p.capturesFocus) {\r\n el.tabIndex = 0;\r\n }\r\n\r\n this._hookMouseEvents();\r\n this._hookTouchEvents();\r\n this._hookFocusEvents();\r\n this._hookKeyEvents();\r\n\r\n this.silenceEvents = false;\r\n }\r\n\r\n destroy() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n this[DestroyedSymbol] = true;\r\n\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n clearTimeout(p.filterTimer);\r\n\r\n p.sink.remove();\r\n p.virtualListHelper.destroy();\r\n\r\n if (p.el) {\r\n remove(p.el);\r\n }\r\n\r\n if (!p.ownsEl) {\r\n for (let name of Array.from(p.el.classList)) {\r\n if (name.startsWith(p.baseClassName)) {\r\n p.el.classList.remove(name);\r\n }\r\n }\r\n p.el.removeAttribute('role');\r\n for (let key of ['position', 'left', 'top', 'right', 'bottom', 'z-index']) {\r\n p.el.style[key] = '';\r\n }\r\n p.el.style.display = p.elOriginalDisplay;\r\n }\r\n\r\n if (p.lastPositionTarget) {\r\n p.lastPositionTarget.classList.remove(\r\n `has_${p.baseClassName}`,\r\n `has_${p.baseClassName}_above`,\r\n `has_${p.baseClassName}_below`);\r\n delete p.lastPositionTarget;\r\n }\r\n\r\n this._p = null;\r\n }\r\n\r\n get el() {\r\n return this._p.el;\r\n }\r\n\r\n /**\r\n * @param {string|string[]} classes\r\n * @returns {DropList}\r\n */\r\n setAdditionalClasses(classes) {\r\n const p = this._p;\r\n p.additionalClasses = classes;\r\n this._syncBaseClasses();\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {DropList}\r\n */\r\n setLabelProp(prop) {\r\n const p = this._p;\r\n p.labelProp = prop;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {DropList}\r\n */\r\n setValueProp(prop) {\r\n const p = this._p;\r\n p.valueProp = prop;\r\n return this;\r\n }\r\n\r\n _syncBaseClasses() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el)\r\n return;\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n el.className = classes.join(' ');\r\n }\r\n\r\n blurFocusedItem() {\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n\r\n if (!this.hasFocusedItem()) {\r\n return;\r\n }\r\n\r\n let focusItemEl = p.focusItemEl;\r\n if (focusItemEl) {\r\n focusItemEl.classList.remove(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = null;\r\n }\r\n\r\n const item = p.items[p.focusItemIndex];\r\n p.focusItemIndex = -1;\r\n\r\n if (!item)\r\n return;\r\n\r\n this._trigger('itemblur', { value: item[p.valueProp], item: item });\r\n }\r\n\r\n nextPage(event) {\r\n this._move('next_page', event);\r\n }\r\n\r\n previousPage(event) {\r\n this._move('prev_page', event);\r\n }\r\n\r\n toggleFocusedItem() {\r\n const p = this._p;\r\n\r\n if (this.hasFocusedItem() && p.multi) {\r\n let item = p.items[p.focusItemIndex];\r\n if (item._nocheck || item._nointeraction) return this;\r\n\r\n item._checked = !item._checked;\r\n if (p.focusItemEl) {\r\n toggleClass(p.focusItemEl, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n this._trigger('check', { value: item[p.valueProp], item: item });\r\n\r\n this._updateGroupStateForItem(item);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n triggerItemSelection(event) {\r\n const p = this._p;\r\n\r\n p.focusItemEl = p.focusItemEl || closestUntil(event.target, 'li', p.el);\r\n p.focusItemIndex = p.virtualListHelper.getItemIndexFromElement(p.focusItemEl);\r\n if (p.focusItemIndex === undefined)\r\n p.focusItemIndex = -1;\r\n\r\n let item = p.focusItemEl[ItemSymbol];\r\n if (item._nointeraction) {\r\n return false;\r\n }\r\n\r\n if (!p.multi) {\r\n this._setSingleSelectedItemEl(p.focusItemEl);\r\n }\r\n\r\n this._trigger('select', { value: item ? item[p.valueProp] : undefined, item: item });\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.Item} item The item to add. It is copied.\r\n * @param {number} [atIndex=-1] The index to insert at (or -1)\r\n * @returns {DropList}\r\n */\r\n addItem(item, atIndex = -1) {\r\n return this.addItems([item], atIndex);\r\n }\r\n\r\n /**\r\n * Adds items to the menu and renders\r\n * @param {DropList.Item[]} itemsToAdd The items to add. These are copied.\r\n * @param {number} [atIndex=-1] The index to insert at (or -1)\r\n * @returns {DropList}\r\n */\r\n addItems(itemsToAdd, atIndex = -1) {\r\n const p = this._p, labelProp = p.labelProp, valueProp = p.valueProp;\r\n\r\n let isMulti = p.multi;\r\n let items = p.items;\r\n\r\n if (atIndex == null || atIndex < 0 || atIndex >= p.items.length) {\r\n atIndex = -1;\r\n }\r\n\r\n // Determine if the list is virtual or not\r\n this._determineVirtualMode(items.length + itemsToAdd.length);\r\n\r\n for (let i = 0, count = itemsToAdd.length; i < count; i++) {\r\n let oitem = itemsToAdd[i];\r\n //noinspection PointlessBooleanExpressionJS\r\n let item = {\r\n [ItemSymbol]: oitem,\r\n [labelProp]: oitem[labelProp],\r\n [valueProp]: oitem[valueProp],\r\n _nocheck: !!oitem._nocheck,\r\n _nointeraction: !!oitem._nointeraction,\r\n };\r\n\r\n if (isMulti) {\r\n item._checked = !!oitem._checked;\r\n }\r\n\r\n if (oitem._group) {\r\n item._group = true;\r\n p.groupCount++;\r\n }\r\n\r\n if (oitem._child) {\r\n // This is used for setting a child class,\r\n // But can be used to determine that current item is not part of above group,\r\n // mainly where the groups are oddly sorted.\r\n item._child = true;\r\n }\r\n\r\n // Add the item to the list of them\r\n if (atIndex !== -1) {\r\n items.splice(atIndex, 0, item);\r\n } else {\r\n items.push(item);\r\n }\r\n\r\n if (atIndex !== -1) {\r\n atIndex++;\r\n }\r\n }\r\n\r\n p.virtualListHelper\r\n .addItemsAt(itemsToAdd.length, atIndex === -1 ? atIndex : (atIndex - itemsToAdd.length))\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n updateItemByValue(value, newItem) {\r\n const p = this._p;\r\n\r\n // Look for the proper item\r\n let itemIndex = this.itemIndexByValue(value);\r\n if (itemIndex < -1) return this;\r\n\r\n let item = this.itemAtIndex(itemIndex);\r\n item[ItemSymbol] = newItem;\r\n\r\n if (hasOwnProperty.call(newItem, p.labelProp))\r\n item[p.labelProp] = newItem[p.labelProp];\r\n\r\n if (hasOwnProperty.call(newItem, p.valueProp))\r\n item[p.valueProp] = newItem[p.valueProp];\r\n\r\n if (hasOwnProperty.call(newItem, '_nocheck'))\r\n item._nocheck = !!newItem._nocheck;\r\n\r\n if (hasOwnProperty.call(newItem, '_nointeraction'))\r\n item._nointeraction = !!newItem._nointeraction;\r\n\r\n if (p.multi) {\r\n if (hasOwnProperty.call(newItem, '_checked'))\r\n item._checked = !!newItem._checked;\r\n }\r\n\r\n if (hasOwnProperty.call(newItem, '_group')) {\r\n if (!!newItem._group !== item._group) {\r\n if (item._group)\r\n p.groupCount--;\r\n else p.groupCount++;\r\n\r\n newItem._group = !!item._group;\r\n }\r\n }\r\n\r\n if (hasOwnProperty.call(newItem, '_child'))\r\n item._child = !!newItem._child;\r\n\r\n if (p.virtualListHelper.isItemRendered(itemIndex)) {\r\n p.virtualListHelper\r\n .refreshItemAt(itemIndex)\r\n .render();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n removeItem(value, label) {\r\n const p = this._p;\r\n\r\n // Look for the proper item\r\n let itemIndex = this.itemIndexByValueOrLabel(value, label);\r\n if (itemIndex < -1) return this;\r\n\r\n let spliced = p.items.splice(itemIndex, 1);\r\n if (spliced[0]._group) {\r\n p.groupCount--;\r\n }\r\n\r\n p.virtualListHelper\r\n .removeItemsAt(itemIndex, 1)\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n removeAllItems() {\r\n const p = this._p;\r\n\r\n p.items.length = 0;\r\n p.groupCount = 0;\r\n\r\n p.virtualListHelper\r\n .setCount(0)\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n itemDataByValue(value) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item[valueProp] === value) {\r\n return item;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n itemIndexByValue(value) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item[valueProp] === value) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n itemIndexByValueOrLabel(value, label) {\r\n const p = this._p, labelProp = p.labelProp, valueProp = p.valueProp;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item[valueProp] === value || item[labelProp] === label) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n items() {\r\n return this._p.items.slice(0);\r\n }\r\n\r\n itemsReference() {\r\n return this._p.items;\r\n }\r\n\r\n itemCount() {\r\n return this._p.items.length;\r\n }\r\n\r\n itemAtIndex(index) {\r\n return this._p.items[index];\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions} positionOptions\r\n * @returns {DropList}\r\n * @public\r\n */\r\n relayout(positionOptions) {\r\n const p = this._p, el = p.el;\r\n\r\n if (!this.isVisible()) return this;\r\n\r\n let w = window;\r\n\r\n let targetBox = {};\r\n\r\n let offset = positionOptions.targetOffset || getElementOffset(positionOptions.target);\r\n targetBox.left = offset.left;\r\n targetBox.top = offset.top;\r\n targetBox.height = positionOptions.targetHeight == null\r\n ? getElementHeight(positionOptions.target, true, true)\r\n : positionOptions.targetHeight;\r\n targetBox.width = positionOptions.targetWidth == null\r\n ? getElementWidth(positionOptions.target, true, true)\r\n : positionOptions.targetWidth;\r\n targetBox.bottom = targetBox.top + targetBox.height;\r\n\r\n let viewport = {};\r\n viewport.top = w.pageYOffset;\r\n viewport.left = w.pageXOffset;\r\n viewport.width = w.innerWidth;\r\n viewport.height = w.innerHeight;\r\n viewport.bottom = viewport.top + viewport.height;\r\n viewport.right = viewport.left + viewport.width;\r\n\r\n let defaultVerticalDirection = (positionOptions.position && positionOptions.position.y === 'bottom')\r\n ? 'above'\r\n : 'below';\r\n\r\n // Reset dropdown width\r\n el.style.width = '';\r\n\r\n // Make estimations\r\n if (p.estimateWidth ||\r\n p.virtualListHelper.isVirtual()) {\r\n this._measureItem();\r\n }\r\n\r\n // Calculate virtual viewport size\r\n if (p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.render();\r\n }\r\n\r\n // Now set the width of the dropdown\r\n if (positionOptions.updateWidth) {\r\n this._updateWidth(positionOptions);\r\n }\r\n\r\n // How much space is there above, and how much below?\r\n let roomAbove = targetBox.top - viewport.top;\r\n let roomBelow = viewport.bottom - targetBox.bottom;\r\n\r\n // Calculate height for dropdown\r\n\r\n let maxViewHeight;\r\n\r\n const elComputedStyle = getComputedStyle(el);\r\n\r\n let isBoxing = elComputedStyle.boxSizing === 'border-box';\r\n let verticalPadding = (parseFloat(elComputedStyle.paddingTop) || 0) +\r\n (parseFloat(elComputedStyle.paddingBottom) || 0);\r\n let verticalBorderWidth = (parseFloat(elComputedStyle.borderTopWidth) || 0) +\r\n (parseFloat(elComputedStyle.borderBottomWidth) || 0);\r\n\r\n if (p.virtualListHelper.isVirtual()) {\r\n maxViewHeight =\r\n p.virtualListHelper.estimateFullHeight() +\r\n verticalPadding +\r\n verticalBorderWidth;\r\n } else {\r\n // Another method to calculate height is measuring the whole thing at once.\r\n // This causes relayout of course.\r\n el.style.height = '';\r\n el.style.top = '-9999px';\r\n\r\n maxViewHeight = Math.max(getElementHeight(p.el), el.scrollHeight);\r\n maxViewHeight += verticalPadding + verticalBorderWidth;\r\n }\r\n\r\n // Consider css max-height\r\n\r\n let maxHeight = parseFloat(elComputedStyle.maxHeight);\r\n if (!isNaN(maxHeight)) {\r\n if (!isBoxing) {\r\n maxHeight += verticalPadding + verticalBorderWidth;\r\n }\r\n\r\n maxViewHeight = Math.min(maxViewHeight, maxHeight);\r\n }\r\n\r\n // Figure out the direction\r\n\r\n let enoughRoomAbove = roomAbove >= maxViewHeight;\r\n let enoughRoomBelow = roomBelow >= maxViewHeight;\r\n\r\n let newDirection = p.currentDirection || defaultVerticalDirection;\r\n if (newDirection === 'above' && !enoughRoomAbove && enoughRoomBelow) {\r\n newDirection = 'below';\r\n } else if (newDirection === 'below' && !enoughRoomBelow && enoughRoomAbove) {\r\n newDirection = 'above';\r\n } else if (enoughRoomAbove && enoughRoomBelow) {\r\n if (newDirection !== defaultVerticalDirection &&\r\n ((defaultVerticalDirection === 'above' && roomAbove >= roomBelow) ||\r\n (defaultVerticalDirection === 'below' && roomBelow >= roomAbove))) {\r\n newDirection = defaultVerticalDirection;\r\n }\r\n } else if (!enoughRoomAbove && !enoughRoomBelow) {\r\n if (roomAbove > roomBelow) {\r\n newDirection = 'above';\r\n } else if (roomBelow > roomAbove) {\r\n newDirection = 'below';\r\n }\r\n }\r\n p.currentDirection = newDirection;\r\n\r\n // Figure out that final view size\r\n let viewSize = {\r\n width: getElementWidth(el, true, true),\r\n height: Math.min(maxViewHeight, Math.max(roomAbove, roomBelow, 0)),\r\n };\r\n\r\n let isTargetRtl = positionOptions.targetRtl !== undefined ?\r\n positionOptions.targetRtl :\r\n (positionOptions.target == null ? false : getComputedStyle(positionOptions.target).direction === 'rtl');\r\n let isRtlDocument = getComputedStyle(document.documentElement).direction === 'rtl';\r\n\r\n let anchor = anchoredPosition(positionOptions.target,\r\n positionOptions.anchor ? positionOptions.anchor.x : 'start',\r\n positionOptions.anchor ? positionOptions.anchor.y : 'bottom',\r\n targetBox, isTargetRtl);\r\n let position = anchoredPosition(el,\r\n positionOptions.position ? positionOptions.position.x : 'start',\r\n positionOptions.position ? positionOptions.position.y : 'top',\r\n viewSize, isTargetRtl);\r\n\r\n // If it's not in the direction that the user expected, invert it\r\n let invertYPos =\r\n (position.specY === 'top' && newDirection === 'above') ||\r\n (position.specY === 'bottom' && newDirection === 'below') ||\r\n (position.specY !== 'bottom' && position.specY !== 'top' && newDirection === 'above');\r\n\r\n let scrollLeft =\r\n (w.pageXOffset !== undefined) ?\r\n w.pageXOffset :\r\n (document.documentElement || document.body.parentNode || document.body).scrollLeft;\r\n scrollLeft = Math.abs(scrollLeft);\r\n if (isRtlDocument) {\r\n scrollLeft = document.documentElement.scrollWidth - scrollLeft - document.documentElement.clientWidth;\r\n }\r\n\r\n let minX = scrollLeft,\r\n maxX = document.documentElement.clientWidth + scrollLeft - viewSize.width;\r\n\r\n let viewCss = {\r\n 'position': 'absolute',\r\n 'left': targetBox.left,\r\n 'top': targetBox.top + (invertYPos ? (anchor.bottom - position.bottom) : (anchor.top - position.top)),\r\n };\r\n\r\n if (isRtlDocument) {\r\n viewCss.left -= document.documentElement.clientWidth - document.documentElement.scrollWidth;\r\n }\r\n\r\n viewCss.left += anchor.left - position.left;\r\n\r\n if (positionOptions.offset) {\r\n if (positionOptions.offset.y) {\r\n if (invertYPos) {\r\n viewCss.top -= positionOptions.offset.y;\r\n } else {\r\n viewCss.top += positionOptions.offset.y;\r\n }\r\n }\r\n\r\n if (positionOptions.offset.x) {\r\n let rtl = elComputedStyle.direction === 'rtl';\r\n viewCss.left += rtl\r\n ? -positionOptions.offset.x\r\n : positionOptions.offset.x;\r\n }\r\n }\r\n\r\n if (p.autoFlipDirection) {\r\n if ((position.specX === 'right' &&\r\n viewCss.left < minX &&\r\n (Math.max(viewCss.left, minX) + viewSize.width - targetBox.left) / targetBox.width > 0.5) ||\r\n (position.specX === 'left' &&\r\n viewCss.left > maxX &&\r\n (Math.min(viewCss.left, maxX) - targetBox.left) / targetBox.width < 0.5)) {\r\n viewCss.left -= anchor.left - position.left;\r\n viewCss.left += anchor.right - position.right;\r\n }\r\n }\r\n\r\n // Constrain to the window if required\r\n if (p.constrainToWindow) {\r\n for (let which of (isRtlDocument ? ['min', 'max'] : ['max', 'min'])) {\r\n if (which === 'min' && viewCss.left < minX)\r\n viewCss.left = minX;\r\n else if (which === 'max' && viewCss.left > maxX)\r\n viewCss.left = maxX;\r\n }\r\n }\r\n\r\n // Set position CSS\r\n viewCss.left += 'px';\r\n viewCss.top += 'px';\r\n setCssProps(el, viewCss);\r\n setElementHeight(el, viewSize.height, true, true);\r\n\r\n // Update the scroll position for virtual lists\r\n p.virtualListHelper.render();\r\n\r\n // Update position classes\r\n if (positionOptions && positionOptions.target) {\r\n p.lastPositionTarget = positionOptions.target;\r\n\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}`, true);\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}_below`, newDirection === 'below');\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}_above`, newDirection === 'above');\r\n\r\n toggleClass(el, `${p.baseClassName}__is_below`, newDirection === 'below');\r\n toggleClass(el, `${p.baseClassName}__is_above`, newDirection === 'above');\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the checked mode of a specific value.\r\n * @public\r\n * @param {*} value - array of values to check\r\n * @param {boolean} checked - will the value be checked?\r\n * @returns {DropList} self\r\n */\r\n setItemChecked(value, checked) {\r\n const p = this._p;\r\n\r\n checked = !!checked;\r\n\r\n let index = this.itemIndexByValue(value);\r\n if (index === -1) return this;\r\n\r\n let li = p.virtualListHelper.getItemElementAt(index);\r\n if (!li) return this;\r\n\r\n let item = li[ItemSymbol];\r\n\r\n checked = checked && !item._nocheck;\r\n\r\n if (item._checked !== checked) {\r\n item._checked = checked;\r\n\r\n toggleClass(li, `${p.baseClassName}__item_checked`, item._checked);\r\n\r\n this._updateGroupStateForItem(item);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the checked values. All the other values will be unchecked,\r\n * @public\r\n * @param {Array<*>} values - array of values to check\r\n * @returns {DropList} self\r\n */\r\n setCheckedValues(values) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n let groupIndexes = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n let checked = !item._nocheck && values.indexOf(item[valueProp]) !== -1;\r\n\r\n if (item._group) {\r\n groupIndexes.push(i);\r\n }\r\n\r\n if (item._checked === checked) continue;\r\n\r\n item._checked = checked;\r\n\r\n let li = p.virtualListHelper.getItemElementAt(i);\r\n if (!li) continue;\r\n\r\n toggleClass(li, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n\r\n if (p.autoCheckGroupChildren) {\r\n for (let i = 0, count = groupIndexes.length; i < count; i++) {\r\n this._updateGroupCheckedState(groupIndexes[i], false);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Get all checked values. Returns array of item values.\r\n * @public\r\n * @param {boolean} excludeGroups=false Exclude group items\r\n * @returns {Array<*>} self\r\n */\r\n getCheckedValues(excludeGroups) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n excludeGroups = excludeGroups && p.groupCount > 0;\r\n\r\n let values = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (!item._checked) continue;\r\n if (excludeGroups && item._group) continue;\r\n values.push(item[valueProp]);\r\n }\r\n\r\n return values;\r\n }\r\n\r\n /**\r\n * Get all checked items. Returns array of actual item data object.\r\n * @public\r\n * @param {boolean} excludeGroups=false Exclude group items\r\n * @returns {DropList.Item[]}\r\n */\r\n getCheckedItems(excludeGroups) {\r\n const p = this._p;\r\n\r\n excludeGroups = excludeGroups && p.groupCount > 0;\r\n\r\n let items = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (!item._checked) continue;\r\n if (excludeGroups && item._group) continue;\r\n items.push(item);\r\n }\r\n\r\n return items;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions?} positionOptions\r\n * @returns {DropList}\r\n * @public\r\n */\r\n show(positionOptions) {\r\n const p = this._p;\r\n\r\n p.hiding = false;\r\n\r\n if (!this.isVisible()) {\r\n this._trigger('show:before');\r\n }\r\n\r\n p.mouseHandled = false;\r\n\r\n setTimeout(() => { // Skip the end of a 'click' event\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (!p.onDocumentMouseDown) {\r\n // Detect mouse tap outside of the droplist, to blur the focused item\r\n p.sink.add(document, 'mousedown', p.onDocumentMouseDown = (event) => {\r\n if (!p.el.contains(event.target))\r\n this._delayBlur();\r\n });\r\n }\r\n });\r\n\r\n const el = p.el;\r\n el.style.position = 'absolute';\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n document.body.appendChild(el);\r\n\r\n p.visible = true;\r\n\r\n p.el.style.display = '';\r\n if (getComputedStyle(p.el).display === 'none')\r\n p.el.style.display = 'block';\r\n\r\n if (positionOptions) {\r\n const elComputedStyle = getComputedStyle(el);\r\n\r\n // Set max height to avoid adding scrollbars to page\r\n const originalMaxHeight = el.style.maxHeight;\r\n let maxHeight = document.body.clientHeight -\r\n (parseFloat(elComputedStyle.marginTop) || 0) -\r\n (parseFloat(elComputedStyle.marginBottom) || 0) -\r\n (elComputedStyle.boxSizing === 'border-box'\r\n ? 0\r\n : ((parseFloat(elComputedStyle.borderTopWidth) || 0) +\r\n (parseFloat(elComputedStyle.borderBottomWidth) || 0)));\r\n\r\n el.style.maxHeight = Math.min(maxHeight, parseFloat(elComputedStyle.maxHeight) || maxHeight) + 'px';\r\n\r\n this.relayout(positionOptions);\r\n\r\n // Restore original max-height\r\n el.style.maxHeight = originalMaxHeight;\r\n } else {\r\n // Calculate virtual viewport size\r\n if (p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.render();\r\n }\r\n }\r\n\r\n if (this.isVisible()) {\r\n this._trigger('show');\r\n }\r\n\r\n return this;\r\n }\r\n\r\n hide() {\r\n const p = this._p, el = p.el;\r\n\r\n if (p.onDocumentMouseDown) {\r\n p.sink.remove(document, 'mousedown', p.onDocumentMouseDown);\r\n p.onDocumentMouseDown = null;\r\n }\r\n\r\n if (this.isVisible()) {\r\n this._trigger('hide:before');\r\n\r\n p.hiding = true;\r\n\r\n if (el) {\r\n\r\n el.classList.add(`${p.baseClassName}__is-hiding`);\r\n\r\n // support for hide transition in css\r\n const maxTransitionDuration = parseTransition(getComputedStyle(p.el).transition)\r\n .reduce((p, v) => Math.max(p, v.delay + v.duration), 0);\r\n\r\n if (maxTransitionDuration > 0) {\r\n setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (this._p && el.parentNode && p.hiding) {\r\n remove(el);\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n p.visible = false;\r\n this._trigger('hide:after');\r\n }\r\n });\r\n } else {\r\n remove(el);\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n }\r\n }\r\n\r\n p.visible = false;\r\n\r\n this.blurFocusedItem();\r\n this._trigger('hide');\r\n\r\n if (this[DestroyedSymbol]) return;\r\n this._trigger('hide:after');\r\n }\r\n\r\n if (p.lastPositionTarget) {\r\n p.lastPositionTarget.classList.remove(\r\n `has_${p.baseClassName}`,\r\n `has_${p.baseClassName}_above`,\r\n `has_${p.baseClassName}_below`);\r\n delete p.lastPositionTarget;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n isVisible() {\r\n const p = this._p;\r\n if (!p.visible)\r\n return false;\r\n return p.el.parentNode && getComputedStyle(p.el).display !== 'none';\r\n }\r\n\r\n hasFocusedItem() {\r\n return this._p.focusItemIndex > -1;\r\n }\r\n\r\n getFocusedItemIndex() {\r\n if (!this.hasFocusedItem())\r\n return -1;\r\n return this._p.focusItemIndex;\r\n }\r\n\r\n setFocusedItemAtIndex(itemIndex) {\r\n const p = this._p;\r\n\r\n p.focusItemIndex = itemIndex;\r\n\r\n let item = null;\r\n if (itemIndex > -1)\r\n item = p.items[itemIndex];\r\n if (item && item._nointeraction)\r\n item = null;\r\n if (itemIndex > -1) {\r\n this.scrollItemIndexIntoView(itemIndex);\r\n }\r\n let itemElement = item ? p.virtualListHelper.getItemElementAt(itemIndex) : null;\r\n\r\n if (p.focusItemEl !== itemElement) {\r\n if (p.focusItemEl) {\r\n p.focusItemEl.classList.remove(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = null;\r\n }\r\n\r\n if (itemElement) {\r\n itemElement.classList.add(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = itemElement;\r\n\r\n this._trigger('itemfocus', { value: itemElement[p.valueProp], item: itemElement[ItemSymbol], event: null });\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n setFocusedItem(item) {\r\n const p = this._p;\r\n\r\n let itemIndex = item._nointeraction ? -1 : this._getItemIndex(item);\r\n\r\n if (itemIndex > -1 && p.items[itemIndex]._nointeraction)\r\n itemIndex = -1;\r\n\r\n return this.setFocusedItemAtIndex(itemIndex);\r\n }\r\n\r\n setFocusedItemByValue(value) {\r\n return this.setFocusedItemAtIndex(this.itemIndexByValue(value));\r\n }\r\n\r\n setSingleSelectedItemAtIndex(itemIndex) {\r\n const p = this._p;\r\n\r\n let itemEl = null;\r\n\r\n if (itemIndex > -1 && !p.items[itemIndex]._nointeraction) {\r\n itemEl = p.virtualListHelper.getItemElementAt(itemIndex);\r\n }\r\n\r\n this._setSingleSelectedItemEl(itemEl);\r\n\r\n return this;\r\n }\r\n\r\n setSingleSelectedItem(item) {\r\n const p = this._p;\r\n\r\n let itemIndex = item._nointeraction ? -1 : this._getItemIndex(item);\r\n\r\n if (itemIndex > -1 && p.items[itemIndex]._nointeraction)\r\n itemIndex = -1;\r\n\r\n return this.setSingleSelectedItemAtIndex(itemIndex);\r\n }\r\n\r\n setSingleSelectedItemByValue(value) {\r\n return this.setSingleSelectedItemAtIndex(this.itemIndexByValue(value));\r\n }\r\n\r\n next(event) {\r\n this._move('next', event);\r\n }\r\n\r\n previous(event) {\r\n this._move('prev', event);\r\n }\r\n\r\n isFirstItem() {\r\n const p = this._p;\r\n return p.focusItemIndex === 0 && p.focusItemIndex < p.items.length;\r\n }\r\n\r\n isLastItem() {\r\n const p = this._p;\r\n return p.focusItemIndex > -1 && p.focusItemIndex === p.items.length - 1;\r\n }\r\n\r\n scrollItemIndexIntoView(itemIndex) {\r\n const p = this._p;\r\n\r\n if (this._hasScroll()) {\r\n const el = p.el, scrollTop = el.scrollTop;\r\n\r\n let itemPos, previousPos = -1;\r\n\r\n // eslint-disable-next-line no-constant-condition\r\n while (true) {\r\n itemPos = p.virtualListHelper.getItemPosition(itemIndex);\r\n\r\n if (itemPos === previousPos)\r\n break;\r\n\r\n previousPos = itemPos;\r\n\r\n let itemSize = p.virtualListHelper.getItemSize(itemIndex);\r\n\r\n let listHeight = el.clientHeight;\r\n\r\n if (itemPos < scrollTop) {\r\n el.scrollTop = itemPos;\r\n } else if (itemPos + itemSize > scrollTop + listHeight) {\r\n el.scrollTop = itemPos + itemSize - listHeight;\r\n }\r\n\r\n // force update items, until the positions and sizes are final\r\n p.virtualListHelper.render();\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Register an event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n on(/**string|'*'*/event, /**Function?*/handler) {\r\n this._p.mitt.on(event, handler);\r\n return this;\r\n }\r\n\r\n /**\r\n * Register a one time event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n once(/**string|'*'*/event, /**Function?*/handler) {\r\n let wrapped = (value) => {\r\n this._p.mitt.off(event, wrapped);\r\n handler(value);\r\n };\r\n this._p.mitt.on(event, wrapped);\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove an `handler` for `event`, all events for `event`, or all events completely.\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n off(/**(string|'*')?*/event, /**Function?*/handler) {\r\n if (!event && !event) {\r\n this._p.mitt.all.clear();\r\n } else {\r\n this._p.mitt.off(event, handler);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Emit an event\r\n * @param {string} event\r\n * @param {any} value\r\n * @returns {DropList}\r\n */\r\n emit(/**string|'*'*/event, /**any?*/value) {\r\n this._p.mitt.emit(event, value);\r\n return this;\r\n }\r\n\r\n _getItemIndex(item) {\r\n const p = this._p, labelProp = p.labelProp, valueProp = p.valueProp;\r\n\r\n let itemIndex = -1;\r\n\r\n if (item) {\r\n itemIndex = p.items.indexOf(item);\r\n if (itemIndex === -1) {\r\n let value = (item && item[valueProp] !== undefined) ? item[valueProp] : item;\r\n let label = (item && item[labelProp]) ? item[labelProp] : value;\r\n itemIndex = this.itemIndexByValueOrLabel(value, label);\r\n }\r\n }\r\n\r\n return itemIndex;\r\n }\r\n\r\n _setSingleSelectedItemEl(itemEl) {\r\n const p = this._p;\r\n\r\n if (p.singleSelectedItemEl) {\r\n p.singleSelectedItemEl.classList.remove(`${p.baseClassName}__item_checked`);\r\n p.singleSelectedItemEl = null;\r\n }\r\n\r\n if (itemEl) {\r\n itemEl.classList.add(`${p.baseClassName}__item_checked`);\r\n p.singleSelectedItemEl = itemEl;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} event\r\n * @param {*} [data]\r\n * @private\r\n */\r\n _trigger(event, data) {\r\n const p = this._p;\r\n if (p.on)\r\n p.on(event, ...(data === undefined ? [] : [data]));\r\n p.mitt.emit(event, data);\r\n }\r\n\r\n _itemUpAction(event, itemEl) {\r\n if (closestUntil(event.target, '.requires-pointer-events,button', itemEl)) return;\r\n\r\n let p = this._p;\r\n\r\n if (!this._mouseHandled) {\r\n\r\n this.triggerItemSelection(event);\r\n\r\n // If we are destroyed in response to a click/select, cease all actions\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n this.toggleFocusedItem();\r\n\r\n if (document.activeElement !== this.el && p.focusItemEl) {\r\n clearTimeout(p.blurTimer);\r\n }\r\n\r\n setTimeout(() => {\r\n this._mouseHandled = false;\r\n }, 0);\r\n }\r\n }\r\n\r\n _hookMouseEvents() {\r\n const p = this._p;\r\n\r\n p.sink\r\n .add(p.el, 'mousedown', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n event.preventDefault();\r\n })\r\n .add(p.el, 'mouseup', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n if (event.button !== 0) return;\r\n\r\n this._itemUpAction(event, li);\r\n })\r\n .add(p.el, 'mouseover', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n this._handleMouseOver(event, li);\r\n });\r\n }\r\n\r\n _handleMouseOver(event, itemEl) {\r\n this._focus(event, itemEl);\r\n }\r\n\r\n _hookTouchEvents() {\r\n const p = this._p;\r\n\r\n let currentTouchId;\r\n\r\n p.sink.add(p.el, 'touchstart', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n if (currentTouchId) return;\r\n if (closestUntil(event.target, '.requires-pointer-events,button', li)) return;\r\n\r\n currentTouchId = event.changedTouches[0].identifier;\r\n\r\n // Simulate mouseover event\r\n this._handleMouseOver(event, li);\r\n\r\n // Track scrolling\r\n let didScroll = false;\r\n let onScroll = () => { didScroll = true; };\r\n let onTouchCancel = () => {\r\n currentTouchId = null;\r\n p.sink.remove(null, '.dropdown_touchextra');\r\n };\r\n\r\n let elToTrackScroll = li.parentNode;\r\n while (elToTrackScroll) {\r\n p.sink.add(elToTrackScroll, 'scroll.dropdown_touchextra', onScroll);\r\n elToTrackScroll = elToTrackScroll.parentNode;\r\n }\r\n p.sink.add(window, 'scroll.dropdown_touchextra', onScroll);\r\n\r\n p.sink.add(window, 'touchcancel.dropdown_touchextra', onTouchCancel);\r\n\r\n p.sink.add(p.el, 'touchend.dropdown_touchextra', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return onTouchCancel();\r\n\r\n let touch = Array.prototype.find.call(event.changedTouches, (touch) => {\r\n return touch.identifier === currentTouchId;\r\n });\r\n if (!touch) return onTouchCancel();\r\n\r\n onTouchCancel();\r\n\r\n if (!didScroll) {\r\n this._itemUpAction(event, li);\r\n event.preventDefault();\r\n }\r\n });\r\n });\r\n }\r\n\r\n _hookFocusEvents() {\r\n const p = this._p;\r\n\r\n p.sink\r\n .add(p.el, 'focus', event => {\r\n let itemEl = p.focusItemEl || // focused item\r\n p.el.firstChild; // or the first item\r\n\r\n this._focus(event, itemEl);\r\n })\r\n .add(p.el, 'blur', () => {\r\n setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (!p.el.contains(document.activeElement)) {\r\n this._delayBlur();\r\n }\r\n });\r\n });\r\n }\r\n\r\n _hookKeyEvents() {\r\n const p = this._p;\r\n\r\n p.sink.add(p.el, 'keydown', evt => this._keydown(evt));\r\n p.sink.add(p.el, 'keypress', evt => this._keydown(evt));\r\n }\r\n\r\n _keydown(event) {\r\n const p = this._p;\r\n\r\n if (p.keyDownHandler && p.keyDownHandler.call(this, event)) {\r\n return;\r\n }\r\n\r\n let preventDefault = true;\r\n\r\n switch (event.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_HOME:\r\n case VALUE_END:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n event.preventDefault();\r\n\r\n switch (event.key) {\r\n case VALUE_PAGE_UP:\r\n this.previousPage(event);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n this.nextPage(event);\r\n break;\r\n case VALUE_HOME:\r\n this._move('first', event);\r\n break;\r\n case VALUE_END:\r\n this._move('last', event);\r\n break;\r\n case VALUE_UP:\r\n this.previous(event);\r\n break;\r\n case VALUE_DOWN:\r\n this.next(event);\r\n break;\r\n }\r\n break;\r\n\r\n case VALUE_ENTER:\r\n this.triggerItemSelection(event);\r\n event.preventDefault();\r\n break;\r\n\r\n case VALUE_SPACE:\r\n this.toggleFocusedItem();\r\n event.preventDefault();\r\n break;\r\n\r\n case VALUE_ESCAPE:\r\n event.preventDefault();\r\n this.hide();\r\n break;\r\n\r\n default: {\r\n if (event.type === 'keydown') return;\r\n this._keydownFreeType(event);\r\n preventDefault = false;\r\n }\r\n }\r\n }\r\n\r\n _keydownFreeType(evt) {\r\n const p = this._p, labelProp = p.labelProp;\r\n\r\n // noinspection JSDeprecatedSymbols\r\n let character = evt.key || String.fromCharCode(evt.keyCode);\r\n if (character.length !== 1) return;\r\n\r\n clearTimeout(p.filterTimer);\r\n\r\n // Accumulate text to find from keystrokes\r\n let keyword = (p.previousFilter || '') + character;\r\n\r\n let regex = new RegExp(`^${escapeRegex(keyword)}`, 'i');\r\n\r\n let matchIndices = [];\r\n let item;\r\n\r\n // These are all the possible matches\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n item = p.items[i];\r\n if (regex.test(item[labelProp])) {\r\n matchIndices.push(i);\r\n }\r\n }\r\n\r\n // Did we find anything?\r\n if (!matchIndices.length) {\r\n // No... So start over with this character as the only one.\r\n keyword = character;\r\n regex = new RegExp(`^${escapeRegex(keyword)}`, 'i');\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n item = p.items[i];\r\n if (regex.test(item[labelProp])) {\r\n matchIndices.push(i);\r\n }\r\n }\r\n }\r\n\r\n let focusItemIndex = p.focusItemIndex;\r\n let matchIndex = -1;\r\n\r\n // Find a match *after* the focused item\r\n for (let i = 0, count = matchIndices.length; i < count; i++) {\r\n if (matchIndices[i] >= focusItemIndex) {\r\n matchIndex = matchIndices[i];\r\n break;\r\n }\r\n }\r\n\r\n // Find a match from the beginning.\r\n if (matchIndex === -1 && matchIndices.length) {\r\n matchIndex = matchIndices[0];\r\n }\r\n\r\n if (matchIndex > -1) {\r\n let next = p.virtualListHelper.getItemElementAt(matchIndex);\r\n this._focus(evt, next || null, matchIndex);\r\n\r\n if (!this.isVisible()) {\r\n this.triggerItemSelection(evt);\r\n }\r\n\r\n // Record the last filter used\r\n p.previousFilter = keyword;\r\n\r\n // Clear the last filter - a second from now.\r\n p.filterTimer = setTimeout(() => {\r\n delete p.previousFilter;\r\n }, 1000);\r\n\r\n } else {\r\n delete p.previousFilter;\r\n }\r\n }\r\n\r\n _focus(event, itemEl, itemIndex) {\r\n const p = this._p;\r\n\r\n if (!itemIndex && itemEl) {\r\n itemIndex = p.virtualListHelper.getItemIndexFromElement(itemEl);\r\n }\r\n\r\n if (itemIndex > -1) {\r\n this.scrollItemIndexIntoView(itemIndex);\r\n } else if (itemIndex === undefined) {\r\n itemEl = null;\r\n }\r\n\r\n let focusItemEl = itemEl || p.virtualListHelper.getItemElementAt(itemIndex);\r\n if (!focusItemEl || focusItemEl[ItemSymbol]._nointeraction) {\r\n this.blurFocusedItem();\r\n return;\r\n }\r\n\r\n if (focusItemEl === p.focusItemEl) {\r\n clearTimeout(p.blurTimer);\r\n return;\r\n }\r\n\r\n this.blurFocusedItem();\r\n\r\n focusItemEl.classList.add(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = focusItemEl;\r\n p.focusItemIndex = itemIndex;\r\n\r\n const item = p.items[itemIndex];\r\n this._trigger('itemfocus', { value: item[p.valueProp], item: item, event: event });\r\n }\r\n\r\n _delayBlur() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n\r\n p.blurTimer = setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n this.blurFocusedItem();\r\n }, p.itemBlurDelay);\r\n }\r\n\r\n _move(direction, event) {\r\n const p = this._p;\r\n\r\n let next, nextIndex, directionUp = false;\r\n\r\n if (direction === 'first') {\r\n nextIndex = 0;\r\n directionUp = false;\r\n } else if (direction === 'last') {\r\n nextIndex = p.items.length - 1;\r\n directionUp = true;\r\n } else if (direction === 'prev') {\r\n if (!this.hasFocusedItem())\r\n return this._move('last', event);\r\n\r\n nextIndex = p.focusItemIndex - 1;\r\n if (nextIndex === -1) {\r\n nextIndex = p.items.length - 1;\r\n }\r\n\r\n directionUp = true;\r\n } else if (direction === 'next') {\r\n if (!this.hasFocusedItem())\r\n return this._move('first', event);\r\n\r\n nextIndex = p.focusItemIndex + 1;\r\n if (nextIndex === p.items.length) {\r\n nextIndex = 0;\r\n }\r\n\r\n directionUp = false;\r\n } else if (direction === 'prev_page' || direction === 'next_page') {\r\n\r\n if (!this.hasFocusedItem()) {\r\n return this._move(direction === 'prev_page' ? 'prev' : 'next', event);\r\n }\r\n\r\n if ((direction === 'prev_page' && this.isFirstItem()) ||\r\n (direction === 'next_page' && this.isLastItem())) return;\r\n\r\n if (this._hasScroll()) {\r\n\r\n if (p.virtualListHelper.isVirtual()) {\r\n let visibleItemCount = p.virtualListHelper.getVisibleItemCount();\r\n\r\n nextIndex = p.focusItemIndex;\r\n\r\n if (direction === 'prev_page') {\r\n nextIndex -= visibleItemCount;\r\n } else {\r\n nextIndex += visibleItemCount;\r\n }\r\n\r\n if (nextIndex < 0) {\r\n nextIndex = 0;\r\n } else if (nextIndex >= p.items.length) {\r\n nextIndex = p.items.length;\r\n }\r\n } else if (p.focusItemEl) {\r\n let base = getElementOffset(p.focusItemEl).top;\r\n let height = getElementHeight(p.el, true);\r\n\r\n while (true) { // eslint-disable-line no-constant-condition\r\n next = p.focusItemEl.nextElementSibling;\r\n if (!next) return;\r\n if (next.tagName !== 'LI') continue;\r\n\r\n if (direction === 'prev_page') {\r\n if (getElementOffset(next).top - base + height <= 0)\r\n break;\r\n } else {\r\n if (getElementOffset(next).top - base - height >= 0)\r\n break;\r\n }\r\n }\r\n\r\n if (next) {\r\n nextIndex = p.virtualListHelper.getItemIndexFromElement(next);\r\n\r\n if (nextIndex === undefined)\r\n nextIndex = -1;\r\n }\r\n }\r\n\r\n } else {\r\n return this._move(direction === 'prev_page' ? 'first' : 'last', event);\r\n }\r\n\r\n directionUp = direction === 'prev_page';\r\n } else {\r\n return;\r\n }\r\n\r\n let itemCount = p.items.length;\r\n\r\n if (nextIndex >= itemCount) {\r\n return;\r\n }\r\n\r\n let item = p.items[nextIndex];\r\n // noinspection UnnecessaryLocalVariableJS\r\n let startedAtIndex = nextIndex;\r\n\r\n while (item && item._nointeraction) {\r\n if (directionUp) {\r\n nextIndex--;\r\n if (nextIndex === -1) {\r\n nextIndex = itemCount;\r\n }\r\n } else {\r\n nextIndex++;\r\n if (nextIndex === itemCount) {\r\n nextIndex = 0;\r\n }\r\n }\r\n\r\n item = p.items[nextIndex];\r\n\r\n if (nextIndex === startedAtIndex) {\r\n break;\r\n }\r\n }\r\n\r\n next = p.virtualListHelper.getItemElementAt(nextIndex);\r\n this._focus(event, next || null, nextIndex);\r\n\r\n if (!this.isVisible()) {\r\n this.triggerItemSelection(event);\r\n }\r\n }\r\n\r\n _hasScroll() {\r\n return this.el.clientHeight < this.el.scrollHeight;\r\n }\r\n\r\n _updateGroupStateForItem(item) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (p.multi && p.autoCheckGroupChildren) {\r\n\r\n let items, groupIndex, itemIndex;\r\n\r\n if (item._group) {\r\n // Now loop through children below the group\r\n\r\n items = p.items;\r\n groupIndex = items.indexOf(item);\r\n\r\n let affectedItems = 0;\r\n\r\n for (let i = groupIndex + 1, len = items.length; i < len; i++) {\r\n let next = items[i];\r\n\r\n // Hit the next group, break out\r\n if (next._group || (!next._child && items[i - 1]._child))\r\n break;\r\n\r\n // No change, skip\r\n if (!!next._checked === item._checked)\r\n continue;\r\n\r\n // Update state\r\n next._checked = item._checked;\r\n\r\n affectedItems++;\r\n\r\n // Update DOM\r\n let nextEl = p.virtualListHelper.getItemElementAt(i);\r\n if (nextEl) {\r\n toggleClass(nextEl, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n\r\n // Fire event\r\n this._trigger('check', { value: next[valueProp], item: next, isCheckingGroup: true });\r\n }\r\n\r\n // Fire event\r\n this._trigger('groupcheck', { value: item[valueProp], item: item, affectedItems: affectedItems });\r\n } else if (p.groupCount > 0) {\r\n items = p.items;\r\n itemIndex = items.indexOf(item);\r\n groupIndex = -1;\r\n\r\n // Find the group index\r\n for (let i = itemIndex - 1; i >= 0; i--) {\r\n if (items[i]._group) {\r\n groupIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n if (groupIndex > -1) {\r\n this._updateGroupCheckedState(groupIndex, true);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n _updateGroupCheckedState(groupIndex, fireEvents) {\r\n const p = this._p;\r\n\r\n if (p.multi && p.autoCheckGroupChildren && groupIndex > -1) {\r\n\r\n let items = p.items;\r\n let groupItem = items[groupIndex];\r\n if (!groupItem || !groupItem._group) return this;\r\n\r\n let item, hasChecked = false, hasUnchecked = false;\r\n\r\n for (let i = groupIndex + 1, len = items.length; i < len; i++) {\r\n item = items[i];\r\n\r\n // Hit the next group, break out\r\n if (item._group || (!item._child && items[i - 1]._child))\r\n break;\r\n\r\n if (item._checked) {\r\n hasChecked = true;\r\n } else if (!item._checked) {\r\n hasUnchecked = true;\r\n }\r\n }\r\n\r\n // See if we need to update the group\r\n let shouldCheckGroup = hasChecked && !hasUnchecked;\r\n if (!!groupItem._checked !== shouldCheckGroup) {\r\n // Update state\r\n groupItem._checked = shouldCheckGroup;\r\n\r\n // Update DOM\r\n let nextEl = p.virtualListHelper.getItemElementAt(groupIndex);\r\n if (nextEl) {\r\n toggleClass(nextEl, `${p.baseClassName}__item_checked`, groupItem._checked);\r\n }\r\n\r\n if (fireEvents) {\r\n // Fire event\r\n this._trigger('check', { value: groupItem[p.valueProp], item: groupItem });\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @private\r\n * @returns {DropList} self\r\n */\r\n _measureItem() {\r\n const p = this._p;\r\n\r\n if (p.lastMeasureItemCount !== p.items.length) {\r\n const labelProp = p.labelProp, valueProp = p.valueProp;\r\n let longestLabel = p.lastMeasureLongestLabel || 1,\r\n longestLabelText = p.lastMeasureLongestLabelText || '';\r\n\r\n for (let i = 0, items = p.items, count = items.length;\r\n i < count;\r\n i++) {\r\n\r\n const item = items[i];\r\n let text = item[labelProp];\r\n if (text == null)\r\n text = item[valueProp];\r\n if (text == null)\r\n text = '';\r\n\r\n let length = text.length;\r\n if (length > longestLabel) {\r\n longestLabel = length;\r\n longestLabelText = text;\r\n }\r\n }\r\n\r\n p.lastMeasureItemCount = p.items.length;\r\n p.lastMeasureLongestLabel = longestLabel;\r\n p.lastMeasureLongestLabelText = longestLabelText;\r\n }\r\n\r\n if (p.estimateWidth || p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.createGhostItemElement(GhostSymbol, true, itemEl => {\r\n p.lastMeasureItemWidth = getElementWidth(itemEl, true, true);\r\n });\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Determines whether the list should be in virtual mode, depending on the item count.\r\n * @param {number?} targetItemCount - item count we are expecting. Defaults to current item count\r\n * @returns {DropList}\r\n * @private\r\n */\r\n _determineVirtualMode(targetItemCount) {\r\n const p = this._p;\r\n\r\n let items = p.items;\r\n if (targetItemCount === undefined) {\r\n targetItemCount = items.length;\r\n }\r\n\r\n let shouldBeVirtual = targetItemCount >= p.virtualMinItems;\r\n\r\n if (shouldBeVirtual !== p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.setVirtual(shouldBeVirtual).render();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n _renderItemContent(item, itemEl) {\r\n const p = this._p, labelProp = p.labelProp;\r\n\r\n // NOTE: a \"measure\" item will not have full data of original item.\r\n // so for a custom renderer - we try to send original item, and fallback to our private list item.\r\n\r\n if (!p.renderItem || p.renderItem(item[ItemSymbol] || item, itemEl) === false) {\r\n itemEl.appendChild(createElement('span', {\r\n class: `${p.baseClassName}__item_label`,\r\n textContent: item[labelProp],\r\n }));\r\n\r\n if (p.multi) {\r\n if (!item._nocheck) {\r\n itemEl.insertBefore(\r\n createElement('span', { class: 'checkbox' }),\r\n itemEl.firstChild,\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions} [positionOptions=undefined]\r\n * @returns {number} new outer width\r\n * @private\r\n */\r\n _updateWidth(positionOptions) {\r\n const p = this._p, el = p.el;\r\n\r\n let targetWidth = 0;\r\n\r\n if (positionOptions) {\r\n // Measure target\r\n targetWidth = positionOptions.targetWidth;\r\n if (targetWidth == null) {\r\n targetWidth = getElementWidth(positionOptions.target, true, true);\r\n }\r\n }\r\n\r\n let autoWidth = 0;\r\n if (!p.useExactTargetWidth) {\r\n if (p.estimateWidth || p.virtualListHelper.isVirtual()) {\r\n autoWidth = p.lastMeasureItemWidth;\r\n } else {\r\n el.style.width = ''; // Reset width\r\n autoWidth = getElementWidth(el, true, true);\r\n }\r\n }\r\n\r\n let newOuterWidth = Math.max(autoWidth, targetWidth);\r\n\r\n setElementWidth(el, newOuterWidth, true, true);\r\n\r\n const elComputedStyle = getComputedStyle(el);\r\n let bordersWidth = (parseFloat(elComputedStyle.borderLeftWidth) || 0) + (parseFloat(elComputedStyle.borderRightWidth) || 0);\r\n let scrollWidth = el.scrollWidth + bordersWidth;\r\n if (scrollWidth > newOuterWidth) {\r\n // consider scrollWidth delta\r\n let delta = scrollWidth - newOuterWidth;\r\n el.style.width = `${parseFloat(el.style.width) + delta}px`;\r\n newOuterWidth = scrollWidth;\r\n }\r\n\r\n return newOuterWidth;\r\n }\r\n}\r\n\r\nexport default DropList;\r\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","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\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 (!hasOwn(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 (!hasOwn(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 && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\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);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\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 (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\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 isCallable = require('../internals/is-callable');\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 uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\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 -- required for testing\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, NativePrototype);\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","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","'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 Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\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 Prototype = Constructor.prototype;\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(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-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 // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\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 // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\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 // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, 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 // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\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\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\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\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\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\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(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 es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\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 ? concat(objectKeys(S), 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 || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\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// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\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 = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, 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 $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('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 }, {\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 $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('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 }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\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 }, {\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 arraySlice = require('../internals/array-slice');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","const throttle = (func, wait, options) => {\r\n let timeout, context, args, result;\r\n let previous = 0;\r\n if (!options) options = {};\r\n\r\n const later = () => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n result = func.apply(context, args);\r\n if (!timeout) context = args = null;\r\n };\r\n\r\n const throttled = function () {\r\n const now = Date.now();\r\n if (!previous && options.leading === false)\r\n previous = now;\r\n\r\n const remaining = wait - (now - previous);\r\n context = this;\r\n args = arguments;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n result = func.apply(context, args);\r\n if (!timeout) context = args = null;\r\n } else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(later, remaining);\r\n }\r\n return result;\r\n };\r\n\r\n throttled.cancel = () => {\r\n clearTimeout(timeout);\r\n previous = 0;\r\n timeout = context = args = null;\r\n };\r\n\r\n throttled.isScheduled = () => {\r\n return !!timeout;\r\n };\r\n\r\n return throttled;\r\n};\r\n\r\nexport default throttle;\r\n","import {\r\n getCssProps,\r\n getElementWidth,\r\n setElementWidth,\r\n getPseudoElementWidth,\r\n setCssProps,\r\n} from '@danielgindi/dom-utils/lib/Css';\r\nimport escapeRegex from './utils/escapeRegex';\r\nimport {\r\n closestUntil,\r\n createElement,\r\n next,\r\n prev,\r\n setElementAttrs,\r\n} from '@danielgindi/dom-utils/lib/Dom';\r\nimport {\r\n append,\r\n getRootNode,\r\n before,\r\n remove,\r\n toggleClass,\r\n} from '@danielgindi/dom-utils/lib/DomCompat';\r\n\r\nimport DomEventsSink from '@danielgindi/dom-utils/lib/DomEventsSink';\r\nimport DropList from './DropList';\r\nimport throttle from './utils/throttle';\r\nimport {\r\n VALUE_BACK_SPACE,\r\n VALUE_DELETE, VALUE_DOWN, VALUE_ENTER,\r\n VALUE_ESCAPE,\r\n VALUE_LEFT, VALUE_PAGE_DOWN,\r\n VALUE_PAGE_UP,\r\n VALUE_RIGHT, VALUE_SPACE,\r\n VALUE_TAB,\r\n VALUE_UP,\r\n} from 'keycode-js';\r\nimport mitt from 'mitt';\r\n\r\nconst ItemSymbol = Symbol('item');\r\nconst DestroyedSymbol = Symbol('destroyed');\r\nconst NoResultsItemSymbol = Symbol('no_results_items');\r\nconst RestMultiItemsSymbol = Symbol('rest_multi_items');\r\n\r\nconst hasTouchCapability = !!('ontouchstart' in window\r\n || (window.DocumentTouch && window.document instanceof window.DocumentTouch)\r\n || window.navigator.maxTouchPoints\r\n);\r\n\r\n/**\r\n * @param {Element|EventTarget} el\r\n * @param {string} className\r\n * @returns {boolean}\r\n */\r\nconst hasClass = function (el, className) {\r\n if (el instanceof Element) {\r\n return el.classList.contains(className);\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst inputBackbufferCssProps = [\r\n 'font-family',\r\n 'font-size',\r\n 'font-weight',\r\n 'font-size',\r\n 'letter-spacing',\r\n 'text-transform',\r\n 'word-spacing',\r\n 'text-indent',\r\n 'box-sizing',\r\n 'padding-left',\r\n 'padding-right',\r\n];\r\n\r\n/**\r\n * @typedef {Object} SelectBox.Options\r\n * @property {DropList.Options} [listOptions] options to pass to the `DropList`\r\n * @property {Element} [el] An element to attach to, instead of creating a new one\r\n * @property {string} [baseClassName='selectbox'] class name for the menu root element\r\n * @property {boolean} [disabled=false] Should start as disabled?\r\n * @property {boolean} [clearable=true] Has clear button?\r\n * @property {boolean} [hasOpenIndicator=true] has open/close indicator?\r\n * @property {string} [placeholder=''] Placeholder text\r\n * @property {boolean} [sortSelectedItems=true] Should the selected items be sorted?\r\n * @property {boolean} [sortListItems=true] Sort list items\r\n * @property {boolean} [sortListCheckedFirst=true] When sorting - put checked items first (applicable to `multi` mode only)\r\n * @property {*[]} [stickyValues]\r\n * @property {function(a: DropList.ItemBase, b: DropList.ItemBase):number} [sortItemComparator]\r\n * @property {boolean} [splitListCheckedGroups=true] Split groups to \"checked\" and \"unchecked\", works with `sortCheckedFirst` only\r\n * @property {boolean|'touch'} [blurOnSingleSelection='touch']\r\n * @property {boolean} [multi=false] can multiple values be selected?\r\n * @property {boolean} [showSelection=true] show selection? if false, the placeholder will take effect\r\n * @property {function(items: DropList.ItemBase[]):string} [multiPlaceholderFormatter] formatter for placeholder for multi items mode\r\n * @property {boolean} [searchable=false] is it searchable?\r\n * @property {string} [noResultsText='No matching results'] text for no results (empty for none)\r\n * @property {number} [filterThrottleWindow=300] throttle time (milliseconds) for filtering\r\n * @property {boolean} [filterOnEmptyTerm=false] call the filter function on empty search term too\r\n * @property {string} [labelProp='label']\r\n * @property {string} [valueProp='value']\r\n * @property {string} [multiItemLabelProp='short_label']\r\n * @property {number} [maxMultiItems] maximum number of multi items. The rest will get a single item to represent.\r\n * @property {function(count: number, items: DropList.ItemBase[]):string} [multiItemsRestLabelProvider] label for the item representing the rest of the items.\r\n * @property {DropList.ItemBase[]|null} [items] initial items\r\n * @property {*[]|null} [selectedValues] initial selected values\r\n * @property {*|*[]|null} [value] initial selected value\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderSingleItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderSingleItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderRestMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderRestMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderNoResultsItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderNoResultsItem]\r\n * @property {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)} [filterFn]\r\n * @property {function(name: string, ...args)} [on]\r\n * @property {string|string[]} [additionalClasses]\r\n * @property {boolean} [isLoadingMode]\r\n * */\r\nconst defaultOptions = {\r\n el: null,\r\n baseClassName: 'selectbox',\r\n disabled: false,\r\n clearable: true,\r\n hasOpenIndicator: true,\r\n placeholder: '',\r\n sortSelectedItems: true,\r\n sortListItems: true,\r\n sortListCheckedFirst: true,\r\n stickyValues: null,\r\n sortItemComparator: null,\r\n splitListCheckedGroups: true,\r\n blurOnSingleSelection: 'touch',\r\n multi: false,\r\n showSelection: true,\r\n multiPlaceholderFormatter: null,\r\n searchable: true,\r\n noResultsText: 'No matching results',\r\n filterThrottleWindow: 300,\r\n filterOnEmptyTerm: false,\r\n labelProp: 'label',\r\n valueProp: 'value',\r\n multiItemLabelProp: 'short_label',\r\n maxMultiItems: null,\r\n multiItemsRestLabelProvider: null,\r\n items: [],\r\n selectedValues: undefined,\r\n value: undefined,\r\n isLoadingMode: false,\r\n};\r\n\r\n/**\r\n *\r\n * @param {DropList.ItemBase[]} items\r\n * @param {string} labelProp\r\n * @returns {string}\r\n */\r\nconst defaultMultiPlaceholderFormatter = (items, labelProp) => {\r\n if (items.length === 0)\r\n return '';\r\n\r\n let title = items[0][labelProp] + '';\r\n\r\n if (items.length > 1) {\r\n title += ` (+${items.length - 1})`;\r\n }\r\n\r\n return title;\r\n};\r\n\r\n/*\r\nEmits the following events:\r\n---------------------------\r\n\r\n'clear:before' {cancel: false}: will clear the whole selection. return false to abort.\r\n'clear': clearead the whole selection.\r\n'open' { list: DropList }: the drop list is opening\r\n'open:before' { list: DropList }: the drop list will open\r\n'close': the drop list is closing\r\n'addsel:before' {value, item, cancel: false}: an item selection is about to be added (in multi mode). return false to abort.\r\n'removesel:before' {value, item, cancel: false}: an item selection is about to be removed (in multi mode). return false to abort.\r\n'select:before' {value, item, cancel: false}: an item is about to be selected (in single mode). return false to abort.\r\n'addsel' {value, item}: an item selection has been added (in multi mode)\r\n'removesel' {value, item}: an item selection has been removed (in multi mode)\r\n'select' {value, item}: an item has been selected (in single mode)\r\n'search' {value}: input box value has changed\r\n'search:focus': input box has gained focus\r\n'search:blur': input box has lost focus\r\n'input:resize': input box resized\r\n'itemschanged' {term, mutated, count}: the current set of items has changed\r\n */\r\n\r\n// noinspection JSUnusedGlobalSymbols\r\nclass SelectBox {\r\n /**\r\n * @param {SelectBox.Options} options\r\n */\r\n constructor(options) {\r\n const o = { ...defaultOptions };\r\n\r\n for (let [key, value] of Object.entries(/**@type Object*/options))\r\n if (value !== undefined)\r\n o[key] = value;\r\n\r\n const p = this._p = {\r\n ownsEl: true,\r\n\r\n baseClassName: o.baseClassName,\r\n\r\n listOptions: o.listOptions,\r\n\r\n disabled: !!o.disabled,\r\n clearable: !!o.clearable,\r\n hasOpenIndicator: !!o.hasOpenIndicator,\r\n placeholder: o.placeholder,\r\n sortSelectedItems: !!o.sortSelectedItems,\r\n sortListItems: !!o.sortListItems,\r\n sortListCheckedFirst: !!o.sortListCheckedFirst,\r\n stickyValues: Array.isArray(o.stickyValues) ? new Set(o.stickyValues) : null,\r\n sortItemComparator: o.sortItemComparator,\r\n splitListCheckedGroups: !!o.splitListCheckedGroups,\r\n blurOnSingleSelection: o.blurOnSingleSelection,\r\n multi: o.multi,\r\n showSelection: o.showSelection,\r\n multiPlaceholderFormatter: o.multiPlaceholderFormatter,\r\n searchable: o.searchable,\r\n noResultsText: o.noResultsText,\r\n filterThrottleWindow: o.filterThrottleWindow,\r\n filterOnEmptyTerm: o.filterOnEmptyTerm,\r\n\r\n labelProp: o.labelProp,\r\n valueProp: o.valueProp,\r\n multiItemLabelProp: o.multiItemLabelProp,\r\n\r\n maxMultiItems: o.maxMultiItems,\r\n multiItemsRestLabelProvider: o.multiItemsRestLabelProvider,\r\n\r\n renderSingleItem: o.renderSingleItem,\r\n unrenderSingleItem: o.unrenderSingleItem,\r\n renderMultiItem: o.renderMultiItem,\r\n unrenderMultiItem: o.unrenderMultiItem,\r\n renderRestMultiItem: o.renderRestMultiItem,\r\n unrenderRestMultiItem: o.unrenderRestMultiItem,\r\n renderNoResultsItem: o.renderNoResultsItem,\r\n unrenderNoResultsItem: o.unrenderNoResultsItem,\r\n filterFn: o.filterFn,\r\n on: o.on || null,\r\n silenceEvents: true,\r\n mitt: mitt(),\r\n additionalClasses: o.additionalClasses,\r\n\r\n isLoadingMode: !!o.isLoadingMode,\r\n\r\n items: [],\r\n filteredItems: null,\r\n itemsChanged: true,\r\n\r\n sink: new DomEventsSink(),\r\n\r\n /** @type ResizeObserver */\r\n resizeObserver: null,\r\n\r\n selectedItems: [],\r\n selectedValues: [],\r\n selectionChanged: true,\r\n resortBySelectionNeeded: false,\r\n\r\n throttledUpdateListItems: throttle(() => this._updateListItems(),\r\n o.filterThrottleWindow,\r\n { leading: true, trailing: true }),\r\n\r\n filterTerm: '',\r\n };\r\n\r\n let el = o.el;\r\n if (el instanceof Element) {\r\n p.ownsEl = false;\r\n } else {\r\n el = createElement('span');\r\n }\r\n\r\n setElementAttrs(el, {\r\n role: 'combobox',\r\n 'aria-haspopup': 'true',\r\n 'aria-expanded': 'false',\r\n });\r\n p.el = el;\r\n\r\n this._syncBaseClasses();\r\n this._renderBase();\r\n\r\n /** @type Element[] */\r\n p.multiItemEls = [];\r\n\r\n this.enable(!p.disabled);\r\n\r\n this._setupDropdownMenu();\r\n\r\n // --- Hook click\r\n p.sink\r\n .add(el, 'click', (evt) => {\r\n if (p.clearButtonWrapper && p.clearButtonWrapper.contains(evt.target)) {\r\n return;\r\n }\r\n\r\n if (!el.contains(document.activeElement)) {\r\n p.input.focus();\r\n // Go to end of input\r\n p.input.selectionStart = p.input.selectionEnd = p.input.value.length;\r\n }\r\n });\r\n\r\n // --- Handle default focus directly to search box\r\n p.sink.add(el, 'focus', evt => {\r\n const target = (/**Element*/evt.target);\r\n\r\n if (!el.contains(evt.relatedTarget) &&\r\n !hasClass(target, `${p.baseClassName}__search_field`) &&\r\n !hasClass(target, `${p.baseClassName}__item`)) {\r\n let field = el.querySelector(`.${p.baseClassName}__search_field`);\r\n field && field.focus();\r\n }\r\n }, true);\r\n\r\n p.sink\r\n .add(p.input, 'keydown', (/**KeyboardEvent*/event) => {\r\n this._handleInputKeydown(event);\r\n })\r\n .add(p.input, 'input', () => {\r\n this._resizeInput();\r\n });\r\n\r\n const focusInOutHandler = (() => {\r\n let t;\r\n return () => {\r\n if (t) {\r\n clearTimeout(t);\r\n }\r\n t = setTimeout(() => {\r\n toggleClass(el, `${p.baseClassName}__focus`, el.contains(document.activeElement));\r\n });\r\n };\r\n })();\r\n p.sink.add(el, 'focus', focusInOutHandler, true);\r\n p.sink.add(el, 'blur', focusInOutHandler, true);\r\n\r\n // --- Resize input on window change\r\n p.sink.add(window, 'resize', () => this._resizeInput());\r\n p.sink.add(window, 'orientationchange', () => this._resizeInput());\r\n\r\n if (window.ResizeObserver !== undefined) {\r\n p.resizeObserver = new ResizeObserver(() => {\r\n this._resizeInput();\r\n });\r\n p.resizeObserver.observe(p.el);\r\n }\r\n\r\n this.setItems(o.items);\r\n\r\n if (o.multi && Array.isArray(o.selectedValues)) {\r\n this.setSelectedValues(o.selectedValues);\r\n } else if (o.value != null) {\r\n this.setValue(o.value);\r\n }\r\n\r\n this._scheduleSync();\r\n\r\n this.silenceEvents = false;\r\n\r\n return this;\r\n }\r\n\r\n destroy() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n this[DestroyedSymbol] = true;\r\n\r\n const p = this._p;\r\n\r\n if (p.syncTimeout) {\r\n clearTimeout(p.syncTimeout);\r\n delete p.syncTimeout;\r\n }\r\n\r\n this._stopTrackingPresence();\r\n\r\n p.sink.remove();\r\n p.dropList && p.dropList.destroy();\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n this._cleanupSingleWrapper();\r\n\r\n if (p.unrenderMultiItem || p.unrenderRestMultiItem) {\r\n // Remove all item elements\r\n while (p.multiItemEls.length > 0) {\r\n // use fast path by removing in reverse\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n\r\n remove(p.list);\r\n remove(p.singleWrapper);\r\n remove(p.input);\r\n remove(p.inputBackBuffer);\r\n remove(p.clearButtonWrapper);\r\n remove(p.openIndicator);\r\n\r\n if (!p.ownsEl) {\r\n for (let name of Array.from(p.el.classList)) {\r\n if (name.startsWith(p.baseClassName)) {\r\n p.el.classList.remove(name);\r\n }\r\n }\r\n p.el.removeAttribute('role');\r\n p.el.removeAttribute('aria-haspopup');\r\n p.el.removeAttribute('aria-expanded');\r\n }\r\n\r\n p.resizeObserver?.disconnect();\r\n\r\n this._p = null;\r\n }\r\n\r\n get el() {\r\n return this._p.el;\r\n }\r\n\r\n /**\r\n * Enables the control\r\n * @param {boolean=true} enabled Should the control be enabled?\r\n * @returns {SelectBox}\r\n */\r\n enable(enabled) {\r\n const p = this._p;\r\n\r\n if (enabled === undefined) {\r\n enabled = true;\r\n }\r\n p.disabled = !enabled;\r\n p.el.setAttribute('aria-disabled', p.disabled.toString());\r\n p.input.disabled = !!p.disabled;\r\n\r\n const multiItemEls = p.multiItemEls;\r\n\r\n for (let itemEl of multiItemEls) {\r\n if (p.disabled) {\r\n itemEl.removeAttribute('tabindex');\r\n } else {\r\n itemEl.setAttribute('tabindex', '0');\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Is the control enabled?\r\n * @returns {boolean}\r\n */\r\n isEnabled() {\r\n return !this._p.disabled;\r\n }\r\n\r\n /**\r\n * Disables the control\r\n * @param {boolean=true} disabled Should the control be disabled?\r\n * @returns {SelectBox}\r\n */\r\n disable(disabled) {\r\n return this.enable(disabled === undefined ? false : !disabled);\r\n }\r\n\r\n /**\r\n * Is the control disabled?\r\n * @returns {boolean}\r\n */\r\n isDisabled() {\r\n return this._p.disabled;\r\n }\r\n\r\n /**\r\n * @param {string|string[]} classes\r\n * @returns {SelectBox}\r\n */\r\n setAdditionalClasses(classes) {\r\n const p = this._p;\r\n p.additionalClasses = classes;\r\n this._syncBaseClasses();\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.ItemBase[]} [items]\r\n * @param {boolean} [resetValues=true] should reset values to current values (essentially refresh the data based on items & values). If set to false, use setValue to set a fresh value\r\n * @returns {SelectBox}\r\n */\r\n setItems(items, resetValues = true) {\r\n const p = this._p;\r\n\r\n if (!items)\r\n items = [];\r\n\r\n p.items = items.slice(0);\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n if (resetValues) {\r\n this.setSelectedValues(this.getSelectedValues());\r\n }\r\n\r\n this._trigger('itemschanged', { term: null, mutated: true, count: this.getFilteredItemCount() });\r\n\r\n return this;\r\n }\r\n\r\n getFilteredItemCount() {\r\n const p = this._p;\r\n\r\n if (p.filteredItems)\r\n return p.filteredItems.length;\r\n\r\n if (p.items)\r\n return p.items.length;\r\n\r\n return 0;\r\n }\r\n\r\n isFilterPending() {\r\n const p = this._p;\r\n\r\n return !!(p.throttledUpdateListItems.isScheduled() ||\r\n (!p.filteredItems && (p.filterTerm || (p.filterOnEmptyTerm && p.filterFn))));\r\n }\r\n\r\n updateItemByValue(value, newItem) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n let existingItem = p.items.find(x => x[valueProp] === value);\r\n if (existingItem)\r\n Object.assign(existingItem, newItem);\r\n\r\n if (p.dropList) {\r\n p.dropList.updateItemByValue(value, newItem);\r\n }\r\n }\r\n\r\n /**\r\n * @returns {DropList.ItemBase[]|*}\r\n */\r\n getItems() {\r\n const p = this._p;\r\n return p.items;\r\n }\r\n\r\n /**\r\n * @param {boolean} clearable\r\n * @returns {SelectBox}\r\n */\r\n setClearable(clearable) {\r\n clearable = !!clearable;\r\n\r\n if (this._p.clearable === clearable)\r\n return this;\r\n\r\n this._p.clearable = !!clearable;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getClearable() {\r\n return this._p.clearable;\r\n }\r\n\r\n /**\r\n * @param {boolean} enabled\r\n * @returns {SelectBox}\r\n */\r\n setHasOpenIndicator(enabled) {\r\n enabled = !!enabled;\r\n\r\n if (this._p.hasOpenIndicator === enabled)\r\n return this;\r\n\r\n this._p.hasOpenIndicator = enabled;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getHasOpenIndicator() {\r\n return this._p.hasOpenIndicator;\r\n }\r\n\r\n /**\r\n * @param {string} placeholder\r\n * @returns {SelectBox}\r\n */\r\n setPlaceholder(placeholder) {\r\n this._p.placeholder = placeholder == null ? '' : String(placeholder);\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getPlaceHolder() {\r\n return this._p.placeholder;\r\n }\r\n\r\n /**\r\n * @param {string} term\r\n * @param {boolean} [performSearch=false] should actually perform the search, or just set the input's text?\r\n * @returns {SelectBox}\r\n */\r\n setSearchTerm(term, performSearch = false) {\r\n const p = this._p;\r\n\r\n if (!p.input) return this;\r\n\r\n p.input.value = term;\r\n\r\n this._scheduleSync('resize_input');\r\n\r\n if (performSearch) {\r\n p.filterTerm = p.input.value.trim();\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n this._trigger('search', { value: p.input.value });\r\n p.throttledUpdateListItems();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getSearchTerm() {\r\n const p = this._p;\r\n if (p.input)\r\n return p.input.value;\r\n return '';\r\n }\r\n\r\n /**\r\n * @param {boolean} sortSelectedItems\r\n * @returns {SelectBox}\r\n */\r\n setSortSelectedItems(sortSelectedItems) {\r\n const p = this._p;\r\n sortSelectedItems = !!sortSelectedItems;\r\n if (p.sortSelectedItems === sortSelectedItems)\r\n return this;\r\n\r\n p.sortSelectedItems = sortSelectedItems;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortSelectedItemsEnabled() {\r\n return this._p.sortSelectedItems;\r\n }\r\n\r\n /**\r\n * @param {boolean} sortListItems\r\n * @returns {SelectBox}\r\n */\r\n setSortListItems(sortListItems) {\r\n const p = this._p;\r\n sortListItems = !!sortListItems;\r\n if (p.sortListItems === sortListItems)\r\n return this;\r\n\r\n p.sortListItems = sortListItems;\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortListItemsEnabled() {\r\n return this._p.sortListItems;\r\n }\r\n\r\n /**\r\n * @param {boolean} sortListCheckedFirst\r\n * @returns {SelectBox}\r\n */\r\n setSortListCheckedFirst(sortListCheckedFirst) {\r\n const p = this._p;\r\n sortListCheckedFirst = !!sortListCheckedFirst;\r\n if (p.sortCheckedFirst === sortListCheckedFirst)\r\n return this;\r\n\r\n p.sortCheckedFirst = sortListCheckedFirst;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortListCheckedFirstEnabled() {\r\n return this._p.sortListCheckedFirst;\r\n }\r\n\r\n /**\r\n * @param {*[]} values\r\n * @returns {SelectBox}\r\n */\r\n setStickyValues(values) {\r\n const p = this._p;\r\n\r\n p.stickyValues = Array.isArray(values) ? new Set(values) : null;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {*[]}\r\n */\r\n getStickyValues() {\r\n return this._p.stickyValues ? Array.from(this._p.stickyValues) : null;\r\n }\r\n\r\n /**\r\n * @param {function(a: DropList.ItemBase, b: DropList.ItemBase):number} comparator\r\n * @returns {SelectBox}\r\n */\r\n setSortItemComparator(comparator) {\r\n const p = this._p;\r\n if (p.sortItemComparator === comparator)\r\n return this;\r\n\r\n p.sortItemComparator = comparator;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {function(a: DropList.ItemBase, b: DropList.ItemBase):number}\r\n */\r\n getSortItemComparator() {\r\n return this._p.sortItemComparator;\r\n }\r\n\r\n /**\r\n * @param {boolean} splitListCheckedGroups\r\n * @returns {SelectBox}\r\n */\r\n setSplitListCheckedGroups(splitListCheckedGroups) {\r\n const p = this._p;\r\n splitListCheckedGroups = !!splitListCheckedGroups;\r\n if (p.splitListCheckedGroups === splitListCheckedGroups)\r\n return this;\r\n\r\n p.splitListCheckedGroups = splitListCheckedGroups;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSplitListCheckedGroupsEnabled() {\r\n return this._p.splitListCheckedGroups;\r\n }\r\n\r\n /**\r\n * @param {boolean} showSelection\r\n * @returns {SelectBox}\r\n */\r\n setShowSelection(showSelection) {\r\n const p = this._p;\r\n showSelection = !!showSelection;\r\n if (p.showSelection === showSelection)\r\n return this;\r\n\r\n this._p.showSelection = showSelection;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isShowSelectionEnabled() {\r\n return this._p.showSelection;\r\n }\r\n\r\n /**\r\n * @param {function(items: DropList.ItemBase[]):string} formatter\r\n * @returns {SelectBox}\r\n */\r\n setMultiPlaceholderFormatter(formatter) {\r\n const p = this._p;\r\n\r\n if (p.multiPlaceholderFormatter === formatter)\r\n return this;\r\n\r\n this._p.multiPlaceholderFormatter = formatter;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {boolean|'touch'} value\r\n * @returns {SelectBox}\r\n */\r\n setBlurOnSingleSelection(value) {\r\n const p = this._p;\r\n if (p.blurOnSingleSelection === value)\r\n return this;\r\n\r\n this._p.blurOnSingleSelection = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean|'touch'}\r\n */\r\n getBlurOnSingleSelection() {\r\n return this._p.blurOnSingleSelection;\r\n }\r\n\r\n /**\r\n * @param {boolean} multi\r\n * @returns {SelectBox}\r\n */\r\n setMulti(multi) {\r\n const p = this._p;\r\n multi = !!multi;\r\n if (p.multi === multi)\r\n return this;\r\n\r\n p.multi = multi;\r\n\r\n this._setupDropdownMenu();\r\n\r\n // move to correct parent\r\n remove(p.clearButtonWrapper);\r\n delete p.clearButtonWrapper;\r\n\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isMultiEnabled() {\r\n return this._p.multi;\r\n }\r\n\r\n /**\r\n * @param {boolean} searchable\r\n * @returns {SelectBox}\r\n */\r\n setSearchable(searchable) {\r\n const p = this._p;\r\n searchable = !!searchable;\r\n if (p.searchable === searchable)\r\n return this;\r\n\r\n p.searchable = searchable;\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSearchableEnabled() {\r\n return this._p.searchable;\r\n }\r\n\r\n /**\r\n * @param {string} noResultsText\r\n * @returns {SelectBox}\r\n */\r\n setNoResultsText(noResultsText) {\r\n this._p.noResultsText = noResultsText;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getNoResultsText() {\r\n return this._p.noResultsText;\r\n }\r\n\r\n /**\r\n * @param {number} window\r\n * @returns {SelectBox}\r\n */\r\n setFilterThrottleWindow(window) {\r\n const p = this._p;\r\n p.filterThrottleWindow = window;\r\n\r\n let isScheduled = p.throttledUpdateListItems ? p.throttledUpdateListItems.isScheduled() : false;\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n p.throttledUpdateListItems = throttle(() => this._updateListItems(), p.filterThrottleWindow, true);\r\n\r\n if (isScheduled)\r\n p.throttledUpdateListItems();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {number}\r\n */\r\n getFilterThrottleWindow() {\r\n return this._p.filterThrottleWindow;\r\n }\r\n\r\n /**\r\n * @param {boolean} value\r\n * @returns {SelectBox}\r\n */\r\n setFilterOnEmptyTerm(value) {\r\n const p = this._p;\r\n p.filterOnEmptyTerm = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getFilterOnEmptyTerm() {\r\n return this._p.filterOnEmptyTerm;\r\n }\r\n\r\n /**\r\n * @param {DropList.Options} listOptions\r\n * @returns {SelectBox}\r\n */\r\n setListOptions(listOptions) {\r\n const p = this._p;\r\n p.listOptions = listOptions;\r\n this._setupDropdownMenu();\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox})|null\r\n */\r\n setRenderSingleItem(render, unrender) {\r\n const p = this._p;\r\n p.renderSingleItem = render;\r\n p.unrenderSingleItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderMultiItem(render, unrender) {\r\n const p = this._p;\r\n p.renderMultiItem = render;\r\n p.unrenderMultiItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderRestMultiItem(render, unrender) {\r\n const p = this._p;\r\n p.renderRestMultiItem = render;\r\n p.unrenderRestMultiItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderNoResultsItem(render, unrender) {\r\n const p = this._p;\r\n p.renderNoResultsItem = render;\r\n p.unrenderNoResultsItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setLabelProp(prop) {\r\n const p = this._p;\r\n p.labelProp = prop;\r\n\r\n\t\tif (p.dropList)\r\n\t\t\tp.dropList.setLabelProp(prop);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setValueProp(prop) {\r\n const p = this._p;\r\n p.valueProp = prop;\r\n\r\n\t\tif (p.dropList)\r\n\t\t\tp.dropList.setValueProp(prop);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setMultiItemLabelProp(prop) {\r\n const p = this._p;\r\n p.multiItemLabelProp = prop;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {number|null|undefined} value\r\n * @returns {SelectBox}\r\n */\r\n setMaxMultiItems(value) {\r\n const p = this._p;\r\n p.maxMultiItems = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {function(count: number, items: DropList.ItemBase[]):string|null|undefined} value\r\n * @returns {SelectBox}\r\n */\r\n setMultiItemsRestLabelProvider(value) {\r\n const p = this._p;\r\n p.multiItemsRestLabelProvider = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)} fn\r\n * @returns {SelectBox}\r\n */\r\n setFilterFn(fn) {\r\n const p = this._p;\r\n p.filterFn = fn;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)}\r\n */\r\n getFilterFn() {\r\n return this._p.filterFn;\r\n }\r\n\r\n /**\r\n * Focus on input element\r\n * @returns {SelectBox}\r\n */\r\n focusInput() {\r\n const p = this._p;\r\n\r\n if (p.input)\r\n p.input.focus();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Remvoe focus from the input element\r\n * @returns {SelectBox}\r\n */\r\n blurInput() {\r\n const p = this._p;\r\n\r\n if (p.input)\r\n p.input.blur();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Removes all selected items\r\n * @returns {SelectBox}\r\n */\r\n clear() {\r\n const p = this._p;\r\n\r\n let clearEvt = { cancel: false };\r\n this._trigger('clear:before', clearEvt);\r\n if (clearEvt.cancel)\r\n return this;\r\n\r\n p.selectedItems = [];\r\n p.selectedValues = [];\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._trigger('clear');\r\n\r\n if (this[DestroyedSymbol]) return this; // destroyed by event handler\r\n\r\n this._updateListItems();\r\n\r\n this._setInputText('');\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns a single value or an array of selected values - depending on `multi` prop\r\n * @public\r\n * @returns {*[]}\r\n */\r\n getValue() {\r\n const p = this._p;\r\n if (p.multi)\r\n return p.selectedValues.slice(0);\r\n else if (p.selectedValues.length > 0)\r\n return p.selectedValues[0];\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Selects the specified value or multiple values - depending on `multi` prop\r\n * @public\r\n * @param {*|*[]} value - if `multi`, then an array of values to select, otherwise - a single value to select\r\n * @returns {SelectBox}\r\n */\r\n setValue(value) {\r\n const p = this._p;\r\n if (p.multi)\r\n return this.setSelectedValues(Array.isArray(value) ? value : value !== undefined ? [value] : []);\r\n else\r\n return this.setSelectedValues(value !== undefined ? [value] : []);\r\n }\r\n\r\n /**\r\n * Returns an array of selected values\r\n * @public\r\n * @returns {*[]}\r\n */\r\n getSelectedValues() {\r\n const p = this._p;\r\n return p.selectedValues.slice(0);\r\n }\r\n\r\n /**\r\n * Selects the specified values\r\n * @public\r\n * @param {*[]} values - an array of *values* to select\r\n * @returns {SelectBox}\r\n */\r\n setSelectedValues(values) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (!p.multi) {\r\n values = values.slice(0, 1);\r\n }\r\n\r\n let set = new Set();\r\n let selectedValues = [];\r\n let selectedItems = [];\r\n\r\n for (let value of values) {\r\n if (set.has(value))\r\n continue;\r\n set.add(value);\r\n\r\n selectedValues.push(value);\r\n\r\n let item = p.items.find(x => x[valueProp] === value);\r\n if (item !== undefined) {\r\n selectedItems.push(item);\r\n } else {\r\n selectedItems.push({ [p.valueProp]: value });\r\n }\r\n }\r\n\r\n p.selectedValues = selectedValues;\r\n p.selectedItems = selectedItems;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._updateListItems();\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns the count of selected values\r\n * @public\r\n * @returns {number}\r\n */\r\n getSelectedValueCount() {\r\n const p = this._p;\r\n return p.selectedValues.length;\r\n }\r\n\r\n /**\r\n * Returns an array of selected items\r\n * @public\r\n * @returns {Array.<Object>}\r\n */\r\n getSelectedItems() {\r\n const p = this._p;\r\n return p.selectedItems.slice(0);\r\n }\r\n\r\n /**\r\n * Sets the specified items to \"checked\" mode.\r\n * An array of items is passed, not values, because we need to keep track if items,\r\n * and if we already have the array of items then this spares the process of searching for the items by values.\r\n * @public\r\n * @param {DropList.ItemBase[]} items - an array of *items* to select (not values)\r\n * @returns {SelectBox}\r\n */\r\n setSelectedItems(items) {\r\n this._setSelectedItems(items);\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {SelectBox}\r\n */\r\n openList() {\r\n const p = this._p;\r\n\r\n if (p.dropList.isVisible())\r\n return this;\r\n\r\n if (p.isLoadingMode && p.items.length === 0)\r\n return this;\r\n\r\n this._trigger('open:before', { list: p.dropList });\r\n\r\n p.dropList.show(this._getDropListPositionOptions());\r\n this._repositionDropList();\r\n\r\n // Another one in case the droplist position messed with screen layout.\r\n // If the out element's bounds stayed the same - nothing will be recalculated.\r\n // So this is *not* expensive.\r\n this._repositionDropList();\r\n\r\n if (p.dropList.hasFocusedItem()) {\r\n p.dropList.setFocusedItemAtIndex(p.dropList.getFocusedItemIndex());\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {SelectBox}\r\n */\r\n closeList() {\r\n const p = this._p;\r\n\r\n if (this[DestroyedSymbol])\r\n return this;\r\n\r\n if (!p.dropList.isVisible())\r\n return this;\r\n\r\n p.dropList.hide();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {boolean} [open]\r\n * @returns {SelectBox}\r\n */\r\n toggleList(open) {\r\n const p = this._p;\r\n\r\n let shouldOpen = open === undefined ? !p.dropList.isVisible() : !!open;\r\n\r\n if (shouldOpen)\r\n return this.openList();\r\n else return this.closeList();\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isListOpen() {\r\n return !!this._p.dropListVisible;\r\n }\r\n\r\n /**\r\n * @param {boolean} [on]\r\n * @returns {SelectBox}\r\n */\r\n toggleLoading(on) {\r\n return this.setIsLoadingMode(on === undefined ? !this.getIsLoadingMode() : !!on);\r\n }\r\n\r\n /**\r\n * @param {boolean} isLoadingMode\r\n * @returns {SelectBox}\r\n */\r\n setIsLoadingMode(isLoadingMode) {\r\n const p = this._p;\r\n\r\n isLoadingMode = isLoadingMode === undefined ? true : !!isLoadingMode;\r\n\r\n if (p.isLoadingMode === isLoadingMode)\r\n return this;\r\n\r\n p.isLoadingMode = isLoadingMode;\r\n\r\n if (p.isLoadingMode && p.items.length === 0 && this.isListOpen()) {\r\n this.closeList();\r\n } else if (!p.isLoadingMode && document.activeElement &&\r\n ((p.multi || p.searchable) && p.input.contains(document.activeElement) ||\r\n (!p.multi && !p.searchable) && p.el.contains(document.activeElement))) {\r\n this.openList();\r\n }\r\n\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getIsLoadingMode() {\r\n return this._p.isLoadingMode;\r\n }\r\n\r\n /**\r\n * Can be called in case that the selectbox was attached to the dom late and has a weird size.\r\n * @returns {SelectBox}\r\n */\r\n refreshSize() {\r\n this._resizeInput();\r\n return this;\r\n }\r\n\r\n /**\r\n * Register an event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n on(/**string|'*'*/event, /**Function?*/handler) {\r\n this._p.mitt.on(event, handler);\r\n return this;\r\n }\r\n\r\n /**\r\n * Register a one time event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n once(/**string|'*'*/event, /**Function?*/handler) {\r\n let wrapped = (value) => {\r\n this._p.mitt.off(event, wrapped);\r\n handler(value);\r\n };\r\n this._p.mitt.on(event, wrapped);\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove an `handler` for `event`, all events for `event`, or all events completely.\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n off(/**(string|'*')?*/event, /**Function?*/handler) {\r\n if (!event && !event) {\r\n this._p.mitt.all.clear();\r\n } else {\r\n this._p.mitt.off(event, handler);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Emit an event\r\n * @param {string} event\r\n * @param {any} value\r\n * @returns {SelectBox}\r\n */\r\n emit(/**string|'*'*/event, /**any?*/value) {\r\n this._p.mitt.emit(event, value);\r\n return this;\r\n }\r\n\r\n /** @private */\r\n _renderBase() {\r\n const p = this._p;\r\n\r\n if (!p.inputBackBuffer) {\r\n p.inputBackBuffer = createElement('span', {\r\n css: {\r\n position: 'absolute',\r\n zIndex: -1,\r\n left: 0,\r\n top: '-9999px',\r\n whiteSpace: 'pre',\r\n },\r\n });\r\n }\r\n\r\n if (!p.input) {\r\n p.inputWrapper = createElement('span',\r\n {\r\n class: `${p.baseClassName}__search_wrapper`,\r\n },\r\n p.input = createElement('input', {\r\n class: `${p.baseClassName}__search_field`,\r\n type: 'search',\r\n autocomplete: 'off',\r\n autocorrect: 'off',\r\n autocapitalize: 'off',\r\n spellcheck: 'false',\r\n role: 'textbox',\r\n 'aria-autocomplete': 'list',\r\n readOnly: !(p.searchable || p.multi),\r\n }),\r\n );\r\n }\r\n\r\n if (p.multi) {\r\n if (p.singleWrapper) {\r\n this._cleanupSingleWrapper();\r\n remove(p.singleWrapper);\r\n delete p.singleWrapper;\r\n }\r\n\r\n if (!p.list) {\r\n // Moving `inputWrapper` to a new parent may cause a 'blur' event, and an unwanted chain reaction!\r\n // So we're unregistering those events here.\r\n this._unregisterDropdownEvents();\r\n\r\n // Restore focus to this one later if we affected it\r\n const lastActiveElement = document.activeElement;\r\n\r\n p.list = createElement('ul', {\r\n class: `${p.baseClassName}__list`,\r\n });\r\n p.el.appendChild(p.list);\r\n p.list.appendChild(p.inputWrapper);\r\n p.el.classList.remove(`${p.baseClassName}__single`);\r\n p.el.classList.add(`${p.baseClassName}__multi`);\r\n\r\n // Hook clear and remove\r\n p.sink\r\n .add(p.list, 'click', (evt) => {\r\n if (!closestUntil(evt.target, `.${p.baseClassName}__item_remove`, evt.currentTarget))\r\n return;\r\n\r\n if (p.disabled) return;\r\n\r\n this._removeMultiItemFromEvent(\r\n /**@type Element*/\r\n closestUntil(evt.target, `.${p.baseClassName}__item`, evt.currentTarget),\r\n evt);\r\n })\r\n .add(p.list, 'keydown', (/**KeyboardEvent*/evt) => {\r\n if (!closestUntil(evt.target, `.${p.baseClassName}__item`, evt.currentTarget))\r\n return;\r\n\r\n this._handleMultiKeydown(evt);\r\n });\r\n\r\n if (lastActiveElement === p.input)\r\n p.input.focus();\r\n\r\n this._registerDropdownEvents();\r\n }\r\n } else {\r\n if (p.list) {\r\n remove(p.list);\r\n p.sink.remove(p.list);\r\n delete p.list;\r\n }\r\n\r\n if (!p.singleWrapper) {\r\n // Moving `inputWrapper` to a new parent may cause a 'blur' event, and an unwanted chain reaction!\r\n // So we're unregistering those events here.\r\n this._unregisterDropdownEvents();\r\n\r\n // Restore focus to this one later if we affected it\r\n const lastActiveElement = document.activeElement;\r\n\r\n p.singleWrapper = createElement('div', {\r\n class: `${p.baseClassName}__single_wrapper`,\r\n });\r\n p.el.appendChild(p.singleWrapper);\r\n p.el.appendChild(p.inputWrapper);\r\n p.el.classList.remove(`${p.baseClassName}__multi`);\r\n p.el.classList.add(`${p.baseClassName}__single`);\r\n\r\n if (lastActiveElement === p.input)\r\n p.input.focus();\r\n\r\n this._registerDropdownEvents();\r\n }\r\n }\r\n\r\n if (p.hasOpenIndicator !== !!p.openIndicator) {\r\n if (p.hasOpenIndicator) {\r\n p.openIndicator = createElement('span', { class: `${p.baseClassName}__open_indicator` });\r\n p.el.appendChild(p.openIndicator);\r\n } else {\r\n remove(p.openIndicator);\r\n delete p.openIndicator;\r\n p.el.classList.remove(`${p.baseClassName}__has_open_indicator`);\r\n }\r\n }\r\n\r\n if (p.isLoadingMode !== !!p.spinner) {\r\n if (p.isLoadingMode) {\r\n p.spinner = createElement('span', { class: `${p.baseClassName}__spinner` });\r\n p.el.appendChild(p.spinner);\r\n p.el.classList.add(`${p.baseClassName}__has_spinner`);\r\n } else {\r\n remove(p.spinner);\r\n delete p.spinner;\r\n p.el.classList.remove(`${p.baseClassName}__has_spinner`);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _syncBaseClasses() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el)\r\n return;\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.multi)\r\n classes.push(`${p.baseClassName}__multi`);\r\n else classes.push(`${p.baseClassName}__single`);\r\n\r\n if (this.isListOpen())\r\n classes.push(`${p.baseClassName}__open_list`);\r\n else classes.push(`${p.baseClassName}__closed_list`);\r\n\r\n if (p.hasOpenIndicator)\r\n classes.push(`${p.baseClassName}__has_open_indicator`);\r\n\r\n if (p.clearButtonWrapper)\r\n classes.push(`${p.baseClassName}__has_clear`);\r\n\r\n if (p.isLoadingMode)\r\n classes.push(`${p.baseClassName}__has_spinner`);\r\n\r\n if (p.selectedValues.length === 0)\r\n classes.push(`${p.baseClassName}__empty_selection`);\r\n\r\n if (p.selectedValues.length > 0)\r\n classes.push(`${p.baseClassName}__has_selection`);\r\n\r\n if (p.searchable || p.multi)\r\n classes.push(`${p.baseClassName}__searchable`);\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n el.className = classes.join(' ');\r\n }\r\n\r\n /** @private */\r\n _setupDropdownMenu() {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (p.dropList) {\r\n p.dropList.destroy();\r\n delete p.dropList;\r\n p.itemsChanged = true;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n\r\n const renderNoResultsItem = p.renderNoResultsItem;\r\n const unrenderNoResultsItem = p.unrenderNoResultsItem;\r\n const customRenderItem = (p.listOptions || {}).renderItem;\r\n const customUnrenderItem = (p.listOptions || {}).unrenderItem;\r\n\r\n const renderItem = (renderNoResultsItem || customRenderItem) ? (item, itemEl) => {\r\n if (item && item[valueProp] === NoResultsItemSymbol) {\r\n if (renderNoResultsItem && renderNoResultsItem(item, itemEl) !== false) {\r\n return true;\r\n }\r\n\r\n itemEl.appendChild(createElement('div', {\r\n class: 'droplist-no-results-content',\r\n textContent: p.noResultsText,\r\n }));\r\n return true;\r\n } else {\r\n if (customRenderItem)\r\n return customRenderItem(item, itemEl);\r\n }\r\n return false;\r\n } : null;\r\n\r\n const unrenderItem = (unrenderNoResultsItem || customRenderItem) ? (item, itemEl) => {\r\n if (item && item[valueProp] === NoResultsItemSymbol) {\r\n if (unrenderNoResultsItem)\r\n return unrenderNoResultsItem(item, itemEl);\r\n } else {\r\n if (customUnrenderItem)\r\n return customUnrenderItem(item, itemEl);\r\n }\r\n return false;\r\n } : null;\r\n\r\n const dropList = p.dropList = new DropList({\r\n virtualMinItems: 10,\r\n\r\n ...p.listOptions,\r\n\r\n renderItem: renderItem,\r\n unrenderItem: unrenderItem,\r\n\r\n multi: p.multi,\r\n capturesFocus: false,\r\n\r\n labelProp: p.labelProp,\r\n valueProp: p.valueProp,\r\n\r\n on: (name, event) => {\r\n switch (name) {\r\n case 'show:before': {\r\n p.dropListVisible = true;\r\n p.el.setAttribute('aria-expanded', 'true');\r\n p.el.classList.add(`${p.baseClassName}__open_list`);\r\n p.el.classList.remove(`${p.baseClassName}__closed_list`);\r\n\r\n if (p.resortBySelectionNeeded && (p.sortListCheckedFirst && p.multi))\r\n p.itemsChanged = true;\r\n\r\n this._updateListItems();\r\n this._trigger('open', { list: dropList });\r\n\r\n this._startTrackingPresence();\r\n\r\n p.sink.add(window, 'resize.trackposition', () => this._repositionDropList());\r\n\r\n let parent = p.el.parentNode;\r\n while (parent) {\r\n if (parent.scrollHeight > parent.offsetHeight ||\r\n parent.scrollWidth > parent.offsetWidth) {\r\n if (parent === document.documentElement) {\r\n parent = window;\r\n }\r\n p.sink.add(parent, 'scroll.trackposition', () => this._repositionDropList());\r\n }\r\n parent = parent.parentNode;\r\n }\r\n }\r\n break;\r\n\r\n case 'hide': {\r\n p.dropListVisible = false;\r\n p.el.setAttribute('aria-expanded', 'false');\r\n p.el.classList.remove(`${p.baseClassName}__open_list`);\r\n p.el.classList.add(`${p.baseClassName}__closed_list`);\r\n\r\n if (!p.multi) {\r\n this._setInputText('');\r\n this._scheduleSync();\r\n }\r\n\r\n this._trigger('close');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this._stopTrackingPresence();\r\n p.sink.remove(null, '.trackposition');\r\n }\r\n break;\r\n\r\n case 'check': {\r\n if (!p.multi) return;\r\n\r\n const item = /**@type DropList.Item*/event.item;\r\n const value = event.value;\r\n\r\n let checked = item._checked;\r\n if (item._group) return; // Ignore groups\r\n\r\n let selEvt = { value: value, item: item, cancel: false };\r\n this._trigger((checked ? 'addsel' : 'removesel') + ':before', selEvt);\r\n\r\n if (selEvt.cancel) {\r\n // Rollback that check\r\n p.dropList.setItemChecked(value, !checked);\r\n return;\r\n }\r\n\r\n if (checked) {\r\n p.selectedItems.push(item);\r\n p.selectedValues.push(value);\r\n } else {\r\n const idx = p.selectedValues.indexOf(value);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n }\r\n }\r\n\r\n // If we are in context of group, then there are lots of syncs coming, so do not do it now\r\n const hasGroupSync = !!event.isCheckingGroup;\r\n\r\n if (p.showSelection) {\r\n if (checked) {\r\n if (dropList.itemCount() === 1) {\r\n this._setInputText('');\r\n }\r\n\r\n if (p.sortSelectedItems) {\r\n if (!hasGroupSync)\r\n this._scheduleSync('full');\r\n } else {\r\n if (p.maxMultiItems != null &&\r\n p.selectedItems.filter(x => !x._group).length > p.maxMultiItems) {\r\n this._scheduleSync('addOrUpdateMultiItemRestElement');\r\n } else {\r\n this._scheduleSync('addMultiItemElement', item);\r\n }\r\n\r\n if (!hasGroupSync)\r\n this._scheduleSync();\r\n }\r\n } else {\r\n if (p.maxMultiItems != null &&\r\n p.selectedItems.filter(x => !x._group).length === p.maxMultiItems) {\r\n this._scheduleSync('removeMultiItemRestElement');\r\n } else {\r\n this._scheduleSync('removeMultiItemElement', item);\r\n }\r\n\r\n if (!hasGroupSync)\r\n this._scheduleSync();\r\n }\r\n }\r\n\r\n this._trigger(checked ? 'addsel' : 'removesel', { value: value, item: item });\r\n }\r\n break;\r\n\r\n case 'groupcheck': {\r\n if (!p.multi) return;\r\n\r\n if (event.affectedItems) {\r\n this._scheduleSync(p.sortSelectedItems ? 'full' : null);\r\n }\r\n }\r\n break;\r\n\r\n case 'select': {\r\n if (p.multi) return;\r\n\r\n const item = event.item;\r\n const value = event.value;\r\n\r\n let selectEvt = { value: value, item: item, cancel: false };\r\n this._trigger('select:before', selectEvt);\r\n\r\n if (selectEvt.cancel)\r\n return;\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this._setSelectedItems([item]);\r\n this._trigger('select', { value: value, item: item });\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this.closeList();\r\n\r\n if (p.blurOnSingleSelection === 'touch' && hasTouchCapability ||\r\n p.blurOnSingleSelection !== 'touch' && p.blurOnSingleSelection) {\r\n p.input && p.input.blur();\r\n }\r\n }\r\n break;\r\n }\r\n },\r\n });\r\n\r\n this._registerDropdownEvents();\r\n }\r\n\r\n _unregisterDropdownEvents() {\r\n const p = this._p;\r\n\r\n p.sink.remove(null, '.dropdown');\r\n }\r\n\r\n _registerDropdownEvents() {\r\n const p = this._p;\r\n\r\n this._unregisterDropdownEvents();\r\n\r\n const dropList = p.dropList;\r\n if (!dropList) return;\r\n\r\n let avoidToggleFromClick = false,\r\n currentTouchId = null,\r\n suppressKeyPress = false,\r\n suppressKeyPressRepeat = false;\r\n\r\n const keyEventsTarget = p.multi || p.searchable ? p.input : p.el;\r\n\r\n p.sink\r\n .add(keyEventsTarget, 'keydown.dropdown', evt => {\r\n if ((/**@type HTMLInputElement*/evt.currentTarget).readOnly)\r\n return;\r\n\r\n suppressKeyPress = false;\r\n suppressKeyPressRepeat = false;\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n suppressKeyPress = true;\r\n evt.preventDefault();\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n if (dropList.isVisible())\r\n dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n if (dropList.isVisible())\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n if (dropList.isVisible()) {\r\n dropList.previous(evt);\r\n } else {\r\n this._movePrev();\r\n }\r\n break;\r\n case VALUE_DOWN:\r\n if (dropList.isVisible()) {\r\n dropList.next(evt);\r\n } else {\r\n this._moveNext();\r\n }\r\n break;\r\n\r\n }\r\n break;\r\n\r\n case VALUE_SPACE:\r\n if (p.lastKeyAllowsSpaceToggle) {\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n suppressKeyPress = true;\r\n suppressKeyPressRepeat = true;\r\n if (p.multi)\r\n dropList.toggleFocusedItem(evt);\r\n else dropList.triggerItemSelection(evt);\r\n evt.preventDefault();\r\n }\r\n }\r\n break;\r\n\r\n case VALUE_ENTER:\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n suppressKeyPress = true;\r\n suppressKeyPressRepeat = true;\r\n evt.preventDefault();\r\n dropList.triggerItemSelection(evt);\r\n }\r\n\r\n break;\r\n\r\n case VALUE_TAB:\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n dropList.triggerItemSelection(evt);\r\n }\r\n break;\r\n\r\n case VALUE_ESCAPE:\r\n if (dropList.isVisible()) {\r\n dropList.hide(evt);\r\n evt.preventDefault();\r\n }\r\n break;\r\n\r\n default:\r\n suppressKeyPressRepeat = true;\r\n dropList._keydownFreeType(evt);\r\n break;\r\n }\r\n\r\n p.lastKeyAllowsSpaceToggle = evt.key === VALUE_UP ||\r\n evt.key === VALUE_DOWN ||\r\n evt.key === VALUE_PAGE_UP ||\r\n evt.key === VALUE_PAGE_DOWN ||\r\n (evt.key === VALUE_SPACE && !!p.lastKeyAllowsSpaceToggle);\r\n })\r\n .add(keyEventsTarget, 'keypress.dropdown', evt => {\r\n if (suppressKeyPress) {\r\n suppressKeyPress = false;\r\n evt.preventDefault();\r\n return;\r\n }\r\n\r\n if (suppressKeyPressRepeat)\r\n return;\r\n\r\n if (evt.key === VALUE_ENTER ||\r\n (\r\n evt.key === VALUE_SPACE &&\r\n p.lastKeyAllowsSpaceToggle &&\r\n !p.multi &&\r\n !dropList.hasFocusedItem()\r\n )\r\n ) {\r\n this.toggleList();\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n return;\r\n }\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n evt.preventDefault();\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n if (dropList.isVisible())\r\n dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n if (dropList.isVisible())\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n if (dropList.isVisible()) {\r\n dropList.previous(evt);\r\n } else {\r\n this._movePrev();\r\n }\r\n break;\r\n case VALUE_DOWN:\r\n if (dropList.isVisible()) {\r\n dropList.next(evt);\r\n } else {\r\n this._moveNext();\r\n }\r\n break;\r\n }\r\n break;\r\n }\r\n });\r\n\r\n if (p.input) {\r\n p.sink\r\n .add(p.input, 'input.dropdown', () => {\r\n p.filterTerm = p.input.value.trim();\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n this._trigger('search', { value: p.input.value });\r\n\r\n p.throttledUpdateListItems();\r\n })\r\n .add(p.input, 'click.dropdown', () => {\r\n if (!p.multi && p.searchable) {\r\n this.openList();\r\n }\r\n })\r\n .add(p.input, 'focus.dropdown', () => {\r\n this._trigger('search:focus');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n avoidToggleFromClick = false;\r\n this.openList();\r\n\r\n avoidToggleFromClick = true;\r\n setTimeout(() => { avoidToggleFromClick = false; }, 10);\r\n })\r\n .add(p.input, 'blur.dropdown', () => {\r\n this._trigger('search:blur');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n this.closeList();\r\n });\r\n }\r\n\r\n p.sink\r\n .add(p.el, 'mousedown.dropdown', () => {\r\n if (!p.multi && !p.searchable && !avoidToggleFromClick) {\r\n this.toggleList();\r\n }\r\n avoidToggleFromClick = false;\r\n })\r\n .add(p.el, 'touchstart.dropdown', evt => {\r\n if (currentTouchId) return;\r\n currentTouchId = evt.changedTouches[0].identifier;\r\n\r\n if (this.isDisabled())\r\n return;\r\n\r\n if (closestUntil(evt.target, `.${p.baseClassName}__item,.${p.baseClassName}__clear`, p.el))\r\n return;\r\n\r\n let onTouchCancel = () => {\r\n currentTouchId = null;\r\n p.sink.remove(p.el, '.dropdown_touchextra');\r\n };\r\n\r\n (p.input || p.el).focus();\r\n\r\n p.sink\r\n .add(p.el, 'touchend.dropdown_touchextra', (tevt) => {\r\n let touch = Array.prototype.find.call(evt.changedTouches,\r\n touch => touch.identifier === currentTouchId);\r\n if (!touch) return onTouchCancel();\r\n\r\n tevt.preventDefault();\r\n onTouchCancel();\r\n })\r\n .add(p.el, 'touchmove.dropdown_touchextra', (tevt) => {\r\n tevt.preventDefault();\r\n })\r\n .add(p.el, 'touchcancel.dropdown_touchextra', onTouchCancel);\r\n });\r\n }\r\n\r\n _movePrev() {\r\n const p = this._p;\r\n\r\n if (this.isMultiEnabled()) return;\r\n\r\n let selectedItems = this.getSelectedItems();\r\n let items = p.filteredItems ?? p.items;\r\n if ((items.length + (p.clearable ? 1 : 0)) > 1) {\r\n let nextIndex = selectedItems.length > 0 ? items.indexOf(selectedItems[0]) - 1 : (selectedItems.length - 1);\r\n if (nextIndex === -1 && !p.clearable)\r\n nextIndex = items.length - 1;\r\n this.setSelectedItems(nextIndex === -1 ? [] : [items[nextIndex]]);\r\n }\r\n }\r\n\r\n _moveNext() {\r\n const p = this._p;\r\n\r\n if (this.isMultiEnabled()) return;\r\n\r\n let selectedItems = this.getSelectedItems();\r\n let items = p.filteredItems ?? p.items;\r\n if ((items.length + (p.clearable ? 1 : 0)) > 1) {\r\n let nextIndex = selectedItems.length > 0 ? items.indexOf(selectedItems[0]) + 1 : 0;\r\n if (nextIndex === selectedItems.length)\r\n nextIndex = p.clearable ? -1 : 0;\r\n this.setSelectedItems(nextIndex === -1 ? [] : [items[nextIndex]]);\r\n }\r\n }\r\n\r\n /** @private */\r\n _updateListItems() {\r\n const p = this._p;\r\n\r\n const dropList = p.dropList;\r\n if (!dropList || !p.dropListVisible)\r\n return;\r\n\r\n // For every search change, filteredItems is cleared.\r\n // If it's non-null here, then it means we have an extra call to _updateListItems, and not need to refilter.\r\n if (!p.filteredItems && (p.filterTerm || (p.filterOnEmptyTerm && p.filterFn))) {\r\n this._refilterItems();\r\n }\r\n\r\n if (p.itemsChanged || p.selectionChanged) {\r\n p.dropList._lastSerializedBox = null;\r\n }\r\n\r\n if (p.itemsChanged) {\r\n let items = p.filteredItems || p.items;\r\n if (p.sortListItems || (p.sortListCheckedFirst && p.multi)) {\r\n items = this._sortItems(items,\r\n p.sortListItems,\r\n p.sortListCheckedFirst && p.multi,\r\n p.splitListCheckedGroups);\r\n }\r\n dropList.removeAllItems();\r\n\r\n if (items.length === 0 && p.noResultsText) {\r\n items = [{\r\n [p.labelProp]: p.noResultsText,\r\n [p.valueProp]: NoResultsItemSymbol,\r\n _nointeraction: true,\r\n _nocheck: true,\r\n }];\r\n }\r\n\r\n dropList.addItems(items);\r\n p.itemsChanged = false;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = false;\r\n }\r\n\r\n let hasRefocusedItem = false;\r\n\r\n if (p.selectionChanged) {\r\n if (p.multi) {\r\n p.dropList.setCheckedValues(p.selectedValues);\r\n } else {\r\n const singleItemIndex = p.dropList.itemIndexByValue(this.getValue());\r\n\r\n p.dropList\r\n .setFocusedItemAtIndex(singleItemIndex)\r\n .setSingleSelectedItemAtIndex(singleItemIndex);\r\n\r\n hasRefocusedItem = p.dropList.hasFocusedItem();\r\n }\r\n p.selectionChanged = false;\r\n }\r\n\r\n this._repositionDropList();\r\n\r\n if (hasRefocusedItem) {\r\n p.dropList.setFocusedItemAtIndex(p.dropList.getFocusedItemIndex());\r\n }\r\n }\r\n\r\n _refilterItems() {\r\n const p = this._p;\r\n\r\n const term = p.filterTerm;\r\n\r\n if (term || (p.filterOnEmptyTerm && p.filterFn)) {\r\n let fn = p.filterFn;\r\n\r\n let filteredItems;\r\n\r\n if (typeof fn === 'function') {\r\n filteredItems = p.filterFn(p.items, term);\r\n }\r\n\r\n // If there was no filter function, or it gave up on filtering.\r\n if (!Array.isArray(filteredItems)) {\r\n if (term) {\r\n const matcher = new RegExp(escapeRegex(term), 'i');\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n\r\n filteredItems = p.items.filter(x => {\r\n if (x._group) return true;\r\n return matcher.test(x[labelProp] || x[multiItemLabelProp]);\r\n });\r\n } else {\r\n filteredItems = null;\r\n }\r\n }\r\n\r\n p.filteredItems = filteredItems;\r\n\r\n if (filteredItems) {\r\n // Clean up groups without children\r\n\r\n let lastGroup = -1;\r\n let len = filteredItems.length;\r\n\r\n for (let i = 0; i < len; i++) {\r\n let item = filteredItems[i];\r\n\r\n if (item._group) {\r\n if (lastGroup !== -1 && lastGroup === i - 1) {\r\n // It was an empty group\r\n filteredItems.splice(lastGroup, 1);\r\n i--;\r\n len--;\r\n }\r\n\r\n lastGroup = i;\r\n }\r\n }\r\n\r\n if (lastGroup !== -1) {\r\n if (lastGroup === len - 1) {\r\n // It was an empty group\r\n filteredItems.splice(lastGroup, 1);\r\n }\r\n }\r\n }\r\n } else {\r\n p.filteredItems = null;\r\n }\r\n\r\n this._trigger('itemschanged', { term: term, mutated: false, count: this.getFilteredItemCount() });\r\n\r\n p.itemsChanged = true;\r\n }\r\n\r\n _setSelectedItems(items) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (p.multi) {\r\n p.selectedItems = items.filter(x => x[valueProp] !== undefined);\r\n p.selectedValues = p.selectedItems.map(x => x[valueProp]);\r\n } else {\r\n p.selectedItems = items.slice(0, 1);\r\n p.selectedValues = items.slice(0, 1).map(x => x[valueProp]);\r\n }\r\n\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._updateListItems();\r\n this._scheduleSync('full');\r\n }\r\n\r\n _scheduleSync(mode, data) {\r\n const p = this._p;\r\n\r\n if (!p.syncQueue)\r\n p.syncQueue = [];\r\n\r\n if (mode === 'full')\r\n p.syncQueue.length = 0;\r\n\r\n if (p.syncQueue.length === 0 || p.syncQueue[0].mode !== 'full')\r\n p.syncQueue.push({ mode: mode, data: data });\r\n\r\n if (p.syncTimeout)\r\n return;\r\n\r\n p.syncTimeout = setTimeout(() => {\r\n delete p.syncTimeout;\r\n let queue = p.syncQueue;\r\n delete p.syncQueue;\r\n this._performSync(queue);\r\n });\r\n }\r\n\r\n _performSync(queue) {\r\n const p = this._p;\r\n\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n for (let op of queue) {\r\n switch (op.mode) {\r\n case 'full':\r\n this._syncFull(true);\r\n break;\r\n\r\n case 'singleItem':\r\n this._syncSingleItem();\r\n break;\r\n\r\n case 'removeMultiItemElement': {\r\n if (p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n const valueProp = p.valueProp;\r\n const item = op.data,\r\n value = item[valueProp];\r\n\r\n let idx = p.multiItemEls.findIndex(x => x[ItemSymbol][valueProp] === value);\r\n if (idx !== -1) {\r\n this._removeMultiItemElementByIndex(idx);\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case 'addMultiItemElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n this._addMultiItemElement(op.data);\r\n }\r\n }\r\n break;\r\n\r\n case 'addOrUpdateMultiItemRestElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n this._addMultiItemRestElement();\r\n }\r\n }\r\n break;\r\n\r\n case 'removeMultiItemRestElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n let itemEl = p.multiItemEls[p.multiItemEls.length - 1];\r\n if (itemEl?.[ItemSymbol]?.[p.valueProp] === RestMultiItemsSymbol) {\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case 'resize_input': {\r\n this._resizeInput();\r\n }\r\n break;\r\n\r\n default:\r\n this._syncFull(false);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n _cleanupSingleWrapper() {\r\n const p = this._p;\r\n\r\n if (!p.singleWrapper) return;\r\n\r\n if (p.unrenderSingleItem && p.singleWrapper.childNodes.length > 0) {\r\n try {\r\n p.unrenderSingleItem(p.singleWrapper[ItemSymbol], p.singleWrapper);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n }\r\n\r\n delete p.singleWrapper[ItemSymbol];\r\n p.singleWrapper.innerHTML = '';\r\n }\r\n\r\n /**\r\n * @param {number} index\r\n * @private\r\n */\r\n _removeMultiItemElementByIndex(index) {\r\n const p = this._p, multiItemEls = p.multiItemEls;\r\n\r\n if (multiItemEls.length > index) {\r\n const itemEl = multiItemEls[index];\r\n const item = itemEl[ItemSymbol];\r\n\r\n let unrender = item?.[p.valueProp] === RestMultiItemsSymbol\r\n ? p.unrenderRestMultiItem ?? p.unrenderMultiItem\r\n : p.unrenderMultiItem;\r\n\r\n if (unrender && itemEl.childNodes.length > 0) {\r\n try {\r\n unrender(item, itemEl);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n }\r\n remove(itemEl);\r\n\r\n // fastpath\r\n if (index === multiItemEls.length - 1) multiItemEls.pop();\r\n else multiItemEls.splice(index, 1);\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @private\r\n */\r\n _renderSingleItemContent(item) {\r\n const p = this._p;\r\n\r\n if (!p.renderSingleItem || p.renderSingleItem(item, p.singleWrapper) === false) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n\r\n let label = item[multiItemLabelProp] || item[labelProp];\r\n if (label === null || label === undefined)\r\n label = '';\r\n\r\n p.singleWrapper.appendChild(document.createTextNode(label));\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @param {Element} itemEl\r\n * @private\r\n */\r\n _renderMultiItemContent(item, itemEl) {\r\n const p = this._p;\r\n\r\n let render = item[p.valueProp] === RestMultiItemsSymbol\r\n ? p.renderRestMultiItem ?? p.renderMultiItem\r\n : p.renderMultiItem;\r\n\r\n if (!render || render(item, itemEl) === false) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n const label = item[multiItemLabelProp] || item[labelProp];\r\n itemEl.appendChild(createElement('span', {\r\n textContent: label,\r\n }));\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @private\r\n */\r\n _addMultiItemElement(item) {\r\n const p = this._p;\r\n const itemEl = this._renderMultiItem(item);\r\n if (!itemEl) return;\r\n\r\n before(p.inputWrapper, itemEl);\r\n p.multiItemEls.push(itemEl);\r\n }\r\n\r\n /** @private */\r\n _addMultiItemRestElement() {\r\n const p = this._p;\r\n\r\n let items = p.selectedItems.slice(0);\r\n let count = items.filter(x => !x._group).length - p.maxMultiItems;\r\n let label = p.multiItemsRestLabelProvider\r\n ? p.multiItemsRestLabelProvider(count, items)\r\n : `+ ${count}`;\r\n\r\n this._addMultiItemElement({\r\n items: items,\r\n [p.valueProp]: RestMultiItemsSymbol,\r\n [p.labelProp]: label,\r\n });\r\n }\r\n\r\n /** @private */\r\n _syncClearButton() {\r\n const p = this._p;\r\n\r\n // Set clear button\r\n if (p.selectedItems.length > 0 && p.clearable && p.showSelection) {\r\n if (!p.clearButtonWrapper) {\r\n p.clearButtonWrapper = createElement(\r\n p.multi ? 'li' : 'span',\r\n { class: `${p.baseClassName}__clear` },\r\n p.clearButton = createElement('button'));\r\n if (p.multi)\r\n append(p.list, p.clearButtonWrapper);\r\n else append(p.el, p.clearButtonWrapper);\r\n p.el.classList.add(`${p.baseClassName}__has_clear`);\r\n\r\n p.sink.add(p.clearButton, 'click', () => {\r\n if (this.isDisabled()) return;\r\n this.clear();\r\n });\r\n }\r\n } else {\r\n if (p.clearButtonWrapper) {\r\n p.sink.remove(p.clearButton, 'click');\r\n\r\n remove(p.clearButtonWrapper);\r\n delete p.clearButtonWrapper;\r\n delete p.clearButton;\r\n p.el.classList.remove(`${p.baseClassName}__has_clear`);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n _syncPlaceholder() {\r\n const p = this._p;\r\n\r\n let placeholder = '';\r\n\r\n if (p.multi && !p.showSelection) {\r\n if (typeof p.multiPlaceholderFormatter === 'function') {\r\n placeholder = p.multiPlaceholderFormatter(p.selectedItems);\r\n } else {\r\n placeholder = defaultMultiPlaceholderFormatter(p.selectedItems, p.labelProp);\r\n }\r\n } else if (p.selectedItems.length === 0 || !p.showSelection) {\r\n placeholder = p.placeholder == null ? '' : (p.placeholder + '');\r\n }\r\n\r\n // Set input placeholder\r\n p.input.setAttribute('placeholder', placeholder);\r\n }\r\n\r\n /** @private */\r\n _syncSingleItem() {\r\n const p = this._p;\r\n\r\n if (p.singleWrapper)\r\n this._cleanupSingleWrapper();\r\n\r\n const items = p.selectedItems;\r\n\r\n if (items.length > 0) {\r\n this._renderSingleItemContent(items[0]);\r\n p.singleWrapper[ItemSymbol] = items[0];\r\n }\r\n }\r\n\r\n /**\r\n * Syncs render state, selected items, and position\r\n * @param {boolean=false} fullItemsRender Should re-render all items?\r\n * @returns {SelectBox}\r\n */\r\n _syncFull(fullItemsRender) {\r\n const p = this._p;\r\n\r\n this._renderBase();\r\n this._syncClearButton();\r\n this._syncPlaceholder();\r\n\r\n fullItemsRender = p.multi && p.showSelection && (fullItemsRender || p.selectedItems.length !== p.multiItemEls.length);\r\n\r\n if (fullItemsRender || !p.showSelection || !p.multi) {\r\n // Remove all item elements\r\n while (p.multiItemEls.length > 0) {\r\n // use fast path by removing in reverse\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n\r\n if (p.multi) {\r\n if (fullItemsRender) {\r\n const items = p.selectedItems;\r\n\r\n // Sort these\r\n if (p.sortSelectedItems) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp,\r\n valueProp = p.valueProp,\r\n stickyValues = p.stickyValues;\r\n\r\n const comparator = p.sortItemComparator || ((a, b) => {\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n const aLabel = a[multiItemLabelProp] || a[labelProp];\r\n const bLabel = b[multiItemLabelProp] || b[labelProp];\r\n return aLabel < bLabel ? -1 : (aLabel > bLabel ? 1 : 0);\r\n });\r\n\r\n items.sort(comparator);\r\n\r\n p.selectedValues = items.map(x => x[valueProp]);\r\n }\r\n\r\n let actualItemCount = 0;\r\n let max = p.maxMultiItems;\r\n let addRestItem = false;\r\n\r\n // Add item elements\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i]._group) continue;\r\n\r\n if (max != null && actualItemCount === max) {\r\n addRestItem = true;\r\n break;\r\n }\r\n\r\n actualItemCount++;\r\n this._addMultiItemElement(items[i]);\r\n }\r\n\r\n if (addRestItem) {\r\n this._addMultiItemRestElement();\r\n }\r\n }\r\n } else if (!p.multi) {\r\n this._syncSingleItem();\r\n }\r\n\r\n if (getRootNode(p.el) !== document)\r\n return this;\r\n\r\n toggleClass(p.el, `${p.baseClassName}__empty_selection`, p.selectedValues.length === 0);\r\n toggleClass(p.el, `${p.baseClassName}__has_selection`, p.selectedValues.length > 0);\r\n\r\n if (p.searchable || p.multi) {\r\n if (p.input) p.input.readOnly = false;\r\n p.el.classList.add(`${p.baseClassName}__searchable`);\r\n } else {\r\n if (p.input) p.input.readOnly = true;\r\n p.el.classList.remove(`${p.baseClassName}__searchable`);\r\n }\r\n\r\n // Update input size\r\n this._resizeInput()._updateListItems();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} event\r\n * @param {*} [data]\r\n * @private\r\n */\r\n _trigger(event, data) {\r\n const p = this._p;\r\n if (p.on)\r\n p.on(event, ...(data === undefined ? [] : [data]));\r\n p.mitt.emit(event, data);\r\n }\r\n\r\n /**\r\n * Render a multi item\r\n * @param {Object} item\r\n * @returns {Element|null}\r\n * @private\r\n */\r\n _renderMultiItem(item) {\r\n const p = this._p;\r\n\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n const label = item[multiItemLabelProp] ?? item[labelProp];\r\n if (label === false)\r\n return null;\r\n\r\n const itemEl = createElement('li',\r\n {\r\n class: `${p.baseClassName}__item`,\r\n tabindex: '0',\r\n title: label,\r\n },\r\n [\r\n createElement('span', {\r\n class: `${p.baseClassName}__item_remove`,\r\n role: 'presentation',\r\n }),\r\n ],\r\n );\r\n\r\n this._renderMultiItemContent(item, itemEl);\r\n\r\n itemEl[ItemSymbol] = item;\r\n\r\n return itemEl;\r\n }\r\n\r\n /**\r\n * Removes a specific multi item by user event\r\n * @param {Element} itemEl\r\n * @param {Event} originatingEvent\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _removeMultiItemFromEvent(itemEl, originatingEvent) {\r\n const p = this._p;\r\n\r\n let nextFocus;\r\n if (/key/.test(originatingEvent.type)) {\r\n const kEvent = /**@type KeyboardEvent*/originatingEvent;\r\n if (kEvent.key === VALUE_DELETE) { // Delete\r\n nextFocus = next(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n } else if (kEvent.key === VALUE_BACK_SPACE) { // Backspace\r\n nextFocus = prev(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n }\r\n } else if (/click|mouse|touch/.test(originatingEvent.type)) {\r\n nextFocus = next(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n }\r\n\r\n const item = itemEl[ItemSymbol], value = item[p.valueProp];\r\n\r\n if (item !== undefined) {\r\n if (value === RestMultiItemsSymbol) {\r\n let items = p.selectedItems.filter(x => !x._group).slice(p.maxMultiItems);\r\n let itemsToRemove = [];\r\n\r\n for (let item of items) {\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (!removeselEvt.cancel)\r\n itemsToRemove.push(item);\r\n }\r\n\r\n if (itemsToRemove.length > 0) {\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n\r\n for (let item of itemsToRemove) {\r\n // sync selection\r\n let idx = p.selectedItems.indexOf(item);\r\n if (idx === -1)\r\n idx = p.selectedValues.indexOf(value[p.valueProp]);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n }\r\n }\r\n\r\n if (items.length > itemsToRemove.length) {\r\n this._addMultiItemRestElement();\r\n }\r\n\r\n if (itemsToRemove.length > 0) {\r\n this._scheduleSync();\r\n }\r\n } else {\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (removeselEvt.cancel)\r\n return this;\r\n\r\n this._removeMultiItem(item);\r\n\r\n // trigger event\r\n this._trigger('removesel', { value: value, item: item });\r\n }\r\n }\r\n\r\n if (!nextFocus) {\r\n nextFocus = p.el.querySelector(`.${p.baseClassName}__item, .${p.baseClassName}__search_field`);\r\n }\r\n\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n\r\n nextFocus && nextFocus.focus();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @param {boolean} [populate]\r\n * @private\r\n */\r\n _removeMultiItem(item, populate = false) {\r\n const p = this._p;\r\n const valueProp = p.valueProp,\r\n labelProp = p.labelProp;\r\n const value = item[valueProp];\r\n\r\n // sync selection\r\n let idx = p.selectedItems.indexOf(item);\r\n if (idx === -1)\r\n idx = p.selectedValues.indexOf(value);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n\r\n // sync multi item element\r\n idx = p.multiItemEls.findIndex(x => x[ItemSymbol] === item);\r\n if (idx === -1)\r\n idx = p.multiItemEls.findIndex(x => x[ItemSymbol][valueProp] === value);\r\n if (idx !== -1) {\r\n this._removeMultiItemElementByIndex(idx);\r\n }\r\n\r\n if (populate) {\r\n this._setInputText(item[p.multiItemLabelProp] || item[labelProp]);\r\n\r\n p.input.focus();\r\n\r\n // Go to end of input\r\n p.input.selectionStart = p.input.selectionEnd = p.input.value.length;\r\n }\r\n\r\n // sync\r\n this._scheduleSync();\r\n }\r\n\r\n /**\r\n * @param {*} value\r\n * @private\r\n */\r\n _setInputText(value) {\r\n const p = this._p;\r\n\r\n p.input.value = value == null ? '' : String(value);\r\n\r\n p.filterTerm = '';\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n }\r\n\r\n /**\r\n * Update input size to current state\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _resizeInput() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el.parentNode || !document.body.contains(el))\r\n return this;\r\n\r\n const input = p.input, backBufferEl = p.inputBackBuffer;\r\n\r\n let inputValue = input.value || input.placeholder;\r\n toggleClass(el, `${p.baseClassName}__has_input`, !!inputValue);\r\n toggleClass(el, `${p.baseClassName}__empty_input`, !inputValue);\r\n\r\n let hasResize = false;\r\n\r\n if (p.multi && p.multiItemEls.length === 0 && p.showSelection) {\r\n // Full width of list wrapper\r\n input.style.width = ''; // reset first\r\n\r\n let beforeWidth = 0, afterWidth = 0;\r\n\r\n let beforeStyle = getComputedStyle(p.list || el, '::before');\r\n if (beforeStyle.content &&\r\n beforeStyle.content !== 'none' &&\r\n beforeStyle.position !== 'absolute' &&\r\n beforeStyle.float !== 'none') {\r\n beforeWidth = getPseudoElementWidth(p.list || el, '::before', true, true, true);\r\n }\r\n\r\n let afterStyle = getComputedStyle(p.list || el, '::after');\r\n if (afterStyle.content &&\r\n afterStyle.content !== 'none' &&\r\n afterStyle.position !== 'absolute' &&\r\n afterStyle.float !== 'none') {\r\n afterWidth = getPseudoElementWidth(p.list || el, '::after', true, true, true);\r\n }\r\n\r\n let contentWidth = getElementWidth(p.list || el); // calculate width\r\n contentWidth -= beforeWidth + afterWidth;\r\n\r\n input.style.width = `${contentWidth}px`;\r\n\r\n hasResize = true; // We may want to track the resize here better to avoid unnecessary event\r\n } else {\r\n // Introduce backbuffer to DOM\r\n setCssProps(backBufferEl, getCssProps(input, inputBackbufferCssProps));\r\n backBufferEl.textContent = inputValue;\r\n el.appendChild(backBufferEl);\r\n\r\n // Measure these\r\n const computedStyle = getComputedStyle(input);\r\n const paddingTotal = (parseFloat(computedStyle.paddingLeft) || 0) + (parseFloat(computedStyle.paddingRight) || 0);\r\n const minWidth = (parseFloat(computedStyle['font-size']) || 0) * 0.75 + paddingTotal;\r\n const backBufferWidth = getElementWidth(backBufferEl, true, true);\r\n const currentWidth = getElementWidth(input, true, true);\r\n let newWidth = Math.max(backBufferWidth, minWidth);\r\n\r\n // Compare\r\n if (newWidth !== currentWidth) {\r\n // Update if needed\r\n setElementWidth(input, newWidth, true, true);\r\n\r\n let bordersWidth = (parseFloat(computedStyle.borderLeftWidth) || 0) + (parseFloat(computedStyle.borderRightWidth) || 0);\r\n let scrollWidth = input.scrollWidth + bordersWidth;\r\n\r\n if (scrollWidth > newWidth) {\r\n // consider scrollWidth delta\r\n let delta = scrollWidth - newWidth;\r\n input.style.width = `${parseFloat(input.style.width) + delta}px`;\r\n\r\n newWidth += delta;\r\n }\r\n\r\n // sync the single value wrapper.\r\n // it is meant as a preview or spacer for single selection value, so its appropriate to sync it with this width\r\n if (p.singleWrapper) {\r\n p.singleWrapper.style.width = '';\r\n\r\n if (inputValue) {\r\n let width = newWidth - paddingTotal - bordersWidth;\r\n if (getElementWidth(p.singleWrapper, false, false) < width) {\r\n setElementWidth(p.singleWrapper, width, false, false);\r\n }\r\n }\r\n }\r\n\r\n hasResize = true;\r\n }\r\n\r\n // Remove backbuffer from DOM\r\n remove(backBufferEl);\r\n }\r\n\r\n if (hasResize)\r\n this._trigger('input:resize');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Update autocomplete position if needed\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _repositionDropList() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!p.dropList || !p.dropListVisible || !p.dropList.isVisible())\r\n return this;\r\n\r\n const box = el.getBoundingClientRect();\r\n const serialized = box.left + ',' + box.top + ',' + box.right + ',' + box.bottom;\r\n\r\n if (p.dropList._lastSerializedBox !== serialized) {\r\n p.dropList.relayout(this._getDropListPositionOptions());\r\n p.dropList._lastSerializedBox = serialized;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {KeyboardEvent} event\r\n * @private\r\n */\r\n _handleInputKeydown(event) {\r\n const p = this._p;\r\n\r\n const target = (/**@type HTMLInputElement*/event.target);\r\n\r\n if (event.key === VALUE_BACK_SPACE && event.ctrlKey && target.value.length === 0) {\r\n this.clear();\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_BACK_SPACE && target.value.length === 0) {\r\n const itemEl = p.multiItemEls[p.multiItemEls.length - 1];\r\n if (!itemEl || itemEl[ItemSymbol].value === undefined)\r\n return;\r\n\r\n const item = itemEl[ItemSymbol], value = item[p.valueProp];\r\n\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (removeselEvt.cancel)\r\n return;\r\n\r\n this._removeMultiItem(item, true);\r\n\r\n // trigger event\r\n this._trigger('removesel', { value: value, item: item });\r\n\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * @param {KeyboardEvent} event\r\n * @private\r\n */\r\n _handleMultiKeydown(event) {\r\n const p = this._p;\r\n\r\n if (p.disabled) return;\r\n\r\n const isRtl = getComputedStyle(p.el).direction === 'rtl';\r\n\r\n let nextFocus;\r\n\r\n if (event.key === (isRtl ? VALUE_LEFT : VALUE_RIGHT)) { // Next arrow\r\n nextFocus = next(/**@type Element*/event.target, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n nextFocus && nextFocus.focus();\r\n\r\n event.preventDefault();\r\n } else if (event.key === (isRtl ? VALUE_RIGHT : VALUE_LEFT)) { // Prev arrow\r\n nextFocus = prev(/**@type Element*/event.target, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n nextFocus && nextFocus.focus();\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_BACK_SPACE && event.ctrlKey) { // Ctrl + Backspace\r\n const multiItemEls = [];\r\n let itemEl = event.target;\r\n while (itemEl) {\r\n multiItemEls.push(itemEl);\r\n itemEl = prev(/**@type Element*/itemEl, `.${p.baseClassName}__item`);\r\n }\r\n\r\n while (multiItemEls.length) {\r\n this._removeMultiItemFromEvent(multiItemEls.shift(), event);\r\n }\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_DELETE || event.key === VALUE_BACK_SPACE) { // Delete / Backspace\r\n this._removeMultiItemFromEvent(closestUntil(event.target, `.${p.baseClassName}__item`, p.el), event);\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * @returns {DropList.PositionOptions}\r\n * @private\r\n */\r\n _getDropListPositionOptions() {\r\n const p = this._p;\r\n\r\n return {\r\n target: /**@type Element*/p.el,\r\n offset: { x: 0, y: 0 },\r\n anchor: { x: 'start', y: 'bottom' },\r\n position: { x: 'start', y: 'top' },\r\n updateWidth: true,\r\n };\r\n }\r\n\r\n /** @private */\r\n _startTrackingPresence() {\r\n const p = this._p;\r\n\r\n this._stopTrackingPresence();\r\n\r\n p.presenceInt = setInterval(function () {\r\n if (getRootNode(p.el) !== document)\r\n this.hide();\r\n }, 200);\r\n }\r\n\r\n /** @private */\r\n _stopTrackingPresence() {\r\n const p = this._p;\r\n\r\n if (p.presenceInt) {\r\n clearInterval(p.presenceInt);\r\n p.presenceInt = null;\r\n }\r\n }\r\n\r\n /**\r\n * Handles sorting, and putting checked items first (according to selectedValues, not item.checked)\r\n * @private\r\n * @param {DropList.ItemBase[]} items\r\n * @param {boolean=false} sort\r\n * @param {boolean=false} sortCheckedFirst\r\n * @param {boolean=false} splitCheckedGroups\r\n * @returns {DropList.ItemBase[]}\r\n */\r\n _sortItems(items, sort, sortCheckedFirst, splitCheckedGroups) {\r\n const p = this._p;\r\n\r\n if (!sort && !sortCheckedFirst)\r\n return items; // Nothing to do\r\n\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp,\r\n valueProp = p.valueProp,\r\n stickyValues = p.stickyValues,\r\n comparator = p.sortItemComparator || ((a, b) => {\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n const aLabel = a[labelProp] || a[multiItemLabelProp];\r\n const bLabel = b[labelProp] || b[multiItemLabelProp];\r\n\r\n if (aLabel < bLabel) return -1;\r\n if (aLabel > bLabel) return 1;\r\n\r\n return 0;\r\n });\r\n\r\n let group = [], stickyGroup = null;\r\n let groups = [group];\r\n const selectedValuesSet = new Set(p.selectedValues);\r\n let item, i, len;\r\n\r\n // Split to groups\r\n for (i = 0, len = items.length; i < len; i++) {\r\n item = items[i];\r\n if (item._group && group.length) {\r\n group = [];\r\n groups.push(group);\r\n }\r\n group.push(item);\r\n }\r\n\r\n // Leftover\r\n if (!group.length) {\r\n groups.length = 0;\r\n }\r\n\r\n // Non-grouped sticky should be first\r\n if (stickyValues && items.length > 0 && !items[0]._group) {\r\n stickyGroup = groups[0].filter(x => stickyValues.has(x[valueProp]));\r\n if (stickyGroup.length > 0) {\r\n groups[0] = groups[0].filter(x => !stickyValues.has(x[valueProp]));\r\n }\r\n }\r\n\r\n if (sort) {\r\n // Sort the groups\r\n groups.sort((a, b) => {\r\n a = a[0];\r\n b = b[0];\r\n\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n // A \"group\" without a group item will come first\r\n if (!a._group && b._group) return -1;\r\n if (a._group && !b._group) return 1;\r\n\r\n return comparator(a, b);\r\n });\r\n }\r\n\r\n if (stickyGroup && stickyGroup.length > 0) {\r\n groups.unshift(stickyGroup);\r\n }\r\n\r\n // Now we have an array of groups, possibly sorted.\r\n // Each group is an array that begins with the group item (group name/id).\r\n // A group could possible start with a normal item, if it's a \"default group\", which had no group item.\r\n\r\n const checkedGroups = [], uncheckedGroups = [];\r\n\r\n // Iterate groups\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n // Sort each group\r\n group.sort((a, b) => {\r\n\r\n // Grouping items come first\r\n if (a._group && !b._group) return -1;\r\n if (!a._group && b._group) return 1;\r\n\r\n if (sortCheckedFirst) {\r\n const aChecked = selectedValuesSet.has(a[valueProp]);\r\n const bChecked = selectedValuesSet.has(b[valueProp]);\r\n\r\n if (aChecked && !bChecked) return -1;\r\n if (!aChecked && bChecked) return 1;\r\n }\r\n\r\n if (sort) {\r\n return comparator(a, b);\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n uncheckedGroups.push(group);\r\n }\r\n\r\n if (sortCheckedFirst && splitCheckedGroups) {\r\n\r\n let virtualGroup;\r\n\r\n // Iterate groups\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n if (group === stickyGroup) {\r\n checkedGroups.push(stickyGroup);\r\n let sgi = uncheckedGroups.indexOf(stickyGroup);\r\n if (sgi !== -1) {\r\n uncheckedGroups.splice(sgi, 1);\r\n }\r\n continue;\r\n }\r\n\r\n virtualGroup = null;\r\n\r\n for (let gi = 0, gilen = group.length; gi < gilen; gi++) {\r\n item = group[gi];\r\n if (item._group) continue;\r\n if (!selectedValuesSet.has(item[p.valueProp])) break;\r\n\r\n if (!virtualGroup) {\r\n virtualGroup = [];\r\n if (group[0]._group) {\r\n virtualGroup.push(group[0]);\r\n }\r\n }\r\n\r\n virtualGroup.push(item);\r\n group.splice(gi--, 1);\r\n gilen--;\r\n }\r\n\r\n if (virtualGroup) {\r\n checkedGroups.push(virtualGroup);\r\n if (group.length === 0 || (group.length === 1 && group[0]._group)) {\r\n groups.splice(g--, 1);\r\n glen--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Prepare the target array\r\n const joined = [];\r\n joined.length = items.length;\r\n let itemIndex = 0;\r\n\r\n groups = checkedGroups.length ?\r\n checkedGroups.concat(uncheckedGroups) : // Concat both lists\r\n uncheckedGroups; // No need for concat\r\n\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n for (i = 0, len = group.length; i < len; i++) {\r\n joined[itemIndex++] = group[i];\r\n }\r\n }\r\n\r\n return joined;\r\n }\r\n}\r\n\r\nexport default SelectBox;\r\n"],"names":["match","version","check","it","Math","global","globalThis","window","self","this","Function","fails","exec","error","descriptors","require$$0","Object","defineProperty","get","call","prototype","functionCall","bind","apply","arguments","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","1","createPropertyDescriptor","V","descriptor","enumerable","bitmap","value","configurable","writable","FunctionPrototype","callBind","functionUncurryThis","fn","uncurryThis","toString","stringSlice","slice","classofRaw","require$$1","require$$2","classof","require$$3","split","indexedObject","TypeError","requireObjectCoercible","undefined","IndexedObject","toIndexedObject","isCallable","argument","isObject","aFunction","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","nativeSymbol","getOwnPropertySymbols","symbol","Symbol","String","sham","useSymbolAsUid","iterator","USE_SYMBOL_AS_UID","require$$4","isSymbol","$Symbol","tryToString","aCallable","getMethod","P","func","setGlobal","key","sharedStore","store","sharedModule","push","mode","copyright","toObject","hasOwnProperty","hasOwnProperty_1","hasOwn","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$5","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","description","require$$6","TO_PRIMITIVE","toPrimitive","input","pref","result","exoticToPrim","val","valueOf","ordinaryToPrimitive","toPropertyKey","document","EXISTS","createElement","documentCreateElement","ie8DomDefine","a","DESCRIPTORS","propertyIsEnumerableModule","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","O","f","anObject","$defineProperty","definePropertyModule","Attributes","createNonEnumerableProperty","object","functionToString","inspectSource","set","has","WeakMap","nativeWeakMap","test","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","require$$8","state","wmget","wmhas","wmset","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","getDescriptor","functionName","PROPER","CONFIGURABLE","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","TEMPLATE","redefineModule","options","unsafe","simple","noTargetGet","replace","source","join","ceil","floor","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","copyConstructorProperties","target","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","redefine","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","functionApply","Reflect","isArray","Array","activeXDocument","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","objectKeys","objectDefineProperties","defineProperties","Properties","props","html","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","style","display","appendChild","src","contentWindow","open","F","objectCreate","create","arraySlice","$getOwnPropertyNames","windowNames","getWindowNames","path","wrappedWellKnownSymbolModule","setToStringTag","TAG","functionBindContext","that","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructor","called","SPECIES","arraySpeciesCreate","originalArray","C","constructor","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","forEach","map","filter","some","every","find","findIndex","filterReject","$","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","$toString","require$$20","require$$21","nativeObjectCreate","require$$22","require$$23","require$$24","getOwnPropertyNamesExternal","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$34","require$$35","require$$36","require$$37","require$$39","InternalStateModule","require$$40","$forEach","require$$41","HIDDEN","require$$33","setInternalState","ObjectPrototype","SymbolPrototype","QObject","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","wrap","$defineProperties","properties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","setter","NAME","defineWellKnownSymbol","for","keyFor","sym","useSetter","useSimple","stringify","replacer","space","args","$replacer","hint","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","regexp","desc","objectToString","TO_ENTRIES","$entries","entries","createProperty","propertyKey","arrayMethodHasSpeciesSupport","METHOD_NAME","array","foo","Boolean","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","proto","arg","k","len","E","A","n","arrayMethodIsStrict","un$Join","ES3_STRINGS","STRICT_METHOD","separator","iteratorClose","kind","innerResult","innerError","iterators","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","usingIterator","iteratorMethod","callWithSafeIterationClosing","ENTRIES","SAFE_CLOSING","iteratorWithReturn","next","done","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","iterable","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","step","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","charAt","charCodeAt","CONVERT_TO_STRING","pos","first","second","S","position","size","stringMultibyte","codeAt","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","objectGetPrototypeOf","BUGGY_SAFARI_ITERATORS","iteratorsCore","returnThis","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","aPossiblePrototype","__proto__","FunctionName","PROPER_FUNCTION_NAME","defineIterator","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","createIteratorConstructor","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","values","iterated","point","MATCH","isRegexp","isRegExp","notARegExp","un$StartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","error1","error2","correctIsRegExpLogic","searchString","search","HAS_SPECIES_SUPPORT","splice","start","deleteCount","insertCount","actualDeleteCount","to","actualStart","un$Slice","end","Constructor","fin","quot","anchor","attribute","p1","UNSCOPABLES","addToUnscopables","$find","SKIPS_HOLES","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","regexpFlags","ignoreCase","multiline","dotAll","unicode","sticky","$RegExp","RegExp","re","lastIndex","setSpecies","CONSTRUCTOR_NAME","regexpUnsupportedDotAll","flags","regexpUnsupportedNcg","groups","regExpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","NativeRegExp","RegExpPrototype","SyntaxError","getFlags","stringIndexOf","IS_NCG","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","RegExpWrapper","pattern","rawFlags","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","chr","named","brackets","ncg","groupid","groupname","handleNCG","raw","handleDotAll","proxy","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","str","charsAdded","strCopy","regexpExec","n$ToString","NOT_GENERIC","INCORRECT_NAME","R","p","rf","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","advanceStringIndex","getSubstitution","matched","captures","namedCaptures","tailPos","m","symbols","ch","capture","regExpExec","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","uncurriedNativeMethod","$exec","fixRegExpWellKnownSymbolLogic","_","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","rx","res","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","j","replacerArgs","ItemSymbol","DestroyedSymbol","GhostSymbol","defaultOptions","baseClassName","itemBlurDelay","capturesFocus","multi","keyDownHandler","autoCheckGroupChildren","useExactTargetWidth","constrainToWindow","autoFlipDirection","estimateWidth","virtualMinItems","labelProp","valueProp","on","DropList","o","_p","ownsEl","elOriginalDisplay","additionalClasses","renderItem","unrenderItem","silenceEvents","mitt","focusItemIndex","focusItemEl","sink","DomEventsSink","classes","initialCss","top","Element","classList","add","role","setCssProps","class","css","items","groupCount","mouseHandled","virtualListHelper","VirtualListHelper","list","virtual","buffer","estimatedItemHeight","itemElementCreatorFn","tabIndex","onItemRender","itemEl","item","lastMeasureLongestLabelText","setAttribute","console","warn","className","_nocheck","_checked","_group","_child","_nointeraction","_this","_renderItemContent","setOnItemUnrender","err","_hookMouseEvents","_hookTouchEvents","_hookFocusEvents","_hookKeyEvents","clearTimeout","blurTimer","filterTimer","remove","destroy","removeAttribute","lastPositionTarget","_syncBaseClasses","prop","hasFocusedItem","_trigger","event","_move","toggleClass","_updateGroupStateForItem","closestUntil","getItemIndexFromElement","_setSingleSelectedItemEl","atIndex","addItems","itemsToAdd","isMulti","_determineVirtualMode","count","oitem","addItemsAt","render","newItem","itemIndex","itemIndexByValue","itemAtIndex","isItemRendered","refreshItemAt","label","itemIndexByValueOrLabel","removeItemsAt","setCount","positionOptions","isVisible","w","targetBox","offset","targetOffset","getElementOffset","left","height","targetHeight","getElementHeight","width","targetWidth","getElementWidth","bottom","viewport","pageYOffset","pageXOffset","innerWidth","innerHeight","right","defaultVerticalDirection","y","isVirtual","_measureItem","updateWidth","_updateWidth","maxViewHeight","roomAbove","roomBelow","elComputedStyle","getComputedStyle","isBoxing","boxSizing","verticalPadding","parseFloat","paddingTop","paddingBottom","verticalBorderWidth","borderTopWidth","borderBottomWidth","estimateFullHeight","scrollHeight","maxHeight","isNaN","enoughRoomAbove","enoughRoomBelow","newDirection","currentDirection","viewSize","isTargetRtl","targetRtl","direction","isRtlDocument","documentElement","anchoredPosition","x","invertYPos","specY","scrollLeft","body","parentNode","abs","scrollWidth","clientWidth","minX","maxX","viewCss","rtl","specX","which","setElementHeight","checked","li","getItemElementAt","groupIndexes","_updateGroupCheckedState","excludeGroups","hiding","setTimeout","_this2","onDocumentMouseDown","contains","_delayBlur","visible","originalMaxHeight","clientHeight","marginTop","marginBottom","relayout","parseTransition","transition","reduce","v","delay","duration","_this3","blurFocusedItem","scrollItemIndexIntoView","itemElement","_getItemIndex","setFocusedItemAtIndex","setSingleSelectedItemAtIndex","_hasScroll","itemPos","scrollTop","previousPos","getItemPosition","itemSize","getItemSize","listHeight","handler","wrapped","_this4","off","all","clear","emit","singleSelectedItemEl","_mouseHandled","triggerItemSelection","toggleFocusedItem","activeElement","_this5","currentTarget","preventDefault","button","_this6","_itemUpAction","_handleMouseOver","_focus","currentTouchId","changedTouches","identifier","_this7","didScroll","onScroll","onTouchCancel","elToTrackScroll","touch","firstChild","_this8","evt","_this9","_keydown","VALUE_PAGE_UP","VALUE_PAGE_DOWN","VALUE_HOME","VALUE_END","VALUE_UP","VALUE_DOWN","previousPage","nextPage","previous","VALUE_ENTER","VALUE_SPACE","VALUE_ESCAPE","hide","_keydownFreeType","character","fromCharCode","keyCode","keyword","previousFilter","regex","escapeRegex","matchIndices","matchIndex","_this10","nextIndex","directionUp","isFirstItem","isLastItem","visibleItemCount","getVisibleItemCount","base","nextElementSibling","tagName","itemCount","startedAtIndex","groupIndex","affectedItems","nextEl","isCheckingGroup","fireEvents","groupItem","hasChecked","hasUnchecked","shouldCheckGroup","lastMeasureItemCount","longestLabel","lastMeasureLongestLabel","longestLabelText","text","createGhostItemElement","lastMeasureItemWidth","targetItemCount","shouldBeVirtual","setVirtual","textContent","insertBefore","autoWidth","newOuterWidth","setElementWidth","bordersWidth","borderLeftWidth","borderRightWidth","delta","es_array_iterator","Arguments","arrayBufferNonExtensible","ArrayBuffer","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","enable","fastKey","getWeakData","onFreeze","Result","stopped","ResultPrototype","iterate","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","anInstance","Prototype","InternalMetadataModule","redefineAll","internalStateGetterFor","wrapper","common","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","getConstructor","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","collection","init","last","define","entry","getEntry","removed","delete","prev","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","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","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","$assign","assign","b","B","alphabet","T","whitespace","ltrim","rtrim","stringTrim","trim","$trim","$filter","$map","$findIndex","mergeSort","comparefn","middle","insertionSort","merge","element","llength","rlength","lindex","rindex","arraySort","firefox","engineFfVersion","engineIsIeOrEdge","webkit","engineWebkitVersion","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","itemsLength","arrayLength","getSortCompare","throttle","wait","timeout","context","later","leading","Date","now","throttled","remaining","trailing","cancel","isScheduled","NoResultsItemSymbol","RestMultiItemsSymbol","hasTouchCapability","DocumentTouch","navigator","maxTouchPoints","hasClass","inputBackbufferCssProps","disabled","clearable","hasOpenIndicator","placeholder","sortSelectedItems","sortListItems","sortListCheckedFirst","stickyValues","sortItemComparator","splitListCheckedGroups","blurOnSingleSelection","showSelection","multiPlaceholderFormatter","searchable","noResultsText","filterThrottleWindow","filterOnEmptyTerm","multiItemLabelProp","maxMultiItems","multiItemsRestLabelProvider","selectedValues","isLoadingMode","SelectBox","listOptions","Set","renderSingleItem","unrenderSingleItem","renderMultiItem","unrenderMultiItem","renderRestMultiItem","unrenderRestMultiItem","renderNoResultsItem","unrenderNoResultsItem","filterFn","filteredItems","itemsChanged","resizeObserver","selectedItems","selectionChanged","resortBySelectionNeeded","throttledUpdateListItems","_updateListItems","filterTerm","setElementAttrs","_renderBase","multiItemEls","_setupDropdownMenu","clearButtonWrapper","focus","selectionStart","selectionEnd","relatedTarget","field","querySelector","_handleInputKeydown","_resizeInput","t","focusInOutHandler","ResizeObserver","observe","setItems","setSelectedValues","setValue","_scheduleSync","syncTimeout","_stopTrackingPresence","dropList","_cleanupSingleWrapper","_removeMultiItemElementByIndex","singleWrapper","inputBackBuffer","openIndicator","disconnect","enabled","resetValues","getSelectedValues","term","mutated","getFilteredItemCount","existingItem","updateItemByValue","performSearch","sortCheckedFirst","comparator","formatter","unrender","setLabelProp","setValueProp","blur","clearEvt","_setInputText","_setSelectedItems","show","_getDropListPositionOptions","_repositionDropList","getFocusedItemIndex","openList","closeList","dropListVisible","setIsLoadingMode","getIsLoadingMode","isListOpen","zIndex","whiteSpace","inputWrapper","autocomplete","autocorrect","autocapitalize","spellcheck","readOnly","_unregisterDropdownEvents","lastActiveElement","_removeMultiItemFromEvent","_handleMultiKeydown","_registerDropdownEvents","spinner","customRenderItem","customUnrenderItem","_startTrackingPresence","parent","offsetHeight","offsetWidth","selEvt","setItemChecked","idx","hasGroupSync","selectEvt","avoidToggleFromClick","suppressKeyPress","suppressKeyPressRepeat","keyEventsTarget","_movePrev","_moveNext","lastKeyAllowsSpaceToggle","VALUE_TAB","toggleList","stopPropagation","isDisabled","tevt","isMultiEnabled","getSelectedItems","setSelectedItems","_refilterItems","_lastSerializedBox","_sortItems","removeAllItems","hasRefocusedItem","setCheckedValues","singleItemIndex","getValue","matcher","lastGroup","syncQueue","queue","_performSync","op","_syncFull","_syncSingleItem","_syncPlaceholder","_addMultiItemElement","_addMultiItemRestElement","childNodes","innerHTML","pop","createTextNode","_renderMultiItem","before","clearButton","append","title","defaultMultiPlaceholderFormatter","_renderSingleItemContent","fullItemsRender","_syncClearButton","sa","sb","aLabel","bLabel","actualItemCount","addRestItem","getRootNode","tabindex","_renderMultiItemContent","originatingEvent","nextFocus","kEvent","VALUE_DELETE","VALUE_BACK_SPACE","itemsToRemove","removeselEvt","_removeMultiItem","populate","backBufferEl","inputValue","hasResize","beforeWidth","afterWidth","beforeStyle","float","getPseudoElementWidth","afterStyle","contentWidth","getCssProps","computedStyle","paddingTotal","paddingLeft","paddingRight","minWidth","backBufferWidth","currentWidth","newWidth","box","getBoundingClientRect","serialized","ctrlKey","isRtl","VALUE_LEFT","VALUE_RIGHT","shift","presenceInt","setInterval","clearInterval","splitCheckedGroups","stickyGroup","selectedValuesSet","unshift","checkedGroups","uncheckedGroups","g","glen","aChecked","bChecked","virtualGroup","gi","gilen","sgi","joined"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["node_modules/core-js/internals/engine-v8-version.js","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/function-call.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/function-uncurry-this.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-callable.js","node_modules/core-js/internals/is-object.js","node_modules/core-js/internals/get-built-in.js","node_modules/core-js/internals/object-is-prototype-of.js","node_modules/core-js/internals/engine-user-agent.js","node_modules/core-js/internals/native-symbol.js","node_modules/core-js/internals/use-symbol-as-uid.js","node_modules/core-js/internals/is-symbol.js","node_modules/core-js/internals/try-to-string.js","node_modules/core-js/internals/a-callable.js","node_modules/core-js/internals/get-method.js","node_modules/core-js/internals/ordinary-to-primitive.js","node_modules/core-js/internals/set-global.js","node_modules/core-js/internals/shared-store.js","node_modules/core-js/internals/shared.js","node_modules/core-js/internals/to-object.js","node_modules/core-js/internals/has-own-property.js","node_modules/core-js/internals/uid.js","node_modules/core-js/internals/well-known-symbol.js","node_modules/core-js/internals/to-primitive.js","node_modules/core-js/internals/to-property-key.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/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-key.js","node_modules/core-js/internals/hidden-keys.js","node_modules/core-js/internals/function-name.js","node_modules/core-js/internals/redefine.js","node_modules/core-js/internals/to-integer-or-infinity.js","node_modules/core-js/internals/to-absolute-index.js","node_modules/core-js/internals/to-length.js","node_modules/core-js/internals/length-of-array-like.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/own-keys.js","node_modules/core-js/internals/object-get-own-property-symbols.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/function-apply.js","node_modules/core-js/internals/is-array.js","node_modules/core-js/internals/to-string-tag-support.js","node_modules/core-js/internals/object-create.js","node_modules/core-js/internals/classof.js","node_modules/core-js/internals/to-string.js","node_modules/core-js/internals/object-keys.js","node_modules/core-js/internals/object-define-properties.js","node_modules/core-js/internals/html.js","node_modules/core-js/internals/array-slice.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/internals/path.js","node_modules/core-js/internals/set-to-string-tag.js","node_modules/core-js/internals/function-bind-context.js","node_modules/core-js/internals/is-constructor.js","node_modules/core-js/internals/array-species-constructor.js","node_modules/core-js/internals/array-species-create.js","node_modules/core-js/internals/array-iteration.js","node_modules/core-js/modules/es.symbol.js","node_modules/core-js/modules/es.symbol.description.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/object-to-array.js","node_modules/core-js/modules/es.object.entries.js","node_modules/core-js/internals/create-property.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/internals/array-method-is-strict.js","node_modules/core-js/modules/es.array.join.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/iterators.js","node_modules/core-js/internals/is-array-iterator-method.js","node_modules/core-js/internals/get-iterator-method.js","node_modules/core-js/internals/get-iterator.js","node_modules/core-js/internals/array-from.js","node_modules/core-js/internals/check-correctness-of-iteration.js","node_modules/core-js/modules/es.array.from.js","node_modules/core-js/internals/string-multibyte.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/create-iterator-constructor.js","node_modules/core-js/internals/a-possible-prototype.js","node_modules/core-js/internals/object-set-prototype-of.js","node_modules/core-js/internals/define-iterator.js","node_modules/core-js/modules/es.string.iterator.js","node_modules/core-js/internals/is-regexp.js","node_modules/core-js/modules/es.string.starts-with.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.array.splice.js","node_modules/core-js/modules/es.array.map.js","node_modules/core-js/internals/create-html.js","node_modules/core-js/modules/es.string.anchor.js","node_modules/core-js/internals/string-html-forced.js","node_modules/core-js/internals/add-to-unscopables.js","node_modules/core-js/modules/es.array.find.js","node_modules/core-js/internals/inherit-if-required.js","node_modules/core-js/internals/regexp-flags.js","node_modules/core-js/internals/regexp-sticky-helpers.js","node_modules/core-js/internals/set-species.js","node_modules/core-js/internals/regexp-unsupported-dot-all.js","node_modules/core-js/internals/regexp-unsupported-ncg.js","node_modules/core-js/modules/es.regexp.constructor.js","node_modules/core-js/internals/regexp-exec.js","node_modules/core-js/modules/es.regexp.exec.js","node_modules/core-js/modules/es.regexp.to-string.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","lib/utils/escapeRegex.js","lib/DropList.js","node_modules/core-js/modules/es.array.iterator.js","node_modules/core-js/internals/array-buffer-non-extensible.js","node_modules/core-js/internals/object-is-extensible.js","node_modules/core-js/internals/freezing.js","node_modules/core-js/internals/internal-metadata.js","node_modules/core-js/internals/iterate.js","node_modules/core-js/internals/an-instance.js","node_modules/core-js/internals/collection.js","node_modules/core-js/internals/redefine-all.js","node_modules/core-js/internals/collection-strong.js","node_modules/core-js/modules/es.set.js","node_modules/core-js/internals/dom-token-list-prototype.js","node_modules/core-js/modules/web.dom-collections.iterator.js","node_modules/core-js/internals/dom-iterables.js","node_modules/core-js/modules/es.array.slice.js","node_modules/core-js/internals/object-assign.js","node_modules/core-js/modules/es.object.assign.js","node_modules/core-js/internals/string-trim-forced.js","node_modules/core-js/internals/string-trim.js","node_modules/core-js/modules/es.string.trim.js","node_modules/core-js/internals/whitespaces.js","node_modules/core-js/modules/es.array.filter.js","node_modules/core-js/modules/es.array.find-index.js","node_modules/core-js/internals/array-sort.js","node_modules/core-js/internals/engine-ff-version.js","node_modules/core-js/internals/engine-is-ie-or-edge.js","node_modules/core-js/internals/engine-webkit-version.js","node_modules/core-js/modules/es.array.sort.js","lib/utils/throttle.js","lib/SelectBox.js"],"sourcesContent":["var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && 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;\n","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 es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\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 // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.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} : $propertyIsEnumerable;\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 FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.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 -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\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","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\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 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.19.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\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 symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : 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 // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(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 uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\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 || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(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 isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\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 DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\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 name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\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 isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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 = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\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 = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\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 uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\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) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, 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\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\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\nvar concat = uncurryThis([].concat);\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 ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\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 (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\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 : isCallable(detection) ? 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 options.name - the .name of the function if it does not match the key\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","var FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\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","/* global ActiveXObject -- old IE, WSH */\nvar 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 activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\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 global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\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' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\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\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\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++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\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 (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function (argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n // we can't check .prototype since constructors produced by .bind haven't it\n } return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n};\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (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 C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` 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_REJECT = 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);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? 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(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\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.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\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 arraySlice = require('../internals/array-slice');\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');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\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');\n\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(SymbolPrototype);\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 $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(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 || call($propertyIsEnumerable, 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 = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(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 (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, 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 (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, 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 (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(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 SymbolPrototype = $Symbol[PROTOTYPE];\n\n redefine(SymbolPrototype, '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(SymbolPrototype, '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 = $toString(key);\n if (hasOwn(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 (hasOwn(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 -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var $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 (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n var valueOf = SymbolPrototype.valueOf;\n // eslint-disable-next-line no-unused-vars -- required for .length\n redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n // TODO: improve hint logic\n return call(valueOf, this);\n });\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 uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\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 : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\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\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\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","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\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(O, key)) {\n push(result, 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","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\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 global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\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';\nvar TypeError = global.TypeError;\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 // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\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 = lengthOfArrayLike(E);\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","'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 -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\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 } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","module.exports = {};\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","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\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 getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\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 IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, 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 = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(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","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 es/no-array-from, no-throw-literal -- required for testing\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 $ = 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 // eslint-disable-next-line es/no-array-from -- required for testing\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 uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (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 fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\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\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\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 = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\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 // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\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 Object = global.Object;\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 var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\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 global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar 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-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(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(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\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 Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\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 (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(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.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\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 // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\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: toString(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","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","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\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 global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\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');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('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 }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '&quot;') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\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 $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var isCallable = require('../internals/is-callable');\nvar 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 isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\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","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('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 = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\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 fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (UNSUPPORTED_Y && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, 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 || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n // eslint-disable-next-line max-statements -- TODO\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(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 = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], 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 call(nativeReplace, 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 if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.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 = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, 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 FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\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: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[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 uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\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(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 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 ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\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 // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\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\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\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 : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(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 push(results, result);\n if (!global) break;\n\n var matchStr = toString(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 = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(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++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","export default value => value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\r\n","import escapeRegex from './utils/escapeRegex';\r\nimport {\r\n closestUntil,\r\n createElement,\r\n} from '@danielgindi/dom-utils/lib/Dom';\r\nimport {\r\n remove,\r\n toggleClass,\r\n} from '@danielgindi/dom-utils/lib/DomCompat';\r\nimport {\r\n setCssProps,\r\n getElementHeight,\r\n getElementWidth,\r\n setElementHeight,\r\n setElementWidth, getElementOffset, anchoredPosition,\r\n parseTransition,\r\n} from '@danielgindi/dom-utils/lib/Css';\r\nimport DomEventsSink from '@danielgindi/dom-utils/lib/DomEventsSink';\r\nimport VirtualListHelper from '@danielgindi/virtual-list-helper';\r\nimport {\r\n VALUE_DOWN,\r\n VALUE_END,\r\n VALUE_ENTER, VALUE_ESCAPE,\r\n VALUE_HOME,\r\n VALUE_PAGE_DOWN,\r\n VALUE_PAGE_UP,\r\n VALUE_SPACE,\r\n VALUE_UP,\r\n} from 'keycode-js';\r\nimport mitt from 'mitt';\r\n\r\nconst ItemSymbol = Symbol('item');\r\nconst DestroyedSymbol = Symbol('destroyed');\r\nconst GhostSymbol = Symbol('ghost');\r\n\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\n/**\r\n * @typedef {Object} DropList.Options\r\n * @property {Element} [el] An element to attach to, instead of creating a new one\r\n * @property {string} [baseClassName='droplist'] class name for the menu root element\r\n * @property {string|string[]} [additionalClasses]\r\n * @property {number} [itemBlurDelay=300] How long to wait before deciding to blur the focused item?\r\n * @property {boolean} [capturesFocus=true] Should this DropList be added to the TAB-key stack?\r\n * @property {boolean} [multi=false] Does this DropList show checkboxes for multiple item selection?\r\n * @property {function} [keyDownHandler=null] An alternative \"keydown\" event handler. Return true to prevent default behaviour.\r\n * @property {boolean} [autoCheckGroupChildren=true] When a group is checked/unchecked - all items beneath it will update accordingly\r\n * @property {boolean} [useExactTargetWidth=false] Use the exact target's width, do not allow growing\r\n * @property {boolean} [constrainToWindow=true] Should the position be constrained to the window, attaching to window's borders if needed?\r\n * @property {Boolean} [autoFlipDirection=true] Should the position/anchor be flipped automatically when there's no space in the required direction?\r\n * @property {number} [estimatedItemHeight=20] An estimated row height, for approximating scroll height.\r\n * @property {boolean} [estimateWidth=false] Use an estimation for the width instead of measuring. May be faster - needs testing and may depend on the CSS.\r\n * @property {number} [virtualMinItems=100] Turns into a virtual list - with items being created and showing up on viewport only. The value specified the minimum item count where a virtual list will be created.\r\n * @property {string} [labelProp='label']\r\n * @property {string} [valueProp='value']\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderItem] Function to call when rendering an item element\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderItem] Function to call when rendering an item element\r\n * @property {function(name: string, data: *)} [on]\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.PositionAnchor\r\n * @property {'left'|'center'|'right'|'start'|'end'|string|number} x - horizontal anchor specification (could be either `'left'|'center'|'right'|'start'|'end'` or a percentage `'50%'` or a fixed decimal `Number`)\r\n * @property {'top'|'center'|'bottom'|string|number} y - vertical anchor specification (could be either `'top'|'center'|'bottom'` or a percentage `'50%'` or a fixed decimal `Number`)\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.PositionOptions\r\n * @property {Element} [target] Target element to act as anchor\r\n * @property {{left: number, top: number}} [targetOffset=undefined] Override the offset of target. Automatically calculated if unspecified.\r\n * @property {number} [targetHeight=undefined] Override height of the target\r\n * @property {number} [targetWidth=undefined] Override width of the target\r\n * @property {DropList.PositionAnchor} [position=undefined]\r\n * @property {DropList.PositionAnchor} [anchor=undefined]\r\n * @property {boolean} [updateWidth=false] Should update the width of the menu according to target\r\n * @property {string} [targetRtl=undefined] Override for rtl mode of the target\r\n * @property {{x: number, y: number}} [offset=undefined] Extra rtl-aware offset to the target\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.ItemBase\r\n * @property {string} [value]\r\n * @property {string} [label]\r\n * @property {boolean} [_group=false]\r\n * @property {boolean} [_child=false]\r\n * @property {boolean} [_nocheck=false]\r\n * @property {boolean} [_nointeraction=false]\r\n * */\r\n\r\n/**\r\n * @typedef {DropList.ItemBase} DropList.Item\r\n * @property {boolean} [_checked=false]\r\n * */\r\n/** */\r\n\r\n/** @type {DropList.Options} */\r\nlet defaultOptions = {\r\n baseClassName: 'droplist',\r\n\r\n itemBlurDelay: 300,\r\n capturesFocus: true,\r\n multi: false,\r\n keyDownHandler: null,\r\n autoCheckGroupChildren: true,\r\n useExactTargetWidth: false,\r\n\r\n constrainToWindow: true,\r\n autoFlipDirection: true,\r\n\r\n estimateWidth: false,\r\n virtualMinItems: 100,\r\n\r\n labelProp: 'label',\r\n valueProp: 'value',\r\n\r\n on: null,\r\n};\r\n\r\n/*\r\nEmits the following events:\r\n---------------------------\r\n\r\n'itemfocus' {value, item, event}: item gained focus.\r\n'itemblur' {value, item}: item lost focus.\r\n'select' {value, item}: item was selected (in single mode).\r\n'show:before': the drop list will show.\r\n'show': the drop list has been shown.\r\n'hide:before': the drop list will hide.\r\n'hide': the drop list was hidden.\r\n'hide:after': emitted after the hide css transition has ended, or immediately after 'hide'.\r\n'check' {value, item, checked: boolean, isGroup: boolean, isCheckingGroup: boolean}: item was selected (in multi mode).\r\n'groupcheck' {value, item, affectedItems}: item was selected (in multi mode).\r\n */\r\n\r\n// noinspection JSUnusedGlobalSymbols\r\nclass DropList {\r\n\r\n /**\r\n * @param {DropList.Options} options\r\n */\r\n constructor(options) {\r\n const o = { ...defaultOptions };\r\n\r\n for (let [key, value] of Object.entries(/**@type Object*/options))\r\n if (value !== undefined)\r\n o[key] = value;\r\n\r\n const p = this._p = {\r\n ownsEl: true,\r\n elOriginalDisplay: '',\r\n\r\n baseClassName: o.baseClassName,\r\n additionalClasses: o.additionalClasses,\r\n itemBlurDelay: o.itemBlurDelay,\r\n capturesFocus: o.capturesFocus,\r\n multi: o.multi,\r\n keyDownHandler: o.keyDownHandler,\r\n autoCheckGroupChildren: o.autoCheckGroupChildren,\r\n useExactTargetWidth: o.useExactTargetWidth,\r\n constrainToWindow: o.constrainToWindow,\r\n autoFlipDirection: o.autoFlipDirection,\r\n estimateWidth: o.estimateWidth,\r\n virtualMinItems: o.virtualMinItems,\r\n labelProp: o.labelProp,\r\n valueProp: o.valueProp,\r\n renderItem: o.renderItem,\r\n unrenderItem: o.unrenderItem,\r\n on: o.on || null,\r\n silenceEvents: true,\r\n mitt: mitt(),\r\n\r\n focusItemIndex: -1,\r\n focusItemEl: null,\r\n\r\n sink: new DomEventsSink(),\r\n };\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n const initialCss = {\r\n // make initial position not interfere with layout so it can be correctly calculated\r\n top: '-9999px',\r\n };\r\n\r\n let el = o.el;\r\n if (el instanceof Element) {\r\n p.elOriginalDisplay = el.style.display || '';\r\n el.classList.add(...classes);\r\n el.role = 'menu';\r\n setCssProps(/**@type ElementCSSInlineStyle*/el, initialCss);\r\n p.ownsEl = false;\r\n } else {\r\n el = createElement('ul', {\r\n class: classes.join(' '),\r\n role: 'menu',\r\n css: initialCss,\r\n });\r\n }\r\n\r\n p.el = el;\r\n\r\n p.items = [];\r\n\r\n p.groupCount = 0; // This will keep state of how many `group` items we have\r\n\r\n p.mouseHandled = false;\r\n\r\n p.virtualListHelper = new VirtualListHelper({\r\n list: p.el,\r\n virtual: true,\r\n buffer: 5,\r\n estimatedItemHeight: o.estimatedItemHeight || 20,\r\n itemElementCreatorFn: () => {\r\n return createElement('li',\r\n {\r\n role: 'menuitem',\r\n tabIndex: p.capturesFocus ? -1 : null,\r\n },\r\n );\r\n },\r\n onItemRender: (itemEl, index) => {\r\n let item;\r\n\r\n if ((/**@type any*/index) === GhostSymbol) {\r\n item = {\r\n label: p.lastMeasureLongestLabelText,\r\n value: 'Measure',\r\n\r\n [ItemSymbol]: {\r\n [p.labelProp]: p.lastMeasureLongestLabelText,\r\n [p.valueProp]: 'Measure',\r\n },\r\n };\r\n itemEl.setAttribute('aria-hidden', 'true');\r\n } else {\r\n item = p.items[index];\r\n }\r\n\r\n if (!item) {\r\n // eslint-disable-next-line no-console\r\n console.warn('onItemRender called for (' + index + ') which has no item');\r\n }\r\n\r\n itemEl.className = `${p.baseClassName}__item`;\r\n\r\n const classList = itemEl.classList;\r\n\r\n if (p.multi) {\r\n if (item._nocheck) {\r\n classList.add(`${p.baseClassName}__item_multi_nocheck`);\r\n } else {\r\n classList.add(`${p.baseClassName}__item_multi`);\r\n\r\n if (item._checked) {\r\n classList.add(`${p.baseClassName}__item_checked`);\r\n }\r\n }\r\n } else {\r\n classList.add(`${p.baseClassName}__item_single`);\r\n }\r\n\r\n if (item._group)\r\n classList.add(`${p.baseClassName}__item_group`);\r\n\r\n if (item._child)\r\n classList.add(`${p.baseClassName}__item_child`);\r\n\r\n if (item._nointeraction)\r\n classList.add(`${p.baseClassName}__item_nointeraction`);\r\n\r\n if (p.focusItemIndex === index) {\r\n p.focusItemEl = itemEl;\r\n classList.add(`${p.baseClassName}__item_focus`);\r\n }\r\n\r\n this._renderItemContent(item, itemEl);\r\n\r\n itemEl[ItemSymbol] = item;\r\n },\r\n });\r\n\r\n if (typeof p.unrenderItem === 'function') {\r\n const fn = p.unrenderItem;\r\n p.virtualListHelper.setOnItemUnrender(el => {\r\n try {\r\n fn(el[ItemSymbol][ItemSymbol], el);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n delete el[ItemSymbol];\r\n\r\n if (p.focusItemEl === el)\r\n p.focusItemEl = null;\r\n });\r\n } else {\r\n p.virtualListHelper.setOnItemUnrender(el => {\r\n delete el[ItemSymbol];\r\n\r\n if (p.focusItemEl === el)\r\n p.focusItemEl = null;\r\n });\r\n }\r\n\r\n if (p.capturesFocus) {\r\n el.tabIndex = 0;\r\n }\r\n\r\n this._hookMouseEvents();\r\n this._hookTouchEvents();\r\n this._hookFocusEvents();\r\n this._hookKeyEvents();\r\n\r\n this.silenceEvents = false;\r\n }\r\n\r\n destroy() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n this[DestroyedSymbol] = true;\r\n\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n clearTimeout(p.filterTimer);\r\n\r\n p.sink.remove();\r\n p.virtualListHelper.destroy();\r\n\r\n if (p.el) {\r\n remove(p.el);\r\n }\r\n\r\n if (!p.ownsEl) {\r\n for (let name of Array.from(p.el.classList)) {\r\n if (name.startsWith(p.baseClassName)) {\r\n p.el.classList.remove(name);\r\n }\r\n }\r\n p.el.removeAttribute('role');\r\n for (let key of ['position', 'left', 'top', 'right', 'bottom', 'z-index']) {\r\n p.el.style[key] = '';\r\n }\r\n p.el.style.display = p.elOriginalDisplay;\r\n }\r\n\r\n if (p.lastPositionTarget) {\r\n p.lastPositionTarget.classList.remove(\r\n `has_${p.baseClassName}`,\r\n `has_${p.baseClassName}_above`,\r\n `has_${p.baseClassName}_below`);\r\n delete p.lastPositionTarget;\r\n }\r\n\r\n this._p = null;\r\n }\r\n\r\n get el() {\r\n return this._p.el;\r\n }\r\n\r\n /**\r\n * @param {string|string[]} classes\r\n * @returns {DropList}\r\n */\r\n setAdditionalClasses(classes) {\r\n const p = this._p;\r\n p.additionalClasses = classes;\r\n this._syncBaseClasses();\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {DropList}\r\n */\r\n setLabelProp(prop) {\r\n const p = this._p;\r\n p.labelProp = prop;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {DropList}\r\n */\r\n setValueProp(prop) {\r\n const p = this._p;\r\n p.valueProp = prop;\r\n return this;\r\n }\r\n\r\n _syncBaseClasses() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el)\r\n return;\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n el.className = classes.join(' ');\r\n }\r\n\r\n blurFocusedItem() {\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n\r\n if (!this.hasFocusedItem()) {\r\n return;\r\n }\r\n\r\n let focusItemEl = p.focusItemEl;\r\n if (focusItemEl) {\r\n focusItemEl.classList.remove(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = null;\r\n }\r\n\r\n const item = p.items[p.focusItemIndex];\r\n p.focusItemIndex = -1;\r\n\r\n if (!item)\r\n return;\r\n\r\n this._trigger('itemblur', { value: item.value, item: item[ItemSymbol] ?? item });\r\n }\r\n\r\n nextPage(event) {\r\n this._move('next_page', event);\r\n }\r\n\r\n previousPage(event) {\r\n this._move('prev_page', event);\r\n }\r\n\r\n toggleFocusedItem() {\r\n const p = this._p;\r\n\r\n if (this.hasFocusedItem() && p.multi) {\r\n let item = p.items[p.focusItemIndex];\r\n if (item._nocheck || item._nointeraction) return this;\r\n\r\n item._checked = !item._checked;\r\n if (p.focusItemEl) {\r\n toggleClass(p.focusItemEl, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n this._trigger('check', {\r\n value: item.value,\r\n item: item[ItemSymbol] ?? item,\r\n checked: item._checked,\r\n isGroup: item._group,\r\n isCheckingGroup: false,\r\n });\r\n\r\n this._updateGroupStateForItem(item);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n triggerItemSelection(event) {\r\n const p = this._p;\r\n\r\n p.focusItemEl = p.focusItemEl || closestUntil(event.target, 'li', p.el);\r\n p.focusItemIndex = p.virtualListHelper.getItemIndexFromElement(p.focusItemEl);\r\n if (p.focusItemIndex === undefined)\r\n p.focusItemIndex = -1;\r\n\r\n let item = p.focusItemEl[ItemSymbol];\r\n if (item._nointeraction) {\r\n return false;\r\n }\r\n\r\n if (!p.multi) {\r\n this._setSingleSelectedItemEl(p.focusItemEl);\r\n }\r\n\r\n this._trigger('select', { value: item ? item.value : undefined, item: item[ItemSymbol] ?? item });\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.Item} item The item to add. It is copied.\r\n * @param {number} [atIndex=-1] The index to insert at (or -1)\r\n * @returns {DropList}\r\n */\r\n addItem(item, atIndex = -1) {\r\n return this.addItems([item], atIndex);\r\n }\r\n\r\n /**\r\n * Adds items to the menu and renders\r\n * @param {DropList.Item[]} itemsToAdd The items to add. These are copied.\r\n * @param {number} [atIndex=-1] The index to insert at (or -1)\r\n * @returns {DropList}\r\n */\r\n addItems(itemsToAdd, atIndex = -1) {\r\n const p = this._p, labelProp = p.labelProp, valueProp = p.valueProp;\r\n\r\n let isMulti = p.multi;\r\n let items = p.items;\r\n\r\n if (atIndex == null || atIndex < 0 || atIndex >= p.items.length) {\r\n atIndex = -1;\r\n }\r\n\r\n // Determine if the list is virtual or not\r\n this._determineVirtualMode(items.length + itemsToAdd.length);\r\n\r\n for (let i = 0, count = itemsToAdd.length; i < count; i++) {\r\n let oitem = itemsToAdd[i];\r\n //noinspection PointlessBooleanExpressionJS\r\n let item = {\r\n [ItemSymbol]: oitem,\r\n label: oitem[labelProp],\r\n value: oitem[valueProp],\r\n _nocheck: !!oitem._nocheck,\r\n _nointeraction: !!oitem._nointeraction,\r\n };\r\n\r\n if (isMulti) {\r\n item._checked = !!oitem._checked;\r\n }\r\n\r\n if (oitem._group) {\r\n item._group = true;\r\n p.groupCount++;\r\n }\r\n\r\n if (oitem._child) {\r\n // This is used for setting a child class,\r\n // But can be used to determine that current item is not part of above group,\r\n // mainly where the groups are oddly sorted.\r\n item._child = true;\r\n }\r\n\r\n // Add the item to the list of them\r\n if (atIndex !== -1) {\r\n items.splice(atIndex, 0, item);\r\n } else {\r\n items.push(item);\r\n }\r\n\r\n if (atIndex !== -1) {\r\n atIndex++;\r\n }\r\n }\r\n\r\n p.virtualListHelper\r\n .addItemsAt(itemsToAdd.length, atIndex === -1 ? atIndex : (atIndex - itemsToAdd.length))\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n updateItemByValue(value, newItem) {\r\n const p = this._p;\r\n\r\n // Look for the proper item\r\n let itemIndex = this.itemIndexByValue(value);\r\n if (itemIndex < -1) return this;\r\n\r\n let item = this.itemAtIndex(itemIndex);\r\n item[ItemSymbol] = newItem;\r\n\r\n if (hasOwnProperty.call(newItem, p.labelProp))\r\n item.label = newItem[p.labelProp];\r\n\r\n if (hasOwnProperty.call(newItem, p.valueProp))\r\n item.value = newItem[p.valueProp];\r\n\r\n if (hasOwnProperty.call(newItem, '_nocheck'))\r\n item._nocheck = !!newItem._nocheck;\r\n\r\n if (hasOwnProperty.call(newItem, '_nointeraction'))\r\n item._nointeraction = !!newItem._nointeraction;\r\n\r\n if (p.multi) {\r\n if (hasOwnProperty.call(newItem, '_checked'))\r\n item._checked = !!newItem._checked;\r\n }\r\n\r\n if (hasOwnProperty.call(newItem, '_group')) {\r\n if (!!newItem._group !== item._group) {\r\n if (item._group)\r\n p.groupCount--;\r\n else p.groupCount++;\r\n\r\n newItem._group = !!item._group;\r\n }\r\n }\r\n\r\n if (hasOwnProperty.call(newItem, '_child'))\r\n item._child = !!newItem._child;\r\n\r\n if (p.virtualListHelper.isItemRendered(itemIndex)) {\r\n p.virtualListHelper\r\n .refreshItemAt(itemIndex)\r\n .render();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n removeItem(value, label) {\r\n const p = this._p;\r\n\r\n // Look for the proper item\r\n let itemIndex = this.itemIndexByValueOrLabel(value, label);\r\n if (itemIndex < -1) return this;\r\n\r\n let spliced = p.items.splice(itemIndex, 1);\r\n if (spliced[0]._group) {\r\n p.groupCount--;\r\n }\r\n\r\n p.virtualListHelper\r\n .removeItemsAt(itemIndex, 1)\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n removeAllItems() {\r\n const p = this._p;\r\n\r\n p.items.length = 0;\r\n p.groupCount = 0;\r\n\r\n p.virtualListHelper\r\n .setCount(0)\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n itemDataByValue(value) {\r\n const p = this._p;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item.value === value) {\r\n return item[ItemSymbol];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n itemIndexByValue(value) {\r\n const p = this._p;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item.value === value) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n itemIndexByValueOrLabel(value, label) {\r\n const p = this._p;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item.value === value || item.label === label) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n items() {\r\n return this._p.items.map(x => x[ItemSymbol]);\r\n }\r\n\r\n itemsReference() {\r\n return this._p.items;\r\n }\r\n\r\n itemCount() {\r\n return this._p.items.length;\r\n }\r\n\r\n itemAtIndex(index) {\r\n return this._p.items[index]?.[ItemSymbol];\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions} positionOptions\r\n * @returns {DropList}\r\n * @public\r\n */\r\n relayout(positionOptions) {\r\n const p = this._p, el = p.el;\r\n\r\n if (!this.isVisible()) return this;\r\n\r\n let w = window;\r\n\r\n let targetBox = {};\r\n\r\n let offset = positionOptions.targetOffset || getElementOffset(positionOptions.target);\r\n targetBox.left = offset.left;\r\n targetBox.top = offset.top;\r\n targetBox.height = positionOptions.targetHeight == null\r\n ? getElementHeight(positionOptions.target, true, true)\r\n : positionOptions.targetHeight;\r\n targetBox.width = positionOptions.targetWidth == null\r\n ? getElementWidth(positionOptions.target, true, true)\r\n : positionOptions.targetWidth;\r\n targetBox.bottom = targetBox.top + targetBox.height;\r\n\r\n let viewport = {};\r\n viewport.top = w.pageYOffset;\r\n viewport.left = w.pageXOffset;\r\n viewport.width = w.innerWidth;\r\n viewport.height = w.innerHeight;\r\n viewport.bottom = viewport.top + viewport.height;\r\n viewport.right = viewport.left + viewport.width;\r\n\r\n let defaultVerticalDirection = (positionOptions.position && positionOptions.position.y === 'bottom')\r\n ? 'above'\r\n : 'below';\r\n\r\n // Reset dropdown width\r\n el.style.width = '';\r\n\r\n // Make estimations\r\n if (p.estimateWidth ||\r\n p.virtualListHelper.isVirtual()) {\r\n this._measureItem();\r\n }\r\n\r\n // Calculate virtual viewport size\r\n if (p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.render();\r\n }\r\n\r\n // Now set the width of the dropdown\r\n if (positionOptions.updateWidth) {\r\n this._updateWidth(positionOptions);\r\n }\r\n\r\n // How much space is there above, and how much below?\r\n let roomAbove = targetBox.top - viewport.top;\r\n let roomBelow = viewport.bottom - targetBox.bottom;\r\n\r\n // Calculate height for dropdown\r\n\r\n let maxViewHeight;\r\n\r\n const elComputedStyle = getComputedStyle(el);\r\n\r\n let isBoxing = elComputedStyle.boxSizing === 'border-box';\r\n let verticalPadding = (parseFloat(elComputedStyle.paddingTop) || 0) +\r\n (parseFloat(elComputedStyle.paddingBottom) || 0);\r\n let verticalBorderWidth = (parseFloat(elComputedStyle.borderTopWidth) || 0) +\r\n (parseFloat(elComputedStyle.borderBottomWidth) || 0);\r\n\r\n if (p.virtualListHelper.isVirtual()) {\r\n maxViewHeight =\r\n p.virtualListHelper.estimateFullHeight() +\r\n verticalPadding +\r\n verticalBorderWidth;\r\n } else {\r\n // Another method to calculate height is measuring the whole thing at once.\r\n // This causes relayout of course.\r\n el.style.height = '';\r\n el.style.top = '-9999px';\r\n\r\n maxViewHeight = Math.max(getElementHeight(p.el), el.scrollHeight);\r\n maxViewHeight += verticalPadding + verticalBorderWidth;\r\n }\r\n\r\n // Consider css max-height\r\n\r\n let maxHeight = parseFloat(elComputedStyle.maxHeight);\r\n if (!isNaN(maxHeight)) {\r\n if (!isBoxing) {\r\n maxHeight += verticalPadding + verticalBorderWidth;\r\n }\r\n\r\n maxViewHeight = Math.min(maxViewHeight, maxHeight);\r\n }\r\n\r\n // Figure out the direction\r\n\r\n let enoughRoomAbove = roomAbove >= maxViewHeight;\r\n let enoughRoomBelow = roomBelow >= maxViewHeight;\r\n\r\n let newDirection = p.currentDirection || defaultVerticalDirection;\r\n if (newDirection === 'above' && !enoughRoomAbove && enoughRoomBelow) {\r\n newDirection = 'below';\r\n } else if (newDirection === 'below' && !enoughRoomBelow && enoughRoomAbove) {\r\n newDirection = 'above';\r\n } else if (enoughRoomAbove && enoughRoomBelow) {\r\n if (newDirection !== defaultVerticalDirection &&\r\n ((defaultVerticalDirection === 'above' && roomAbove >= roomBelow) ||\r\n (defaultVerticalDirection === 'below' && roomBelow >= roomAbove))) {\r\n newDirection = defaultVerticalDirection;\r\n }\r\n } else if (!enoughRoomAbove && !enoughRoomBelow) {\r\n if (roomAbove > roomBelow) {\r\n newDirection = 'above';\r\n } else if (roomBelow > roomAbove) {\r\n newDirection = 'below';\r\n }\r\n }\r\n p.currentDirection = newDirection;\r\n\r\n // Figure out that final view size\r\n let viewSize = {\r\n width: getElementWidth(el, true, true),\r\n height: Math.min(maxViewHeight, Math.max(roomAbove, roomBelow, 0)),\r\n };\r\n\r\n let isTargetRtl = positionOptions.targetRtl !== undefined ?\r\n positionOptions.targetRtl :\r\n (positionOptions.target == null ? false : getComputedStyle(positionOptions.target).direction === 'rtl');\r\n let isRtlDocument = getComputedStyle(document.documentElement).direction === 'rtl';\r\n\r\n let anchor = anchoredPosition(positionOptions.target,\r\n positionOptions.anchor ? positionOptions.anchor.x : 'start',\r\n positionOptions.anchor ? positionOptions.anchor.y : 'bottom',\r\n targetBox, isTargetRtl);\r\n let position = anchoredPosition(el,\r\n positionOptions.position ? positionOptions.position.x : 'start',\r\n positionOptions.position ? positionOptions.position.y : 'top',\r\n viewSize, isTargetRtl);\r\n\r\n // If it's not in the direction that the user expected, invert it\r\n let invertYPos =\r\n (position.specY === 'top' && newDirection === 'above') ||\r\n (position.specY === 'bottom' && newDirection === 'below') ||\r\n (position.specY !== 'bottom' && position.specY !== 'top' && newDirection === 'above');\r\n\r\n let scrollLeft =\r\n (w.pageXOffset !== undefined) ?\r\n w.pageXOffset :\r\n (document.documentElement || document.body.parentNode || document.body).scrollLeft;\r\n scrollLeft = Math.abs(scrollLeft);\r\n if (isRtlDocument) {\r\n scrollLeft = document.documentElement.scrollWidth - scrollLeft - document.documentElement.clientWidth;\r\n }\r\n\r\n let minX = scrollLeft,\r\n maxX = document.documentElement.clientWidth + scrollLeft - viewSize.width;\r\n\r\n let viewCss = {\r\n 'position': 'absolute',\r\n 'left': targetBox.left,\r\n 'top': targetBox.top + (invertYPos ? (anchor.bottom - position.bottom) : (anchor.top - position.top)),\r\n };\r\n\r\n if (isRtlDocument) {\r\n viewCss.left -= document.documentElement.clientWidth - document.documentElement.scrollWidth;\r\n }\r\n\r\n viewCss.left += anchor.left - position.left;\r\n\r\n if (positionOptions.offset) {\r\n if (positionOptions.offset.y) {\r\n if (invertYPos) {\r\n viewCss.top -= positionOptions.offset.y;\r\n } else {\r\n viewCss.top += positionOptions.offset.y;\r\n }\r\n }\r\n\r\n if (positionOptions.offset.x) {\r\n let rtl = elComputedStyle.direction === 'rtl';\r\n viewCss.left += rtl\r\n ? -positionOptions.offset.x\r\n : positionOptions.offset.x;\r\n }\r\n }\r\n\r\n if (p.autoFlipDirection) {\r\n if ((position.specX === 'right' &&\r\n viewCss.left < minX &&\r\n (Math.max(viewCss.left, minX) + viewSize.width - targetBox.left) / targetBox.width > 0.5) ||\r\n (position.specX === 'left' &&\r\n viewCss.left > maxX &&\r\n (Math.min(viewCss.left, maxX) - targetBox.left) / targetBox.width < 0.5)) {\r\n viewCss.left -= anchor.left - position.left;\r\n viewCss.left += anchor.right - position.right;\r\n }\r\n }\r\n\r\n // Constrain to the window if required\r\n if (p.constrainToWindow) {\r\n for (let which of (isRtlDocument ? ['min', 'max'] : ['max', 'min'])) {\r\n if (which === 'min' && viewCss.left < minX)\r\n viewCss.left = minX;\r\n else if (which === 'max' && viewCss.left > maxX)\r\n viewCss.left = maxX;\r\n }\r\n }\r\n\r\n // Set position CSS\r\n viewCss.left += 'px';\r\n viewCss.top += 'px';\r\n setCssProps(el, viewCss);\r\n setElementHeight(el, viewSize.height, true, true);\r\n\r\n // Update the scroll position for virtual lists\r\n p.virtualListHelper.render();\r\n\r\n // Update position classes\r\n if (positionOptions && positionOptions.target) {\r\n p.lastPositionTarget = positionOptions.target;\r\n\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}`, true);\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}_below`, newDirection === 'below');\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}_above`, newDirection === 'above');\r\n\r\n toggleClass(el, `${p.baseClassName}__is_below`, newDirection === 'below');\r\n toggleClass(el, `${p.baseClassName}__is_above`, newDirection === 'above');\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the checked mode of a specific value.\r\n * @public\r\n * @param {*} value - array of values to check\r\n * @param {boolean} checked - will the value be checked?\r\n * @returns {DropList} self\r\n */\r\n setItemChecked(value, checked) {\r\n const p = this._p;\r\n\r\n checked = !!checked;\r\n\r\n let index = this.itemIndexByValue(value);\r\n if (index === -1) return this;\r\n\r\n let li = p.virtualListHelper.getItemElementAt(index);\r\n if (!li) return this;\r\n\r\n let item = li[ItemSymbol];\r\n\r\n checked = checked && !item._nocheck;\r\n\r\n if (item._checked !== checked) {\r\n item._checked = checked;\r\n\r\n toggleClass(li, `${p.baseClassName}__item_checked`, item._checked);\r\n\r\n this._updateGroupStateForItem(item);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the checked values. All the other values will be unchecked,\r\n * @public\r\n * @param {Array<*>} values - array of values to check\r\n * @returns {DropList} self\r\n */\r\n setCheckedValues(values) {\r\n const p = this._p;\r\n\r\n let groupIndexes = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n let checked = !item._nocheck && values.indexOf(item.value) !== -1;\r\n\r\n if (item._group) {\r\n groupIndexes.push(i);\r\n }\r\n\r\n if (item._checked === checked) continue;\r\n\r\n item._checked = checked;\r\n\r\n let li = p.virtualListHelper.getItemElementAt(i);\r\n if (!li) continue;\r\n\r\n toggleClass(li, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n\r\n if (p.autoCheckGroupChildren) {\r\n for (let i = 0, count = groupIndexes.length; i < count; i++) {\r\n this._updateGroupCheckedState(groupIndexes[i], false);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Get all checked values. Returns array of item values.\r\n * @public\r\n * @param {boolean} excludeGroups=false Exclude group items\r\n * @returns {Array<*>} self\r\n */\r\n getCheckedValues(excludeGroups) {\r\n const p = this._p;\r\n\r\n excludeGroups = excludeGroups && p.groupCount > 0;\r\n\r\n let values = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (!item._checked) continue;\r\n if (excludeGroups && item._group) continue;\r\n values.push(item.value);\r\n }\r\n\r\n return values;\r\n }\r\n\r\n /**\r\n * Get all checked items. Returns array of actual item data object.\r\n * @public\r\n * @param {boolean} excludeGroups=false Exclude group items\r\n * @returns {DropList.Item[]}\r\n */\r\n getCheckedItems(excludeGroups) {\r\n const p = this._p;\r\n\r\n excludeGroups = excludeGroups && p.groupCount > 0;\r\n\r\n let items = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (!item._checked) continue;\r\n if (excludeGroups && item._group) continue;\r\n items.push(item[ItemSymbol]);\r\n }\r\n\r\n return items;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions?} positionOptions\r\n * @returns {DropList}\r\n * @public\r\n */\r\n show(positionOptions) {\r\n const p = this._p;\r\n\r\n p.hiding = false;\r\n\r\n if (!this.isVisible()) {\r\n this._trigger('show:before');\r\n }\r\n\r\n p.mouseHandled = false;\r\n\r\n setTimeout(() => { // Skip the end of a 'click' event\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (!p.onDocumentMouseDown) {\r\n // Detect mouse tap outside of the droplist, to blur the focused item\r\n p.sink.add(document, 'mousedown', p.onDocumentMouseDown = (event) => {\r\n if (!p.el.contains(event.target))\r\n this._delayBlur();\r\n });\r\n }\r\n });\r\n\r\n const el = p.el;\r\n el.style.position = 'absolute';\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n document.body.appendChild(el);\r\n\r\n p.visible = true;\r\n\r\n p.el.style.display = '';\r\n if (getComputedStyle(p.el).display === 'none')\r\n p.el.style.display = 'block';\r\n\r\n if (positionOptions) {\r\n const elComputedStyle = getComputedStyle(el);\r\n\r\n // Set max height to avoid adding scrollbars to page\r\n const originalMaxHeight = el.style.maxHeight;\r\n let maxHeight = document.body.clientHeight -\r\n (parseFloat(elComputedStyle.marginTop) || 0) -\r\n (parseFloat(elComputedStyle.marginBottom) || 0) -\r\n (elComputedStyle.boxSizing === 'border-box'\r\n ? 0\r\n : ((parseFloat(elComputedStyle.borderTopWidth) || 0) +\r\n (parseFloat(elComputedStyle.borderBottomWidth) || 0)));\r\n\r\n el.style.maxHeight = Math.min(maxHeight, parseFloat(elComputedStyle.maxHeight) || maxHeight) + 'px';\r\n\r\n this.relayout(positionOptions);\r\n\r\n // Restore original max-height\r\n el.style.maxHeight = originalMaxHeight;\r\n } else {\r\n // Calculate virtual viewport size\r\n if (p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.render();\r\n }\r\n }\r\n\r\n if (this.isVisible()) {\r\n this._trigger('show');\r\n }\r\n\r\n return this;\r\n }\r\n\r\n hide() {\r\n const p = this._p, el = p.el;\r\n\r\n if (p.onDocumentMouseDown) {\r\n p.sink.remove(document, 'mousedown', p.onDocumentMouseDown);\r\n p.onDocumentMouseDown = null;\r\n }\r\n\r\n if (this.isVisible()) {\r\n this._trigger('hide:before');\r\n\r\n p.hiding = true;\r\n\r\n if (el) {\r\n\r\n el.classList.add(`${p.baseClassName}__is-hiding`);\r\n\r\n // support for hide transition in css\r\n const maxTransitionDuration = parseTransition(getComputedStyle(p.el).transition)\r\n .reduce((p, v) => Math.max(p, v.delay + v.duration), 0);\r\n\r\n if (maxTransitionDuration > 0) {\r\n setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (this._p && el.parentNode && p.hiding) {\r\n remove(el);\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n p.visible = false;\r\n this._trigger('hide:after');\r\n }\r\n });\r\n } else {\r\n remove(el);\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n }\r\n }\r\n\r\n p.visible = false;\r\n\r\n this.blurFocusedItem();\r\n this._trigger('hide');\r\n\r\n if (this[DestroyedSymbol]) return;\r\n this._trigger('hide:after');\r\n }\r\n\r\n if (p.lastPositionTarget) {\r\n p.lastPositionTarget.classList.remove(\r\n `has_${p.baseClassName}`,\r\n `has_${p.baseClassName}_above`,\r\n `has_${p.baseClassName}_below`);\r\n delete p.lastPositionTarget;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n isVisible() {\r\n const p = this._p;\r\n if (!p.visible)\r\n return false;\r\n return p.el.parentNode && getComputedStyle(p.el).display !== 'none';\r\n }\r\n\r\n hasFocusedItem() {\r\n return this._p.focusItemIndex > -1;\r\n }\r\n\r\n getFocusedItemIndex() {\r\n if (!this.hasFocusedItem())\r\n return -1;\r\n return this._p.focusItemIndex;\r\n }\r\n\r\n setFocusedItemAtIndex(itemIndex) {\r\n const p = this._p;\r\n\r\n p.focusItemIndex = itemIndex;\r\n\r\n let item = null;\r\n if (itemIndex > -1)\r\n item = p.items[itemIndex];\r\n if (item && item._nointeraction)\r\n item = null;\r\n if (itemIndex > -1) {\r\n this.scrollItemIndexIntoView(itemIndex);\r\n }\r\n let itemElement = item ? p.virtualListHelper.getItemElementAt(itemIndex) : null;\r\n\r\n if (p.focusItemEl !== itemElement) {\r\n if (p.focusItemEl) {\r\n p.focusItemEl.classList.remove(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = null;\r\n }\r\n\r\n if (itemElement) {\r\n itemElement.classList.add(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = itemElement;\r\n\r\n this._trigger('itemfocus', { value: itemElement.value, item: itemElement[ItemSymbol], event: null });\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n setFocusedItem(item) {\r\n const p = this._p;\r\n\r\n let itemIndex = item._nointeraction ? -1 : this._getItemIndex(item);\r\n\r\n if (itemIndex > -1 && p.items[itemIndex]._nointeraction)\r\n itemIndex = -1;\r\n\r\n return this.setFocusedItemAtIndex(itemIndex);\r\n }\r\n\r\n setFocusedItemByValue(value) {\r\n return this.setFocusedItemAtIndex(this.itemIndexByValue(value));\r\n }\r\n\r\n setSingleSelectedItemAtIndex(itemIndex) {\r\n const p = this._p;\r\n\r\n let itemEl = null;\r\n\r\n if (itemIndex > -1 && !p.items[itemIndex]._nointeraction) {\r\n itemEl = p.virtualListHelper.getItemElementAt(itemIndex);\r\n }\r\n\r\n this._setSingleSelectedItemEl(itemEl);\r\n\r\n return this;\r\n }\r\n\r\n setSingleSelectedItem(item) {\r\n const p = this._p;\r\n\r\n let itemIndex = item._nointeraction ? -1 : this._getItemIndex(item);\r\n\r\n if (itemIndex > -1 && p.items[itemIndex]._nointeraction)\r\n itemIndex = -1;\r\n\r\n return this.setSingleSelectedItemAtIndex(itemIndex);\r\n }\r\n\r\n setSingleSelectedItemByValue(value) {\r\n return this.setSingleSelectedItemAtIndex(this.itemIndexByValue(value));\r\n }\r\n\r\n next(event) {\r\n this._move('next', event);\r\n }\r\n\r\n previous(event) {\r\n this._move('prev', event);\r\n }\r\n\r\n isFirstItem() {\r\n const p = this._p;\r\n return p.focusItemIndex === 0 && p.focusItemIndex < p.items.length;\r\n }\r\n\r\n isLastItem() {\r\n const p = this._p;\r\n return p.focusItemIndex > -1 && p.focusItemIndex === p.items.length - 1;\r\n }\r\n\r\n scrollItemIndexIntoView(itemIndex) {\r\n const p = this._p;\r\n\r\n if (this._hasScroll()) {\r\n const el = p.el, scrollTop = el.scrollTop;\r\n\r\n let itemPos, previousPos = -1;\r\n\r\n // eslint-disable-next-line no-constant-condition\r\n while (true) {\r\n itemPos = p.virtualListHelper.getItemPosition(itemIndex);\r\n\r\n if (itemPos === previousPos)\r\n break;\r\n\r\n previousPos = itemPos;\r\n\r\n let itemSize = p.virtualListHelper.getItemSize(itemIndex);\r\n\r\n let listHeight = el.clientHeight;\r\n\r\n if (itemPos < scrollTop) {\r\n el.scrollTop = itemPos;\r\n } else if (itemPos + itemSize > scrollTop + listHeight) {\r\n el.scrollTop = itemPos + itemSize - listHeight;\r\n }\r\n\r\n // force update items, until the positions and sizes are final\r\n p.virtualListHelper.render();\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Register an event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n on(/**string|'*'*/event, /**Function?*/handler) {\r\n this._p.mitt.on(event, handler);\r\n return this;\r\n }\r\n\r\n /**\r\n * Register a one time event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n once(/**string|'*'*/event, /**Function?*/handler) {\r\n let wrapped = (value) => {\r\n this._p.mitt.off(event, wrapped);\r\n handler(value);\r\n };\r\n this._p.mitt.on(event, wrapped);\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove an `handler` for `event`, all events for `event`, or all events completely.\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n off(/**(string|'*')?*/event, /**Function?*/handler) {\r\n if (!event && !event) {\r\n this._p.mitt.all.clear();\r\n } else {\r\n this._p.mitt.off(event, handler);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Emit an event\r\n * @param {string} event\r\n * @param {any} value\r\n * @returns {DropList}\r\n */\r\n emit(/**string|'*'*/event, /**any?*/value) {\r\n this._p.mitt.emit(event, value);\r\n return this;\r\n }\r\n\r\n _getItemIndex(item) {\r\n const p = this._p;\r\n\r\n let itemIndex = -1;\r\n\r\n if (item) {\r\n itemIndex = p.items.indexOf(item);\r\n if (itemIndex === -1) {\r\n let value = (item && item.value !== undefined) ? item.value : item;\r\n let label = (item && item.label) ? item.label : value;\r\n itemIndex = this.itemIndexByValueOrLabel(value, label);\r\n }\r\n }\r\n\r\n return itemIndex;\r\n }\r\n\r\n _setSingleSelectedItemEl(itemEl) {\r\n const p = this._p;\r\n\r\n if (p.singleSelectedItemEl) {\r\n p.singleSelectedItemEl.classList.remove(`${p.baseClassName}__item_checked`);\r\n p.singleSelectedItemEl = null;\r\n }\r\n\r\n if (itemEl) {\r\n itemEl.classList.add(`${p.baseClassName}__item_checked`);\r\n p.singleSelectedItemEl = itemEl;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} event\r\n * @param {*} [data]\r\n * @private\r\n */\r\n _trigger(event, data) {\r\n const p = this._p;\r\n if (p.on)\r\n p.on(event, ...(data === undefined ? [] : [data]));\r\n p.mitt.emit(event, data);\r\n }\r\n\r\n _itemUpAction(event, itemEl) {\r\n if (closestUntil(event.target, '.requires-pointer-events,button', itemEl)) return;\r\n\r\n let p = this._p;\r\n\r\n if (!this._mouseHandled) {\r\n\r\n this.triggerItemSelection(event);\r\n\r\n // If we are destroyed in response to a click/select, cease all actions\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n this.toggleFocusedItem();\r\n\r\n if (document.activeElement !== this.el && p.focusItemEl) {\r\n clearTimeout(p.blurTimer);\r\n }\r\n\r\n setTimeout(() => {\r\n this._mouseHandled = false;\r\n }, 0);\r\n }\r\n }\r\n\r\n _hookMouseEvents() {\r\n const p = this._p;\r\n\r\n p.sink\r\n .add(p.el, 'mousedown', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n event.preventDefault();\r\n })\r\n .add(p.el, 'mouseup', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n if (event.button !== 0) return;\r\n\r\n this._itemUpAction(event, li);\r\n })\r\n .add(p.el, 'mouseover', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n this._handleMouseOver(event, li);\r\n });\r\n }\r\n\r\n _handleMouseOver(event, itemEl) {\r\n this._focus(event, itemEl);\r\n }\r\n\r\n _hookTouchEvents() {\r\n const p = this._p;\r\n\r\n let currentTouchId;\r\n\r\n p.sink.add(p.el, 'touchstart', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n if (currentTouchId) return;\r\n if (closestUntil(event.target, '.requires-pointer-events,button', li)) return;\r\n\r\n currentTouchId = event.changedTouches[0].identifier;\r\n\r\n // Simulate mouseover event\r\n this._handleMouseOver(event, li);\r\n\r\n // Track scrolling\r\n let didScroll = false;\r\n let onScroll = () => { didScroll = true; };\r\n let onTouchCancel = () => {\r\n currentTouchId = null;\r\n p.sink.remove(null, '.dropdown_touchextra');\r\n };\r\n\r\n let elToTrackScroll = li.parentNode;\r\n while (elToTrackScroll) {\r\n p.sink.add(elToTrackScroll, 'scroll.dropdown_touchextra', onScroll);\r\n elToTrackScroll = elToTrackScroll.parentNode;\r\n }\r\n p.sink.add(window, 'scroll.dropdown_touchextra', onScroll);\r\n\r\n p.sink.add(window, 'touchcancel.dropdown_touchextra', onTouchCancel);\r\n\r\n p.sink.add(p.el, 'touchend.dropdown_touchextra', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return onTouchCancel();\r\n\r\n let touch = Array.prototype.find.call(event.changedTouches, (touch) => {\r\n return touch.identifier === currentTouchId;\r\n });\r\n if (!touch) return onTouchCancel();\r\n\r\n onTouchCancel();\r\n\r\n if (!didScroll) {\r\n this._itemUpAction(event, li);\r\n event.preventDefault();\r\n }\r\n });\r\n });\r\n }\r\n\r\n _hookFocusEvents() {\r\n const p = this._p;\r\n\r\n p.sink\r\n .add(p.el, 'focus', event => {\r\n let itemEl = p.focusItemEl || // focused item\r\n p.el.firstChild; // or the first item\r\n\r\n this._focus(event, itemEl);\r\n })\r\n .add(p.el, 'blur', () => {\r\n setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (!p.el.contains(document.activeElement)) {\r\n this._delayBlur();\r\n }\r\n });\r\n });\r\n }\r\n\r\n _hookKeyEvents() {\r\n const p = this._p;\r\n\r\n p.sink.add(p.el, 'keydown', evt => this._keydown(evt));\r\n p.sink.add(p.el, 'keypress', evt => this._keydown(evt));\r\n }\r\n\r\n _keydown(event) {\r\n const p = this._p;\r\n\r\n if (p.keyDownHandler && p.keyDownHandler.call(this, event)) {\r\n return;\r\n }\r\n\r\n let preventDefault = true;\r\n\r\n switch (event.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_HOME:\r\n case VALUE_END:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n event.preventDefault();\r\n\r\n switch (event.key) {\r\n case VALUE_PAGE_UP:\r\n this.previousPage(event);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n this.nextPage(event);\r\n break;\r\n case VALUE_HOME:\r\n this._move('first', event);\r\n break;\r\n case VALUE_END:\r\n this._move('last', event);\r\n break;\r\n case VALUE_UP:\r\n this.previous(event);\r\n break;\r\n case VALUE_DOWN:\r\n this.next(event);\r\n break;\r\n }\r\n break;\r\n\r\n case VALUE_ENTER:\r\n this.triggerItemSelection(event);\r\n event.preventDefault();\r\n break;\r\n\r\n case VALUE_SPACE:\r\n this.toggleFocusedItem();\r\n event.preventDefault();\r\n break;\r\n\r\n case VALUE_ESCAPE:\r\n event.preventDefault();\r\n this.hide();\r\n break;\r\n\r\n default: {\r\n if (event.type === 'keydown') return;\r\n this._keydownFreeType(event);\r\n preventDefault = false;\r\n }\r\n }\r\n }\r\n\r\n _keydownFreeType(evt) {\r\n const p = this._p;\r\n\r\n // noinspection JSDeprecatedSymbols\r\n let character = evt.key || String.fromCharCode(evt.keyCode);\r\n if (character.length !== 1) return;\r\n\r\n clearTimeout(p.filterTimer);\r\n\r\n // Accumulate text to find from keystrokes\r\n let keyword = (p.previousFilter || '') + character;\r\n\r\n let regex = new RegExp(`^${escapeRegex(keyword)}`, 'i');\r\n\r\n let matchIndices = [];\r\n let item;\r\n\r\n // These are all the possible matches\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n item = p.items[i];\r\n if (regex.test(item.label)) {\r\n matchIndices.push(i);\r\n }\r\n }\r\n\r\n // Did we find anything?\r\n if (!matchIndices.length) {\r\n // No... So start over with this character as the only one.\r\n keyword = character;\r\n regex = new RegExp(`^${escapeRegex(keyword)}`, 'i');\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n item = p.items[i];\r\n if (regex.test(item.label)) {\r\n matchIndices.push(i);\r\n }\r\n }\r\n }\r\n\r\n let focusItemIndex = p.focusItemIndex;\r\n let matchIndex = -1;\r\n\r\n // Find a match *after* the focused item\r\n for (let i = 0, count = matchIndices.length; i < count; i++) {\r\n if (matchIndices[i] >= focusItemIndex) {\r\n matchIndex = matchIndices[i];\r\n break;\r\n }\r\n }\r\n\r\n // Find a match from the beginning.\r\n if (matchIndex === -1 && matchIndices.length) {\r\n matchIndex = matchIndices[0];\r\n }\r\n\r\n if (matchIndex > -1) {\r\n let next = p.virtualListHelper.getItemElementAt(matchIndex);\r\n this._focus(evt, next || null, matchIndex);\r\n\r\n if (!this.isVisible()) {\r\n this.triggerItemSelection(evt);\r\n }\r\n\r\n // Record the last filter used\r\n p.previousFilter = keyword;\r\n\r\n // Clear the last filter - a second from now.\r\n p.filterTimer = setTimeout(() => {\r\n delete p.previousFilter;\r\n }, 1000);\r\n\r\n } else {\r\n delete p.previousFilter;\r\n }\r\n }\r\n\r\n _focus(event, itemEl, itemIndex) {\r\n const p = this._p;\r\n\r\n if (!itemIndex && itemEl) {\r\n itemIndex = p.virtualListHelper.getItemIndexFromElement(itemEl);\r\n }\r\n\r\n if (itemIndex > -1) {\r\n this.scrollItemIndexIntoView(itemIndex);\r\n } else if (itemIndex === undefined) {\r\n itemEl = null;\r\n }\r\n\r\n let focusItemEl = itemEl || p.virtualListHelper.getItemElementAt(itemIndex);\r\n if (!focusItemEl || focusItemEl[ItemSymbol]._nointeraction) {\r\n this.blurFocusedItem();\r\n return;\r\n }\r\n\r\n if (focusItemEl === p.focusItemEl) {\r\n clearTimeout(p.blurTimer);\r\n return;\r\n }\r\n\r\n this.blurFocusedItem();\r\n\r\n focusItemEl.classList.add(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = focusItemEl;\r\n p.focusItemIndex = itemIndex;\r\n\r\n const item = p.items[itemIndex];\r\n this._trigger('itemfocus', { value: item.value, item: item[ItemSymbol] ?? item, event: event });\r\n }\r\n\r\n _delayBlur() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n\r\n p.blurTimer = setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n this.blurFocusedItem();\r\n }, p.itemBlurDelay);\r\n }\r\n\r\n _move(direction, event) {\r\n const p = this._p;\r\n\r\n let next, nextIndex, directionUp = false;\r\n\r\n if (direction === 'first') {\r\n nextIndex = 0;\r\n directionUp = false;\r\n } else if (direction === 'last') {\r\n nextIndex = p.items.length - 1;\r\n directionUp = true;\r\n } else if (direction === 'prev') {\r\n if (!this.hasFocusedItem())\r\n return this._move('last', event);\r\n\r\n nextIndex = p.focusItemIndex - 1;\r\n if (nextIndex === -1) {\r\n nextIndex = p.items.length - 1;\r\n }\r\n\r\n directionUp = true;\r\n } else if (direction === 'next') {\r\n if (!this.hasFocusedItem())\r\n return this._move('first', event);\r\n\r\n nextIndex = p.focusItemIndex + 1;\r\n if (nextIndex === p.items.length) {\r\n nextIndex = 0;\r\n }\r\n\r\n directionUp = false;\r\n } else if (direction === 'prev_page' || direction === 'next_page') {\r\n\r\n if (!this.hasFocusedItem()) {\r\n return this._move(direction === 'prev_page' ? 'prev' : 'next', event);\r\n }\r\n\r\n if ((direction === 'prev_page' && this.isFirstItem()) ||\r\n (direction === 'next_page' && this.isLastItem())) return;\r\n\r\n if (this._hasScroll()) {\r\n\r\n if (p.virtualListHelper.isVirtual()) {\r\n let visibleItemCount = p.virtualListHelper.getVisibleItemCount();\r\n\r\n nextIndex = p.focusItemIndex;\r\n\r\n if (direction === 'prev_page') {\r\n nextIndex -= visibleItemCount;\r\n } else {\r\n nextIndex += visibleItemCount;\r\n }\r\n\r\n if (nextIndex < 0) {\r\n nextIndex = 0;\r\n } else if (nextIndex >= p.items.length) {\r\n nextIndex = p.items.length;\r\n }\r\n } else if (p.focusItemEl) {\r\n let base = getElementOffset(p.focusItemEl).top;\r\n let height = getElementHeight(p.el, true);\r\n\r\n while (true) { // eslint-disable-line no-constant-condition\r\n next = p.focusItemEl.nextElementSibling;\r\n if (!next) return;\r\n if (next.tagName !== 'LI') continue;\r\n\r\n if (direction === 'prev_page') {\r\n if (getElementOffset(next).top - base + height <= 0)\r\n break;\r\n } else {\r\n if (getElementOffset(next).top - base - height >= 0)\r\n break;\r\n }\r\n }\r\n\r\n if (next) {\r\n nextIndex = p.virtualListHelper.getItemIndexFromElement(next);\r\n\r\n if (nextIndex === undefined)\r\n nextIndex = -1;\r\n }\r\n }\r\n\r\n } else {\r\n return this._move(direction === 'prev_page' ? 'first' : 'last', event);\r\n }\r\n\r\n directionUp = direction === 'prev_page';\r\n } else {\r\n return;\r\n }\r\n\r\n let itemCount = p.items.length;\r\n\r\n if (nextIndex >= itemCount) {\r\n return;\r\n }\r\n\r\n let item = p.items[nextIndex];\r\n // noinspection UnnecessaryLocalVariableJS\r\n let startedAtIndex = nextIndex;\r\n\r\n while (item && item._nointeraction) {\r\n if (directionUp) {\r\n nextIndex--;\r\n if (nextIndex === -1) {\r\n nextIndex = itemCount;\r\n }\r\n } else {\r\n nextIndex++;\r\n if (nextIndex === itemCount) {\r\n nextIndex = 0;\r\n }\r\n }\r\n\r\n item = p.items[nextIndex];\r\n\r\n if (nextIndex === startedAtIndex) {\r\n break;\r\n }\r\n }\r\n\r\n next = p.virtualListHelper.getItemElementAt(nextIndex);\r\n this._focus(event, next || null, nextIndex);\r\n\r\n if (!this.isVisible()) {\r\n this.triggerItemSelection(event);\r\n }\r\n }\r\n\r\n _hasScroll() {\r\n return this.el.clientHeight < this.el.scrollHeight;\r\n }\r\n\r\n _updateGroupStateForItem(item) {\r\n const p = this._p;\r\n\r\n if (p.multi && p.autoCheckGroupChildren) {\r\n\r\n let items, groupIndex, itemIndex;\r\n\r\n if (item._group) {\r\n // Now loop through children below the group\r\n\r\n items = p.items;\r\n groupIndex = items.indexOf(item);\r\n\r\n let affectedItems = 0;\r\n\r\n for (let i = groupIndex + 1, len = items.length; i < len; i++) {\r\n let next = items[i];\r\n\r\n // Hit the next group, break out\r\n if (next._group || (!next._child && items[i - 1]._child))\r\n break;\r\n\r\n // No change, skip\r\n if (!!next._checked === item._checked)\r\n continue;\r\n\r\n // Update state\r\n next._checked = item._checked;\r\n\r\n affectedItems++;\r\n\r\n // Update DOM\r\n let nextEl = p.virtualListHelper.getItemElementAt(i);\r\n if (nextEl) {\r\n toggleClass(nextEl, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n\r\n // Fire event\r\n this._trigger('check', {\r\n value: next.value,\r\n item: next[ItemSymbol] ?? next,\r\n checked: item._checked,\r\n isGroup: item._group,\r\n isCheckingGroup: true,\r\n });\r\n }\r\n\r\n // Fire event\r\n this._trigger('groupcheck', { value: item.value, item: item[ItemSymbol] ?? item, affectedItems: affectedItems });\r\n } else if (p.groupCount > 0) {\r\n items = p.items;\r\n itemIndex = items.indexOf(item);\r\n groupIndex = -1;\r\n\r\n // Find the group index\r\n for (let i = itemIndex - 1; i >= 0; i--) {\r\n if (items[i]._group) {\r\n groupIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n if (groupIndex > -1) {\r\n this._updateGroupCheckedState(groupIndex, true);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n _updateGroupCheckedState(groupIndex, fireEvents) {\r\n const p = this._p;\r\n\r\n if (p.multi && p.autoCheckGroupChildren && groupIndex > -1) {\r\n\r\n let items = p.items;\r\n let groupItem = items[groupIndex];\r\n if (!groupItem || !groupItem._group) return this;\r\n\r\n let item, hasChecked = false, hasUnchecked = false;\r\n\r\n for (let i = groupIndex + 1, len = items.length; i < len; i++) {\r\n item = items[i];\r\n\r\n // Hit the next group, break out\r\n if (item._group || (!item._child && items[i - 1]._child))\r\n break;\r\n\r\n if (item._checked) {\r\n hasChecked = true;\r\n } else if (!item._checked) {\r\n hasUnchecked = true;\r\n }\r\n }\r\n\r\n // See if we need to update the group\r\n let shouldCheckGroup = hasChecked && !hasUnchecked;\r\n if (!!groupItem._checked !== shouldCheckGroup) {\r\n // Update state\r\n groupItem._checked = shouldCheckGroup;\r\n\r\n // Update DOM\r\n let nextEl = p.virtualListHelper.getItemElementAt(groupIndex);\r\n if (nextEl) {\r\n toggleClass(nextEl, `${p.baseClassName}__item_checked`, groupItem._checked);\r\n }\r\n\r\n if (fireEvents) {\r\n // Fire event\r\n this._trigger('check', {\r\n value: groupItem.value,\r\n item: groupItem[ItemSymbol] ?? groupItem,\r\n checked: item._checked,\r\n isGroup: item._group,\r\n isCheckingGroup: false,\r\n });\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @private\r\n * @returns {DropList} self\r\n */\r\n _measureItem() {\r\n const p = this._p;\r\n\r\n if (p.lastMeasureItemCount !== p.items.length) {\r\n let longestLabel = p.lastMeasureLongestLabel || 1,\r\n longestLabelText = p.lastMeasureLongestLabelText || '';\r\n\r\n for (let i = 0, items = p.items, count = items.length;\r\n i < count;\r\n i++) {\r\n\r\n const item = items[i];\r\n let text = item.label;\r\n if (text == null)\r\n text = item.value;\r\n if (text == null)\r\n text = '';\r\n\r\n let length = text.length;\r\n if (length > longestLabel) {\r\n longestLabel = length;\r\n longestLabelText = text;\r\n }\r\n }\r\n\r\n p.lastMeasureItemCount = p.items.length;\r\n p.lastMeasureLongestLabel = longestLabel;\r\n p.lastMeasureLongestLabelText = longestLabelText;\r\n }\r\n\r\n if (p.estimateWidth || p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.createGhostItemElement(GhostSymbol, true, itemEl => {\r\n p.lastMeasureItemWidth = getElementWidth(itemEl, true, true);\r\n });\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Determines whether the list should be in virtual mode, depending on the item count.\r\n * @param {number?} targetItemCount - item count we are expecting. Defaults to current item count\r\n * @returns {DropList}\r\n * @private\r\n */\r\n _determineVirtualMode(targetItemCount) {\r\n const p = this._p;\r\n\r\n let items = p.items;\r\n if (targetItemCount === undefined) {\r\n targetItemCount = items.length;\r\n }\r\n\r\n let shouldBeVirtual = targetItemCount >= p.virtualMinItems;\r\n\r\n if (shouldBeVirtual !== p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.setVirtual(shouldBeVirtual).render();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n _renderItemContent(item, itemEl) {\r\n const p = this._p;\r\n\r\n // NOTE: a \"measure\" item will not have full data of original item.\r\n // so for a custom renderer - we try to send original item, and fallback to our private list item.\r\n\r\n if (!p.renderItem || p.renderItem(item[ItemSymbol] || item, itemEl) === false) {\r\n itemEl.appendChild(createElement('span', {\r\n class: `${p.baseClassName}__item_label`,\r\n textContent: item.label,\r\n }));\r\n\r\n if (p.multi) {\r\n if (!item._nocheck) {\r\n itemEl.insertBefore(\r\n createElement('span', { class: 'checkbox' }),\r\n itemEl.firstChild,\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions} [positionOptions=undefined]\r\n * @returns {number} new outer width\r\n * @private\r\n */\r\n _updateWidth(positionOptions) {\r\n const p = this._p, el = p.el;\r\n\r\n let targetWidth = 0;\r\n\r\n if (positionOptions) {\r\n // Measure target\r\n targetWidth = positionOptions.targetWidth;\r\n if (targetWidth == null) {\r\n targetWidth = getElementWidth(positionOptions.target, true, true);\r\n }\r\n }\r\n\r\n let autoWidth = 0;\r\n if (!p.useExactTargetWidth) {\r\n if (p.estimateWidth || p.virtualListHelper.isVirtual()) {\r\n autoWidth = p.lastMeasureItemWidth;\r\n } else {\r\n el.style.width = ''; // Reset width\r\n autoWidth = getElementWidth(el, true, true);\r\n }\r\n }\r\n\r\n let newOuterWidth = Math.max(autoWidth, targetWidth);\r\n\r\n setElementWidth(el, newOuterWidth, true, true);\r\n\r\n const elComputedStyle = getComputedStyle(el);\r\n let bordersWidth = (parseFloat(elComputedStyle.borderLeftWidth) || 0) + (parseFloat(elComputedStyle.borderRightWidth) || 0);\r\n let scrollWidth = el.scrollWidth + bordersWidth;\r\n if (scrollWidth > newOuterWidth) {\r\n // consider scrollWidth delta\r\n let delta = scrollWidth - newOuterWidth;\r\n el.style.width = `${parseFloat(el.style.width) + delta}px`;\r\n newOuterWidth = scrollWidth;\r\n }\r\n\r\n return newOuterWidth;\r\n }\r\n}\r\n\r\nexport default DropList;\r\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","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\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 (!hasOwn(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 (!hasOwn(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 && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\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);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\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 (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\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 isCallable = require('../internals/is-callable');\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 uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\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 -- required for testing\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, NativePrototype);\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","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","'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 Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\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 Prototype = Constructor.prototype;\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(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-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 // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\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 // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\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 // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, 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 // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\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\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\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\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\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","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\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 un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\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 }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\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 (isConstructor(Constructor) && (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 un$Slice(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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\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\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(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 es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\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 ? concat(objectKeys(S), 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 || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\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// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\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 = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, 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 $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('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 }, {\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 $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\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 }, {\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 arraySlice = require('../internals/array-slice');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","const throttle = (func, wait, options) => {\r\n let timeout, context, args, result;\r\n let previous = 0;\r\n if (!options) options = {};\r\n\r\n const later = () => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n result = func.apply(context, args);\r\n if (!timeout) context = args = null;\r\n };\r\n\r\n const throttled = function () {\r\n const now = Date.now();\r\n if (!previous && options.leading === false)\r\n previous = now;\r\n\r\n const remaining = wait - (now - previous);\r\n context = this;\r\n args = arguments;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n result = func.apply(context, args);\r\n if (!timeout) context = args = null;\r\n } else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(later, remaining);\r\n }\r\n return result;\r\n };\r\n\r\n throttled.cancel = () => {\r\n clearTimeout(timeout);\r\n previous = 0;\r\n timeout = context = args = null;\r\n };\r\n\r\n throttled.isScheduled = () => {\r\n return !!timeout;\r\n };\r\n\r\n return throttled;\r\n};\r\n\r\nexport default throttle;\r\n","import {\r\n getCssProps,\r\n getElementWidth,\r\n setElementWidth,\r\n getPseudoElementWidth,\r\n setCssProps,\r\n} from '@danielgindi/dom-utils/lib/Css';\r\nimport escapeRegex from './utils/escapeRegex';\r\nimport {\r\n closestUntil,\r\n createElement,\r\n next,\r\n prev,\r\n setElementAttrs,\r\n} from '@danielgindi/dom-utils/lib/Dom';\r\nimport {\r\n append,\r\n getRootNode,\r\n before,\r\n remove,\r\n toggleClass,\r\n} from '@danielgindi/dom-utils/lib/DomCompat';\r\n\r\nimport DomEventsSink from '@danielgindi/dom-utils/lib/DomEventsSink';\r\nimport DropList from './DropList';\r\nimport throttle from './utils/throttle';\r\nimport {\r\n VALUE_BACK_SPACE,\r\n VALUE_DELETE, VALUE_DOWN, VALUE_ENTER,\r\n VALUE_ESCAPE,\r\n VALUE_LEFT, VALUE_PAGE_DOWN,\r\n VALUE_PAGE_UP,\r\n VALUE_RIGHT, VALUE_SPACE,\r\n VALUE_TAB,\r\n VALUE_UP,\r\n} from 'keycode-js';\r\nimport mitt from 'mitt';\r\n\r\nconst ItemSymbol = Symbol('item');\r\nconst DestroyedSymbol = Symbol('destroyed');\r\nconst NoResultsItemSymbol = Symbol('no_results_items');\r\nconst RestMultiItemsSymbol = Symbol('rest_multi_items');\r\n\r\nconst hasTouchCapability = !!('ontouchstart' in window\r\n || (window.DocumentTouch && window.document instanceof window.DocumentTouch)\r\n || window.navigator.maxTouchPoints\r\n);\r\n\r\n/**\r\n * @param {Element|EventTarget} el\r\n * @param {string} className\r\n * @returns {boolean}\r\n */\r\nconst hasClass = function (el, className) {\r\n if (el instanceof Element) {\r\n return el.classList.contains(className);\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst inputBackbufferCssProps = [\r\n 'font-family',\r\n 'font-size',\r\n 'font-weight',\r\n 'font-size',\r\n 'letter-spacing',\r\n 'text-transform',\r\n 'word-spacing',\r\n 'text-indent',\r\n 'box-sizing',\r\n 'padding-left',\r\n 'padding-right',\r\n];\r\n\r\n/**\r\n * @typedef {Object} SelectBox.Options\r\n * @property {DropList.Options} [listOptions] options to pass to the `DropList`\r\n * @property {Element} [el] An element to attach to, instead of creating a new one\r\n * @property {string} [baseClassName='selectbox'] class name for the menu root element\r\n * @property {boolean} [disabled=false] Should start as disabled?\r\n * @property {boolean} [clearable=true] Has clear button?\r\n * @property {boolean} [hasOpenIndicator=true] has open/close indicator?\r\n * @property {string} [placeholder=''] Placeholder text\r\n * @property {boolean} [sortSelectedItems=true] Should the selected items be sorted?\r\n * @property {boolean} [sortListItems=true] Sort list items\r\n * @property {boolean} [sortListCheckedFirst=true] When sorting - put checked items first (applicable to `multi` mode only)\r\n * @property {*[]} [stickyValues]\r\n * @property {function(a: DropList.ItemBase, b: DropList.ItemBase):number} [sortItemComparator]\r\n * @property {boolean} [splitListCheckedGroups=true] Split groups to \"checked\" and \"unchecked\", works with `sortCheckedFirst` only\r\n * @property {boolean|'touch'} [blurOnSingleSelection='touch']\r\n * @property {boolean} [multi=false] can multiple values be selected?\r\n * @property {boolean} [showSelection=true] show selection? if false, the placeholder will take effect\r\n * @property {function(items: DropList.ItemBase[]):string} [multiPlaceholderFormatter] formatter for placeholder for multi items mode\r\n * @property {boolean} [searchable=false] is it searchable?\r\n * @property {string} [noResultsText='No matching results'] text for no results (empty for none)\r\n * @property {number} [filterThrottleWindow=300] throttle time (milliseconds) for filtering\r\n * @property {boolean} [filterOnEmptyTerm=false] call the filter function on empty search term too\r\n * @property {string} [labelProp='label']\r\n * @property {string} [valueProp='value']\r\n * @property {string} [multiItemLabelProp='short_label']\r\n * @property {number} [maxMultiItems] maximum number of multi items. The rest will get a single item to represent.\r\n * @property {function(count: number, items: DropList.ItemBase[]):string} [multiItemsRestLabelProvider] label for the item representing the rest of the items.\r\n * @property {DropList.ItemBase[]|null} [items] initial items\r\n * @property {*[]|null} [selectedValues] initial selected values\r\n * @property {*|*[]|null} [value] initial selected value\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderSingleItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderSingleItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderRestMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderRestMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderNoResultsItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderNoResultsItem]\r\n * @property {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)} [filterFn]\r\n * @property {function(name: string, ...args)} [on]\r\n * @property {string|string[]} [additionalClasses]\r\n * @property {boolean} [isLoadingMode]\r\n * */\r\nconst defaultOptions = {\r\n el: null,\r\n baseClassName: 'selectbox',\r\n disabled: false,\r\n clearable: true,\r\n hasOpenIndicator: true,\r\n placeholder: '',\r\n sortSelectedItems: true,\r\n sortListItems: true,\r\n sortListCheckedFirst: true,\r\n stickyValues: null,\r\n sortItemComparator: null,\r\n splitListCheckedGroups: true,\r\n blurOnSingleSelection: 'touch',\r\n multi: false,\r\n showSelection: true,\r\n multiPlaceholderFormatter: null,\r\n searchable: true,\r\n noResultsText: 'No matching results',\r\n filterThrottleWindow: 300,\r\n filterOnEmptyTerm: false,\r\n labelProp: 'label',\r\n valueProp: 'value',\r\n multiItemLabelProp: 'short_label',\r\n maxMultiItems: null,\r\n multiItemsRestLabelProvider: null,\r\n items: [],\r\n selectedValues: undefined,\r\n value: undefined,\r\n isLoadingMode: false,\r\n};\r\n\r\n/**\r\n *\r\n * @param {DropList.ItemBase[]} items\r\n * @param {string} labelProp\r\n * @returns {string}\r\n */\r\nconst defaultMultiPlaceholderFormatter = (items, labelProp) => {\r\n if (items.length === 0)\r\n return '';\r\n\r\n let title = items[0][labelProp] + '';\r\n\r\n if (items.length > 1) {\r\n title += ` (+${items.length - 1})`;\r\n }\r\n\r\n return title;\r\n};\r\n\r\n/*\r\nEmits the following events:\r\n---------------------------\r\n\r\n'clear:before' {cancel: false}: will clear the whole selection. return false to abort.\r\n'clear': clearead the whole selection.\r\n'open' { list: DropList }: the drop list is opening\r\n'open:before' { list: DropList }: the drop list will open\r\n'close': the drop list is closing\r\n'addsel:before' {value, item, cancel: false}: an item selection is about to be added (in multi mode). return false to abort.\r\n'removesel:before' {value, item, cancel: false}: an item selection is about to be removed (in multi mode). return false to abort.\r\n'select:before' {value, item, cancel: false}: an item is about to be selected (in single mode). return false to abort.\r\n'addsel' {value, item}: an item selection has been added (in multi mode)\r\n'removesel' {value, item}: an item selection has been removed (in multi mode)\r\n'select' {value, item}: an item has been selected (in single mode)\r\n'search' {value}: input box value has changed\r\n'search:focus': input box has gained focus\r\n'search:blur': input box has lost focus\r\n'input:resize': input box resized\r\n'itemschanged' {term, mutated, count}: the current set of items has changed\r\n */\r\n\r\n// noinspection JSUnusedGlobalSymbols\r\nclass SelectBox {\r\n /**\r\n * @param {SelectBox.Options} options\r\n */\r\n constructor(options) {\r\n const o = { ...defaultOptions };\r\n\r\n for (let [key, value] of Object.entries(/**@type Object*/options))\r\n if (value !== undefined)\r\n o[key] = value;\r\n\r\n const p = this._p = {\r\n ownsEl: true,\r\n\r\n baseClassName: o.baseClassName,\r\n\r\n listOptions: o.listOptions,\r\n\r\n disabled: !!o.disabled,\r\n clearable: !!o.clearable,\r\n hasOpenIndicator: !!o.hasOpenIndicator,\r\n placeholder: o.placeholder,\r\n sortSelectedItems: !!o.sortSelectedItems,\r\n sortListItems: !!o.sortListItems,\r\n sortListCheckedFirst: !!o.sortListCheckedFirst,\r\n stickyValues: Array.isArray(o.stickyValues) ? new Set(o.stickyValues) : null,\r\n sortItemComparator: o.sortItemComparator,\r\n splitListCheckedGroups: !!o.splitListCheckedGroups,\r\n blurOnSingleSelection: o.blurOnSingleSelection,\r\n multi: o.multi,\r\n showSelection: o.showSelection,\r\n multiPlaceholderFormatter: o.multiPlaceholderFormatter,\r\n searchable: o.searchable,\r\n noResultsText: o.noResultsText,\r\n filterThrottleWindow: o.filterThrottleWindow,\r\n filterOnEmptyTerm: o.filterOnEmptyTerm,\r\n\r\n labelProp: o.labelProp,\r\n valueProp: o.valueProp,\r\n multiItemLabelProp: o.multiItemLabelProp,\r\n\r\n maxMultiItems: o.maxMultiItems,\r\n multiItemsRestLabelProvider: o.multiItemsRestLabelProvider,\r\n\r\n renderSingleItem: o.renderSingleItem,\r\n unrenderSingleItem: o.unrenderSingleItem,\r\n renderMultiItem: o.renderMultiItem,\r\n unrenderMultiItem: o.unrenderMultiItem,\r\n renderRestMultiItem: o.renderRestMultiItem,\r\n unrenderRestMultiItem: o.unrenderRestMultiItem,\r\n renderNoResultsItem: o.renderNoResultsItem,\r\n unrenderNoResultsItem: o.unrenderNoResultsItem,\r\n filterFn: o.filterFn,\r\n on: o.on || null,\r\n silenceEvents: true,\r\n mitt: mitt(),\r\n additionalClasses: o.additionalClasses,\r\n\r\n isLoadingMode: !!o.isLoadingMode,\r\n\r\n items: [],\r\n filteredItems: null,\r\n currentItemsView: [], // contains the final version of items sent to DropList\r\n itemsChanged: true,\r\n\r\n sink: new DomEventsSink(),\r\n\r\n /** @type ResizeObserver */\r\n resizeObserver: null,\r\n\r\n selectedItems: [],\r\n selectedValues: [],\r\n selectionChanged: true,\r\n resortBySelectionNeeded: false,\r\n\r\n throttledUpdateListItems: throttle(() => this._updateListItems(),\r\n o.filterThrottleWindow,\r\n { leading: true, trailing: true }),\r\n\r\n filterTerm: '',\r\n };\r\n\r\n let el = o.el;\r\n if (el instanceof Element) {\r\n p.ownsEl = false;\r\n } else {\r\n el = createElement('span');\r\n }\r\n\r\n setElementAttrs(el, {\r\n role: 'combobox',\r\n 'aria-haspopup': 'true',\r\n 'aria-expanded': 'false',\r\n });\r\n p.el = el;\r\n\r\n this._syncBaseClasses();\r\n this._renderBase();\r\n\r\n /** @type Element[] */\r\n p.multiItemEls = [];\r\n\r\n this.enable(!p.disabled);\r\n\r\n this._setupDropdownMenu();\r\n\r\n // --- Hook click\r\n p.sink\r\n .add(el, 'click', (evt) => {\r\n if (p.clearButtonWrapper && p.clearButtonWrapper.contains(evt.target)) {\r\n return;\r\n }\r\n\r\n if (!el.contains(document.activeElement)) {\r\n p.input.focus();\r\n // Go to end of input\r\n p.input.selectionStart = p.input.selectionEnd = p.input.value.length;\r\n }\r\n });\r\n\r\n // --- Handle default focus directly to search box\r\n p.sink.add(el, 'focus', evt => {\r\n const target = (/**Element*/evt.target);\r\n\r\n if (!el.contains(evt.relatedTarget) &&\r\n !hasClass(target, `${p.baseClassName}__search_field`) &&\r\n !hasClass(target, `${p.baseClassName}__item`)) {\r\n let field = el.querySelector(`.${p.baseClassName}__search_field`);\r\n field && field.focus();\r\n }\r\n }, true);\r\n\r\n p.sink\r\n .add(p.input, 'keydown', (/**KeyboardEvent*/event) => {\r\n this._handleInputKeydown(event);\r\n })\r\n .add(p.input, 'input', () => {\r\n this._resizeInput();\r\n });\r\n\r\n const focusInOutHandler = (() => {\r\n let t;\r\n return () => {\r\n if (t) {\r\n clearTimeout(t);\r\n }\r\n t = setTimeout(() => {\r\n toggleClass(el, `${p.baseClassName}__focus`, el.contains(document.activeElement));\r\n });\r\n };\r\n })();\r\n p.sink.add(el, 'focus', focusInOutHandler, true);\r\n p.sink.add(el, 'blur', focusInOutHandler, true);\r\n\r\n // --- Resize input on window change\r\n p.sink.add(window, 'resize', () => this._resizeInput());\r\n p.sink.add(window, 'orientationchange', () => this._resizeInput());\r\n\r\n if (window.ResizeObserver !== undefined) {\r\n p.resizeObserver = new ResizeObserver(() => {\r\n this._resizeInput();\r\n });\r\n p.resizeObserver.observe(p.el);\r\n }\r\n\r\n this.setItems(o.items);\r\n\r\n if (o.multi && Array.isArray(o.selectedValues)) {\r\n this.setSelectedValues(o.selectedValues);\r\n } else if (o.value != null) {\r\n this.setValue(o.value);\r\n }\r\n\r\n this._scheduleSync();\r\n\r\n this.silenceEvents = false;\r\n\r\n return this;\r\n }\r\n\r\n destroy() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n this[DestroyedSymbol] = true;\r\n\r\n const p = this._p;\r\n\r\n if (p.syncTimeout) {\r\n clearTimeout(p.syncTimeout);\r\n delete p.syncTimeout;\r\n }\r\n\r\n this._stopTrackingPresence();\r\n\r\n p.sink.remove();\r\n p.dropList && p.dropList.destroy();\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n this._cleanupSingleWrapper();\r\n\r\n if (p.unrenderMultiItem || p.unrenderRestMultiItem) {\r\n // Remove all item elements\r\n while (p.multiItemEls.length > 0) {\r\n // use fast path by removing in reverse\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n\r\n remove(p.list);\r\n remove(p.singleWrapper);\r\n remove(p.input);\r\n remove(p.inputBackBuffer);\r\n remove(p.clearButtonWrapper);\r\n remove(p.openIndicator);\r\n\r\n if (!p.ownsEl) {\r\n for (let name of Array.from(p.el.classList)) {\r\n if (name.startsWith(p.baseClassName)) {\r\n p.el.classList.remove(name);\r\n }\r\n }\r\n p.el.removeAttribute('role');\r\n p.el.removeAttribute('aria-haspopup');\r\n p.el.removeAttribute('aria-expanded');\r\n }\r\n\r\n p.resizeObserver?.disconnect();\r\n\r\n this._p = null;\r\n }\r\n\r\n get el() {\r\n return this._p.el;\r\n }\r\n\r\n /**\r\n * Enables the control\r\n * @param {boolean=true} enabled Should the control be enabled?\r\n * @returns {SelectBox}\r\n */\r\n enable(enabled) {\r\n const p = this._p;\r\n\r\n if (enabled === undefined) {\r\n enabled = true;\r\n }\r\n p.disabled = !enabled;\r\n p.el.setAttribute('aria-disabled', p.disabled.toString());\r\n p.input.disabled = !!p.disabled;\r\n\r\n const multiItemEls = p.multiItemEls;\r\n\r\n for (let itemEl of multiItemEls) {\r\n if (p.disabled) {\r\n itemEl.removeAttribute('tabindex');\r\n } else {\r\n itemEl.setAttribute('tabindex', '0');\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Is the control enabled?\r\n * @returns {boolean}\r\n */\r\n isEnabled() {\r\n return !this._p.disabled;\r\n }\r\n\r\n /**\r\n * Disables the control\r\n * @param {boolean=true} disabled Should the control be disabled?\r\n * @returns {SelectBox}\r\n */\r\n disable(disabled) {\r\n return this.enable(disabled === undefined ? false : !disabled);\r\n }\r\n\r\n /**\r\n * Is the control disabled?\r\n * @returns {boolean}\r\n */\r\n isDisabled() {\r\n return this._p.disabled;\r\n }\r\n\r\n /**\r\n * @param {string|string[]} classes\r\n * @returns {SelectBox}\r\n */\r\n setAdditionalClasses(classes) {\r\n const p = this._p;\r\n p.additionalClasses = classes;\r\n this._syncBaseClasses();\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.ItemBase[]} [items]\r\n * @param {boolean} [resetValues=true] should reset values to current values (essentially refresh the data based on items & values). If set to false, use setValue to set a fresh value\r\n * @returns {SelectBox}\r\n */\r\n setItems(items, resetValues = true) {\r\n const p = this._p;\r\n\r\n if (!items)\r\n items = [];\r\n\r\n p.items = items.slice(0);\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n if (resetValues) {\r\n this.setSelectedValues(this.getSelectedValues());\r\n }\r\n\r\n this._trigger('itemschanged', { term: null, mutated: true, count: this.getFilteredItemCount() });\r\n\r\n return this;\r\n }\r\n\r\n getFilteredItemCount() {\r\n const p = this._p;\r\n\r\n if (p.filteredItems)\r\n return p.filteredItems.length;\r\n\r\n if (p.items)\r\n return p.items.length;\r\n\r\n return 0;\r\n }\r\n\r\n isFilterPending() {\r\n const p = this._p;\r\n\r\n return !!(p.throttledUpdateListItems.isScheduled() ||\r\n (!p.filteredItems && (p.filterTerm || (p.filterOnEmptyTerm && p.filterFn))));\r\n }\r\n\r\n updateItemByValue(value, newItem) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n let existingItem = p.items.find(x => x[valueProp] === value);\r\n if (existingItem)\r\n Object.assign(existingItem, newItem);\r\n\r\n if (p.dropList) {\r\n p.dropList.updateItemByValue(value, newItem);\r\n }\r\n }\r\n\r\n /**\r\n * @returns {DropList.ItemBase[]|*}\r\n */\r\n getItems() {\r\n const p = this._p;\r\n return p.items;\r\n }\r\n\r\n /**\r\n * @param {boolean} clearable\r\n * @returns {SelectBox}\r\n */\r\n setClearable(clearable) {\r\n clearable = !!clearable;\r\n\r\n if (this._p.clearable === clearable)\r\n return this;\r\n\r\n this._p.clearable = !!clearable;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getClearable() {\r\n return this._p.clearable;\r\n }\r\n\r\n /**\r\n * @param {boolean} enabled\r\n * @returns {SelectBox}\r\n */\r\n setHasOpenIndicator(enabled) {\r\n enabled = !!enabled;\r\n\r\n if (this._p.hasOpenIndicator === enabled)\r\n return this;\r\n\r\n this._p.hasOpenIndicator = enabled;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getHasOpenIndicator() {\r\n return this._p.hasOpenIndicator;\r\n }\r\n\r\n /**\r\n * @param {string} placeholder\r\n * @returns {SelectBox}\r\n */\r\n setPlaceholder(placeholder) {\r\n this._p.placeholder = placeholder == null ? '' : String(placeholder);\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getPlaceHolder() {\r\n return this._p.placeholder;\r\n }\r\n\r\n /**\r\n * @param {string} term\r\n * @param {boolean} [performSearch=false] should actually perform the search, or just set the input's text?\r\n * @returns {SelectBox}\r\n */\r\n setSearchTerm(term, performSearch = false) {\r\n const p = this._p;\r\n\r\n if (!p.input) return this;\r\n\r\n p.input.value = term;\r\n\r\n this._scheduleSync('resize_input');\r\n\r\n if (performSearch) {\r\n p.filterTerm = p.input.value.trim();\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n this._trigger('search', { value: p.input.value });\r\n p.throttledUpdateListItems();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getSearchTerm() {\r\n const p = this._p;\r\n if (p.input)\r\n return p.input.value;\r\n return '';\r\n }\r\n\r\n /**\r\n * @param {boolean} sortSelectedItems\r\n * @returns {SelectBox}\r\n */\r\n setSortSelectedItems(sortSelectedItems) {\r\n const p = this._p;\r\n sortSelectedItems = !!sortSelectedItems;\r\n if (p.sortSelectedItems === sortSelectedItems)\r\n return this;\r\n\r\n p.sortSelectedItems = sortSelectedItems;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortSelectedItemsEnabled() {\r\n return this._p.sortSelectedItems;\r\n }\r\n\r\n /**\r\n * @param {boolean} sortListItems\r\n * @returns {SelectBox}\r\n */\r\n setSortListItems(sortListItems) {\r\n const p = this._p;\r\n sortListItems = !!sortListItems;\r\n if (p.sortListItems === sortListItems)\r\n return this;\r\n\r\n p.sortListItems = sortListItems;\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortListItemsEnabled() {\r\n return this._p.sortListItems;\r\n }\r\n\r\n /**\r\n * @param {boolean} sortListCheckedFirst\r\n * @returns {SelectBox}\r\n */\r\n setSortListCheckedFirst(sortListCheckedFirst) {\r\n const p = this._p;\r\n sortListCheckedFirst = !!sortListCheckedFirst;\r\n if (p.sortCheckedFirst === sortListCheckedFirst)\r\n return this;\r\n\r\n p.sortCheckedFirst = sortListCheckedFirst;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortListCheckedFirstEnabled() {\r\n return this._p.sortListCheckedFirst;\r\n }\r\n\r\n /**\r\n * @param {*[]} values\r\n * @returns {SelectBox}\r\n */\r\n setStickyValues(values) {\r\n const p = this._p;\r\n\r\n p.stickyValues = Array.isArray(values) ? new Set(values) : null;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {*[]}\r\n */\r\n getStickyValues() {\r\n return this._p.stickyValues ? Array.from(this._p.stickyValues) : null;\r\n }\r\n\r\n /**\r\n * @param {function(a: DropList.ItemBase, b: DropList.ItemBase):number} comparator\r\n * @returns {SelectBox}\r\n */\r\n setSortItemComparator(comparator) {\r\n const p = this._p;\r\n if (p.sortItemComparator === comparator)\r\n return this;\r\n\r\n p.sortItemComparator = comparator;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {function(a: DropList.ItemBase, b: DropList.ItemBase):number}\r\n */\r\n getSortItemComparator() {\r\n return this._p.sortItemComparator;\r\n }\r\n\r\n /**\r\n * @param {boolean} splitListCheckedGroups\r\n * @returns {SelectBox}\r\n */\r\n setSplitListCheckedGroups(splitListCheckedGroups) {\r\n const p = this._p;\r\n splitListCheckedGroups = !!splitListCheckedGroups;\r\n if (p.splitListCheckedGroups === splitListCheckedGroups)\r\n return this;\r\n\r\n p.splitListCheckedGroups = splitListCheckedGroups;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSplitListCheckedGroupsEnabled() {\r\n return this._p.splitListCheckedGroups;\r\n }\r\n\r\n /**\r\n * @param {boolean} showSelection\r\n * @returns {SelectBox}\r\n */\r\n setShowSelection(showSelection) {\r\n const p = this._p;\r\n showSelection = !!showSelection;\r\n if (p.showSelection === showSelection)\r\n return this;\r\n\r\n this._p.showSelection = showSelection;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isShowSelectionEnabled() {\r\n return this._p.showSelection;\r\n }\r\n\r\n /**\r\n * @param {function(items: DropList.ItemBase[]):string} formatter\r\n * @returns {SelectBox}\r\n */\r\n setMultiPlaceholderFormatter(formatter) {\r\n const p = this._p;\r\n\r\n if (p.multiPlaceholderFormatter === formatter)\r\n return this;\r\n\r\n this._p.multiPlaceholderFormatter = formatter;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {boolean|'touch'} value\r\n * @returns {SelectBox}\r\n */\r\n setBlurOnSingleSelection(value) {\r\n const p = this._p;\r\n if (p.blurOnSingleSelection === value)\r\n return this;\r\n\r\n this._p.blurOnSingleSelection = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean|'touch'}\r\n */\r\n getBlurOnSingleSelection() {\r\n return this._p.blurOnSingleSelection;\r\n }\r\n\r\n /**\r\n * @param {boolean} multi\r\n * @returns {SelectBox}\r\n */\r\n setMulti(multi) {\r\n const p = this._p;\r\n multi = !!multi;\r\n if (p.multi === multi)\r\n return this;\r\n\r\n p.multi = multi;\r\n\r\n this._setupDropdownMenu();\r\n\r\n // move to correct parent\r\n remove(p.clearButtonWrapper);\r\n delete p.clearButtonWrapper;\r\n\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isMultiEnabled() {\r\n return this._p.multi;\r\n }\r\n\r\n /**\r\n * @param {boolean} searchable\r\n * @returns {SelectBox}\r\n */\r\n setSearchable(searchable) {\r\n const p = this._p;\r\n searchable = !!searchable;\r\n if (p.searchable === searchable)\r\n return this;\r\n\r\n p.searchable = searchable;\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSearchableEnabled() {\r\n return this._p.searchable;\r\n }\r\n\r\n /**\r\n * @param {string} noResultsText\r\n * @returns {SelectBox}\r\n */\r\n setNoResultsText(noResultsText) {\r\n this._p.noResultsText = noResultsText;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getNoResultsText() {\r\n return this._p.noResultsText;\r\n }\r\n\r\n /**\r\n * @param {number} window\r\n * @returns {SelectBox}\r\n */\r\n setFilterThrottleWindow(window) {\r\n const p = this._p;\r\n p.filterThrottleWindow = window;\r\n\r\n let isScheduled = p.throttledUpdateListItems ? p.throttledUpdateListItems.isScheduled() : false;\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n p.throttledUpdateListItems = throttle(() => this._updateListItems(), p.filterThrottleWindow, true);\r\n\r\n if (isScheduled)\r\n p.throttledUpdateListItems();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {number}\r\n */\r\n getFilterThrottleWindow() {\r\n return this._p.filterThrottleWindow;\r\n }\r\n\r\n /**\r\n * @param {boolean} value\r\n * @returns {SelectBox}\r\n */\r\n setFilterOnEmptyTerm(value) {\r\n const p = this._p;\r\n p.filterOnEmptyTerm = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getFilterOnEmptyTerm() {\r\n return this._p.filterOnEmptyTerm;\r\n }\r\n\r\n /**\r\n * @param {DropList.Options} listOptions\r\n * @returns {SelectBox}\r\n */\r\n setListOptions(listOptions) {\r\n const p = this._p;\r\n p.listOptions = listOptions;\r\n this._setupDropdownMenu();\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox})|null\r\n */\r\n setRenderSingleItem(render, unrender) {\r\n const p = this._p;\r\n p.renderSingleItem = render;\r\n p.unrenderSingleItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderMultiItem(render, unrender) {\r\n const p = this._p;\r\n p.renderMultiItem = render;\r\n p.unrenderMultiItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderRestMultiItem(render, unrender) {\r\n const p = this._p;\r\n p.renderRestMultiItem = render;\r\n p.unrenderRestMultiItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderNoResultsItem(render, unrender) {\r\n const p = this._p;\r\n p.renderNoResultsItem = render;\r\n p.unrenderNoResultsItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setLabelProp(prop) {\r\n const p = this._p;\r\n p.labelProp = prop;\r\n\r\n\t\tif (p.dropList)\r\n\t\t\tp.dropList.setLabelProp(prop);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setValueProp(prop) {\r\n const p = this._p;\r\n p.valueProp = prop;\r\n\r\n\t\tif (p.dropList)\r\n\t\t\tp.dropList.setValueProp(prop);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setMultiItemLabelProp(prop) {\r\n const p = this._p;\r\n p.multiItemLabelProp = prop;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {number|null|undefined} value\r\n * @returns {SelectBox}\r\n */\r\n setMaxMultiItems(value) {\r\n const p = this._p;\r\n p.maxMultiItems = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {function(count: number, items: DropList.ItemBase[]):string|null|undefined} value\r\n * @returns {SelectBox}\r\n */\r\n setMultiItemsRestLabelProvider(value) {\r\n const p = this._p;\r\n p.multiItemsRestLabelProvider = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)} fn\r\n * @returns {SelectBox}\r\n */\r\n setFilterFn(fn) {\r\n const p = this._p;\r\n p.filterFn = fn;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)}\r\n */\r\n getFilterFn() {\r\n return this._p.filterFn;\r\n }\r\n\r\n /**\r\n * Focus on input element\r\n * @returns {SelectBox}\r\n */\r\n focusInput() {\r\n const p = this._p;\r\n\r\n if (p.input)\r\n p.input.focus();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Remvoe focus from the input element\r\n * @returns {SelectBox}\r\n */\r\n blurInput() {\r\n const p = this._p;\r\n\r\n if (p.input)\r\n p.input.blur();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Removes all selected items\r\n * @returns {SelectBox}\r\n */\r\n clear() {\r\n const p = this._p;\r\n\r\n let clearEvt = { cancel: false };\r\n this._trigger('clear:before', clearEvt);\r\n if (clearEvt.cancel)\r\n return this;\r\n\r\n p.selectedItems = [];\r\n p.selectedValues = [];\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._trigger('clear');\r\n\r\n if (this[DestroyedSymbol]) return this; // destroyed by event handler\r\n\r\n this._updateListItems();\r\n\r\n this._setInputText('');\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns a single value or an array of selected values - depending on `multi` prop\r\n * @public\r\n * @returns {*[]}\r\n */\r\n getValue() {\r\n const p = this._p;\r\n if (p.multi)\r\n return p.selectedValues.slice(0);\r\n else if (p.selectedValues.length > 0)\r\n return p.selectedValues[0];\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Selects the specified value or multiple values - depending on `multi` prop\r\n * @public\r\n * @param {*|*[]} value - if `multi`, then an array of values to select, otherwise - a single value to select\r\n * @returns {SelectBox}\r\n */\r\n setValue(value) {\r\n const p = this._p;\r\n if (p.multi)\r\n return this.setSelectedValues(Array.isArray(value) ? value : value !== undefined ? [value] : []);\r\n else\r\n return this.setSelectedValues(value !== undefined ? [value] : []);\r\n }\r\n\r\n /**\r\n * Returns an array of selected values\r\n * @public\r\n * @returns {*[]}\r\n */\r\n getSelectedValues() {\r\n const p = this._p;\r\n return p.selectedValues.slice(0);\r\n }\r\n\r\n /**\r\n * Selects the specified values\r\n * @public\r\n * @param {*[]} values - an array of *values* to select\r\n * @returns {SelectBox}\r\n */\r\n setSelectedValues(values) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (!p.multi) {\r\n values = values.slice(0, 1);\r\n }\r\n\r\n let set = new Set();\r\n let selectedValues = [];\r\n let selectedItems = [];\r\n\r\n for (let value of values) {\r\n if (set.has(value))\r\n continue;\r\n set.add(value);\r\n\r\n selectedValues.push(value);\r\n\r\n let item = p.items.find(x => x[valueProp] === value);\r\n if (item !== undefined) {\r\n selectedItems.push(item);\r\n } else {\r\n selectedItems.push({ [p.valueProp]: value });\r\n }\r\n }\r\n\r\n p.selectedValues = selectedValues;\r\n p.selectedItems = selectedItems;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._updateListItems();\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns the count of selected values\r\n * @public\r\n * @returns {number}\r\n */\r\n getSelectedValueCount() {\r\n const p = this._p;\r\n return p.selectedValues.length;\r\n }\r\n\r\n /**\r\n * Returns an array of selected items\r\n * @public\r\n * @returns {Array.<Object>}\r\n */\r\n getSelectedItems() {\r\n const p = this._p;\r\n return p.selectedItems.slice(0);\r\n }\r\n\r\n /**\r\n * Sets the specified items to \"checked\" mode.\r\n * An array of items is passed, not values, because we need to keep track if items,\r\n * and if we already have the array of items then this spares the process of searching for the items by values.\r\n * @public\r\n * @param {DropList.ItemBase[]} items - an array of *items* to select (not values)\r\n * @returns {SelectBox}\r\n */\r\n setSelectedItems(items) {\r\n this._setSelectedItems(items);\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {SelectBox}\r\n */\r\n openList() {\r\n const p = this._p;\r\n\r\n if (p.dropList.isVisible())\r\n return this;\r\n\r\n if (p.isLoadingMode && p.items.length === 0)\r\n return this;\r\n\r\n this._trigger('open:before', { list: p.dropList });\r\n\r\n p.dropList.show(this._getDropListPositionOptions());\r\n this._repositionDropList();\r\n\r\n // Another one in case the droplist position messed with screen layout.\r\n // If the out element's bounds stayed the same - nothing will be recalculated.\r\n // So this is *not* expensive.\r\n this._repositionDropList();\r\n\r\n if (p.dropList.hasFocusedItem()) {\r\n p.dropList.setFocusedItemAtIndex(p.dropList.getFocusedItemIndex());\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {SelectBox}\r\n */\r\n closeList() {\r\n const p = this._p;\r\n\r\n if (this[DestroyedSymbol])\r\n return this;\r\n\r\n if (!p.dropList.isVisible())\r\n return this;\r\n\r\n p.dropList.hide();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {boolean} [open]\r\n * @returns {SelectBox}\r\n */\r\n toggleList(open) {\r\n const p = this._p;\r\n\r\n let shouldOpen = open === undefined ? !p.dropList.isVisible() : !!open;\r\n\r\n if (shouldOpen)\r\n return this.openList();\r\n else return this.closeList();\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isListOpen() {\r\n return !!this._p.dropListVisible;\r\n }\r\n\r\n /**\r\n * @param {boolean} [on]\r\n * @returns {SelectBox}\r\n */\r\n toggleLoading(on) {\r\n return this.setIsLoadingMode(on === undefined ? !this.getIsLoadingMode() : !!on);\r\n }\r\n\r\n /**\r\n * @param {boolean} isLoadingMode\r\n * @returns {SelectBox}\r\n */\r\n setIsLoadingMode(isLoadingMode) {\r\n const p = this._p;\r\n\r\n isLoadingMode = isLoadingMode === undefined ? true : !!isLoadingMode;\r\n\r\n if (p.isLoadingMode === isLoadingMode)\r\n return this;\r\n\r\n p.isLoadingMode = isLoadingMode;\r\n\r\n if (p.isLoadingMode && p.items.length === 0 && this.isListOpen()) {\r\n this.closeList();\r\n } else if (!p.isLoadingMode && document.activeElement &&\r\n ((p.multi || p.searchable) && p.input.contains(document.activeElement) ||\r\n (!p.multi && !p.searchable) && p.el.contains(document.activeElement))) {\r\n this.openList();\r\n }\r\n\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getIsLoadingMode() {\r\n return this._p.isLoadingMode;\r\n }\r\n\r\n /**\r\n * Can be called in case that the selectbox was attached to the dom late and has a weird size.\r\n * @returns {SelectBox}\r\n */\r\n refreshSize() {\r\n this._resizeInput();\r\n return this;\r\n }\r\n\r\n /**\r\n * Register an event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n on(/**string|'*'*/event, /**Function?*/handler) {\r\n this._p.mitt.on(event, handler);\r\n return this;\r\n }\r\n\r\n /**\r\n * Register a one time event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n once(/**string|'*'*/event, /**Function?*/handler) {\r\n let wrapped = (value) => {\r\n this._p.mitt.off(event, wrapped);\r\n handler(value);\r\n };\r\n this._p.mitt.on(event, wrapped);\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove an `handler` for `event`, all events for `event`, or all events completely.\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n off(/**(string|'*')?*/event, /**Function?*/handler) {\r\n if (!event && !event) {\r\n this._p.mitt.all.clear();\r\n } else {\r\n this._p.mitt.off(event, handler);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Emit an event\r\n * @param {string} event\r\n * @param {any} value\r\n * @returns {SelectBox}\r\n */\r\n emit(/**string|'*'*/event, /**any?*/value) {\r\n this._p.mitt.emit(event, value);\r\n return this;\r\n }\r\n\r\n /** @private */\r\n _renderBase() {\r\n const p = this._p;\r\n\r\n if (!p.inputBackBuffer) {\r\n p.inputBackBuffer = createElement('span', {\r\n css: {\r\n position: 'absolute',\r\n zIndex: -1,\r\n left: 0,\r\n top: '-9999px',\r\n whiteSpace: 'pre',\r\n },\r\n });\r\n }\r\n\r\n if (!p.input) {\r\n p.inputWrapper = createElement('span',\r\n {\r\n class: `${p.baseClassName}__search_wrapper`,\r\n },\r\n p.input = createElement('input', {\r\n class: `${p.baseClassName}__search_field`,\r\n type: 'search',\r\n autocomplete: 'off',\r\n autocorrect: 'off',\r\n autocapitalize: 'off',\r\n spellcheck: 'false',\r\n role: 'textbox',\r\n 'aria-autocomplete': 'list',\r\n readOnly: !(p.searchable || p.multi),\r\n }),\r\n );\r\n }\r\n\r\n if (p.multi) {\r\n if (p.singleWrapper) {\r\n this._cleanupSingleWrapper();\r\n remove(p.singleWrapper);\r\n delete p.singleWrapper;\r\n }\r\n\r\n if (!p.list) {\r\n // Moving `inputWrapper` to a new parent may cause a 'blur' event, and an unwanted chain reaction!\r\n // So we're unregistering those events here.\r\n this._unregisterDropdownEvents();\r\n\r\n // Restore focus to this one later if we affected it\r\n const lastActiveElement = document.activeElement;\r\n\r\n p.list = createElement('ul', {\r\n class: `${p.baseClassName}__list`,\r\n });\r\n p.el.appendChild(p.list);\r\n p.list.appendChild(p.inputWrapper);\r\n p.el.classList.remove(`${p.baseClassName}__single`);\r\n p.el.classList.add(`${p.baseClassName}__multi`);\r\n\r\n // Hook clear and remove\r\n p.sink\r\n .add(p.list, 'click', (evt) => {\r\n if (!closestUntil(evt.target, `.${p.baseClassName}__item_remove`, evt.currentTarget))\r\n return;\r\n\r\n if (p.disabled) return;\r\n\r\n this._removeMultiItemFromEvent(\r\n /**@type Element*/\r\n closestUntil(evt.target, `.${p.baseClassName}__item`, evt.currentTarget),\r\n evt);\r\n })\r\n .add(p.list, 'keydown', (/**KeyboardEvent*/evt) => {\r\n if (!closestUntil(evt.target, `.${p.baseClassName}__item`, evt.currentTarget))\r\n return;\r\n\r\n this._handleMultiKeydown(evt);\r\n });\r\n\r\n if (lastActiveElement === p.input)\r\n p.input.focus();\r\n\r\n this._registerDropdownEvents();\r\n }\r\n } else {\r\n if (p.list) {\r\n remove(p.list);\r\n p.sink.remove(p.list);\r\n delete p.list;\r\n }\r\n\r\n if (!p.singleWrapper) {\r\n // Moving `inputWrapper` to a new parent may cause a 'blur' event, and an unwanted chain reaction!\r\n // So we're unregistering those events here.\r\n this._unregisterDropdownEvents();\r\n\r\n // Restore focus to this one later if we affected it\r\n const lastActiveElement = document.activeElement;\r\n\r\n p.singleWrapper = createElement('div', {\r\n class: `${p.baseClassName}__single_wrapper`,\r\n });\r\n p.el.appendChild(p.singleWrapper);\r\n p.el.appendChild(p.inputWrapper);\r\n p.el.classList.remove(`${p.baseClassName}__multi`);\r\n p.el.classList.add(`${p.baseClassName}__single`);\r\n\r\n if (lastActiveElement === p.input)\r\n p.input.focus();\r\n\r\n this._registerDropdownEvents();\r\n }\r\n }\r\n\r\n if (p.hasOpenIndicator !== !!p.openIndicator) {\r\n if (p.hasOpenIndicator) {\r\n p.openIndicator = createElement('span', { class: `${p.baseClassName}__open_indicator` });\r\n p.el.appendChild(p.openIndicator);\r\n } else {\r\n remove(p.openIndicator);\r\n delete p.openIndicator;\r\n p.el.classList.remove(`${p.baseClassName}__has_open_indicator`);\r\n }\r\n }\r\n\r\n if (p.isLoadingMode !== !!p.spinner) {\r\n if (p.isLoadingMode) {\r\n p.spinner = createElement('span', { class: `${p.baseClassName}__spinner` });\r\n p.el.appendChild(p.spinner);\r\n p.el.classList.add(`${p.baseClassName}__has_spinner`);\r\n } else {\r\n remove(p.spinner);\r\n delete p.spinner;\r\n p.el.classList.remove(`${p.baseClassName}__has_spinner`);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _syncBaseClasses() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el)\r\n return;\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.multi)\r\n classes.push(`${p.baseClassName}__multi`);\r\n else classes.push(`${p.baseClassName}__single`);\r\n\r\n if (this.isListOpen())\r\n classes.push(`${p.baseClassName}__open_list`);\r\n else classes.push(`${p.baseClassName}__closed_list`);\r\n\r\n if (p.hasOpenIndicator)\r\n classes.push(`${p.baseClassName}__has_open_indicator`);\r\n\r\n if (p.clearButtonWrapper)\r\n classes.push(`${p.baseClassName}__has_clear`);\r\n\r\n if (p.isLoadingMode)\r\n classes.push(`${p.baseClassName}__has_spinner`);\r\n\r\n if (p.selectedValues.length === 0)\r\n classes.push(`${p.baseClassName}__empty_selection`);\r\n\r\n if (p.selectedValues.length > 0)\r\n classes.push(`${p.baseClassName}__has_selection`);\r\n\r\n if (p.searchable || p.multi)\r\n classes.push(`${p.baseClassName}__searchable`);\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n el.className = classes.join(' ');\r\n }\r\n\r\n /** @private */\r\n _setupDropdownMenu() {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (p.dropList) {\r\n p.dropList.destroy();\r\n delete p.dropList;\r\n p.itemsChanged = true;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n\r\n const renderNoResultsItem = p.renderNoResultsItem;\r\n const unrenderNoResultsItem = p.unrenderNoResultsItem;\r\n const customRenderItem = (p.listOptions || {}).renderItem;\r\n const customUnrenderItem = (p.listOptions || {}).unrenderItem;\r\n\r\n const renderItem = (renderNoResultsItem || customRenderItem) ? (item, itemEl) => {\r\n if (item && item[valueProp] === NoResultsItemSymbol) {\r\n if (renderNoResultsItem && renderNoResultsItem(item, itemEl) !== false) {\r\n return true;\r\n }\r\n\r\n itemEl.appendChild(createElement('div', {\r\n class: 'droplist-no-results-content',\r\n textContent: p.noResultsText,\r\n }));\r\n return true;\r\n } else {\r\n if (customRenderItem)\r\n return customRenderItem(item, itemEl);\r\n }\r\n return false;\r\n } : null;\r\n\r\n const unrenderItem = (unrenderNoResultsItem || customRenderItem) ? (item, itemEl) => {\r\n if (item && item[valueProp] === NoResultsItemSymbol) {\r\n if (unrenderNoResultsItem)\r\n return unrenderNoResultsItem(item, itemEl);\r\n } else {\r\n if (customUnrenderItem)\r\n return customUnrenderItem(item, itemEl);\r\n }\r\n return false;\r\n } : null;\r\n\r\n const dropList = p.dropList = new DropList({\r\n virtualMinItems: 10,\r\n\r\n ...p.listOptions,\r\n\r\n renderItem: renderItem,\r\n unrenderItem: unrenderItem,\r\n\r\n multi: p.multi,\r\n capturesFocus: false,\r\n\r\n labelProp: p.labelProp,\r\n valueProp: p.valueProp,\r\n\r\n on: (name, event) => {\r\n switch (name) {\r\n case 'show:before': {\r\n p.dropListVisible = true;\r\n p.el.setAttribute('aria-expanded', 'true');\r\n p.el.classList.add(`${p.baseClassName}__open_list`);\r\n p.el.classList.remove(`${p.baseClassName}__closed_list`);\r\n\r\n if (p.resortBySelectionNeeded && (p.sortListCheckedFirst && p.multi))\r\n p.itemsChanged = true;\r\n\r\n this._updateListItems();\r\n this._trigger('open', { list: dropList });\r\n\r\n this._startTrackingPresence();\r\n\r\n p.sink.add(window, 'resize.trackposition', () => this._repositionDropList());\r\n\r\n let parent = p.el.parentNode;\r\n while (parent) {\r\n if (parent.scrollHeight > parent.offsetHeight ||\r\n parent.scrollWidth > parent.offsetWidth) {\r\n if (parent === document.documentElement) {\r\n parent = window;\r\n }\r\n p.sink.add(parent, 'scroll.trackposition', () => this._repositionDropList());\r\n }\r\n parent = parent.parentNode;\r\n }\r\n }\r\n break;\r\n\r\n case 'hide': {\r\n p.dropListVisible = false;\r\n p.el.setAttribute('aria-expanded', 'false');\r\n p.el.classList.remove(`${p.baseClassName}__open_list`);\r\n p.el.classList.add(`${p.baseClassName}__closed_list`);\r\n\r\n if (!p.multi) {\r\n this._setInputText('');\r\n this._scheduleSync();\r\n }\r\n\r\n this._trigger('close');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this._stopTrackingPresence();\r\n p.sink.remove(null, '.trackposition');\r\n }\r\n break;\r\n\r\n case 'check': {\r\n if (!p.multi) return;\r\n\r\n const item = /**@type DropList.Item*/event.item;\r\n const value = event.value;\r\n\r\n let checked = event.checked;\r\n if (event.isGroup) return; // Ignore groups\r\n\r\n let selEvt = { value: value, item: item, cancel: false };\r\n this._trigger((checked ? 'addsel' : 'removesel') + ':before', selEvt);\r\n\r\n if (selEvt.cancel) {\r\n // Rollback that check\r\n p.dropList.setItemChecked(value, !checked);\r\n return;\r\n }\r\n\r\n if (checked) {\r\n p.selectedItems.push(item);\r\n p.selectedValues.push(value);\r\n } else {\r\n const idx = p.selectedValues.indexOf(value);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n }\r\n }\r\n\r\n // If we are in context of group, then there are lots of syncs coming, so do not do it now\r\n const hasGroupSync = !!event.isCheckingGroup;\r\n\r\n if (p.showSelection) {\r\n if (checked) {\r\n if (dropList.itemCount() === 1) {\r\n this._setInputText('');\r\n }\r\n\r\n if (p.sortSelectedItems) {\r\n if (!hasGroupSync)\r\n this._scheduleSync('full');\r\n } else {\r\n if (p.maxMultiItems != null &&\r\n p.selectedItems.filter(x => !x._group).length > p.maxMultiItems) {\r\n this._scheduleSync('addOrUpdateMultiItemRestElement');\r\n } else {\r\n this._scheduleSync('addMultiItemElement', item);\r\n }\r\n\r\n if (!hasGroupSync)\r\n this._scheduleSync();\r\n }\r\n } else {\r\n if (p.maxMultiItems != null &&\r\n p.selectedItems.filter(x => !x._group).length === p.maxMultiItems) {\r\n this._scheduleSync('removeMultiItemRestElement');\r\n } else {\r\n this._scheduleSync('removeMultiItemElement', item);\r\n }\r\n\r\n if (!hasGroupSync)\r\n this._scheduleSync();\r\n }\r\n }\r\n\r\n this._trigger(checked ? 'addsel' : 'removesel', { value: value, item: item });\r\n }\r\n break;\r\n\r\n case 'groupcheck': {\r\n if (!p.multi) return;\r\n\r\n if (event.affectedItems) {\r\n this._scheduleSync(p.sortSelectedItems ? 'full' : null);\r\n }\r\n }\r\n break;\r\n\r\n case 'select': {\r\n if (p.multi) return;\r\n\r\n const item = event.item;\r\n const value = event.value;\r\n\r\n let selectEvt = { value: value, item: item, cancel: false };\r\n this._trigger('select:before', selectEvt);\r\n\r\n if (selectEvt.cancel)\r\n return;\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this._setSelectedItems([item]);\r\n this._trigger('select', { value: value, item: item });\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this.closeList();\r\n\r\n if (p.blurOnSingleSelection === 'touch' && hasTouchCapability ||\r\n p.blurOnSingleSelection !== 'touch' && p.blurOnSingleSelection) {\r\n p.input && p.input.blur();\r\n }\r\n }\r\n break;\r\n }\r\n },\r\n });\r\n\r\n this._registerDropdownEvents();\r\n }\r\n\r\n _unregisterDropdownEvents() {\r\n const p = this._p;\r\n\r\n p.sink.remove(null, '.dropdown');\r\n }\r\n\r\n _registerDropdownEvents() {\r\n const p = this._p;\r\n\r\n this._unregisterDropdownEvents();\r\n\r\n const dropList = p.dropList;\r\n if (!dropList) return;\r\n\r\n let avoidToggleFromClick = false,\r\n currentTouchId = null,\r\n suppressKeyPress = false,\r\n suppressKeyPressRepeat = false;\r\n\r\n const keyEventsTarget = p.multi || p.searchable ? p.input : p.el;\r\n\r\n p.sink\r\n .add(keyEventsTarget, 'keydown.dropdown', evt => {\r\n if ((/**@type HTMLInputElement*/evt.currentTarget).readOnly)\r\n return;\r\n\r\n suppressKeyPress = false;\r\n suppressKeyPressRepeat = false;\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n suppressKeyPress = true;\r\n evt.preventDefault();\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n if (dropList.isVisible())\r\n dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n if (dropList.isVisible())\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n if (dropList.isVisible()) {\r\n dropList.previous(evt);\r\n } else {\r\n this._movePrev();\r\n }\r\n break;\r\n case VALUE_DOWN:\r\n if (dropList.isVisible()) {\r\n dropList.next(evt);\r\n } else {\r\n this._moveNext();\r\n }\r\n break;\r\n\r\n }\r\n break;\r\n\r\n case VALUE_SPACE:\r\n if (p.lastKeyAllowsSpaceToggle) {\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n suppressKeyPress = true;\r\n suppressKeyPressRepeat = true;\r\n if (p.multi)\r\n dropList.toggleFocusedItem(evt);\r\n else dropList.triggerItemSelection(evt);\r\n evt.preventDefault();\r\n }\r\n }\r\n break;\r\n\r\n case VALUE_ENTER:\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n suppressKeyPress = true;\r\n suppressKeyPressRepeat = true;\r\n evt.preventDefault();\r\n dropList.triggerItemSelection(evt);\r\n }\r\n\r\n break;\r\n\r\n case VALUE_TAB:\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n dropList.triggerItemSelection(evt);\r\n }\r\n break;\r\n\r\n case VALUE_ESCAPE:\r\n if (dropList.isVisible()) {\r\n dropList.hide(evt);\r\n evt.preventDefault();\r\n }\r\n break;\r\n\r\n default:\r\n suppressKeyPressRepeat = true;\r\n dropList._keydownFreeType(evt);\r\n break;\r\n }\r\n\r\n p.lastKeyAllowsSpaceToggle = evt.key === VALUE_UP ||\r\n evt.key === VALUE_DOWN ||\r\n evt.key === VALUE_PAGE_UP ||\r\n evt.key === VALUE_PAGE_DOWN ||\r\n (evt.key === VALUE_SPACE && !!p.lastKeyAllowsSpaceToggle);\r\n })\r\n .add(keyEventsTarget, 'keypress.dropdown', evt => {\r\n if (suppressKeyPress) {\r\n suppressKeyPress = false;\r\n evt.preventDefault();\r\n return;\r\n }\r\n\r\n if (suppressKeyPressRepeat)\r\n return;\r\n\r\n if (evt.key === VALUE_ENTER ||\r\n (\r\n evt.key === VALUE_SPACE &&\r\n p.lastKeyAllowsSpaceToggle &&\r\n !p.multi &&\r\n !dropList.hasFocusedItem()\r\n )\r\n ) {\r\n this.toggleList();\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n return;\r\n }\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n evt.preventDefault();\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n if (dropList.isVisible())\r\n dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n if (dropList.isVisible())\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n if (dropList.isVisible()) {\r\n dropList.previous(evt);\r\n } else {\r\n this._movePrev();\r\n }\r\n break;\r\n case VALUE_DOWN:\r\n if (dropList.isVisible()) {\r\n dropList.next(evt);\r\n } else {\r\n this._moveNext();\r\n }\r\n break;\r\n }\r\n break;\r\n }\r\n });\r\n\r\n if (p.input) {\r\n p.sink\r\n .add(p.input, 'input.dropdown', () => {\r\n p.filterTerm = p.input.value.trim();\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n this._trigger('search', { value: p.input.value });\r\n\r\n p.throttledUpdateListItems();\r\n })\r\n .add(p.input, 'click.dropdown', () => {\r\n if (!p.multi && p.searchable) {\r\n this.openList();\r\n }\r\n })\r\n .add(p.input, 'focus.dropdown', () => {\r\n this._trigger('search:focus');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n avoidToggleFromClick = false;\r\n this.openList();\r\n\r\n avoidToggleFromClick = true;\r\n setTimeout(() => { avoidToggleFromClick = false; }, 10);\r\n })\r\n .add(p.input, 'blur.dropdown', () => {\r\n this._trigger('search:blur');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n this.closeList();\r\n });\r\n }\r\n\r\n p.sink\r\n .add(p.el, 'mousedown.dropdown', () => {\r\n if (!p.multi && !p.searchable && !avoidToggleFromClick) {\r\n this.toggleList();\r\n }\r\n avoidToggleFromClick = false;\r\n })\r\n .add(p.el, 'touchstart.dropdown', evt => {\r\n if (currentTouchId) return;\r\n currentTouchId = evt.changedTouches[0].identifier;\r\n\r\n if (this.isDisabled())\r\n return;\r\n\r\n if (closestUntil(evt.target, `.${p.baseClassName}__item,.${p.baseClassName}__clear`, p.el))\r\n return;\r\n\r\n let onTouchCancel = () => {\r\n currentTouchId = null;\r\n p.sink.remove(p.el, '.dropdown_touchextra');\r\n };\r\n\r\n (p.input || p.el).focus();\r\n\r\n p.sink\r\n .add(p.el, 'touchend.dropdown_touchextra', (tevt) => {\r\n let touch = Array.prototype.find.call(evt.changedTouches,\r\n touch => touch.identifier === currentTouchId);\r\n if (!touch) return onTouchCancel();\r\n\r\n tevt.preventDefault();\r\n onTouchCancel();\r\n })\r\n .add(p.el, 'touchmove.dropdown_touchextra', (tevt) => {\r\n tevt.preventDefault();\r\n })\r\n .add(p.el, 'touchcancel.dropdown_touchextra', onTouchCancel);\r\n });\r\n }\r\n\r\n _movePrev() {\r\n const p = this._p;\r\n\r\n if (this.isMultiEnabled()) return;\r\n\r\n let selectedItems = this.getSelectedItems();\r\n let items = p.filteredItems ?? p.items;\r\n if (p.currentItemsView && p.currentItemsView.length === items.length)\r\n items = p.currentItemsView;\r\n if ((items.length + (p.clearable ? 1 : 0)) > 1) {\r\n let nextIndex = selectedItems.length > 0 ? items.indexOf(selectedItems[0]) - 1 : (items.length - 1);\r\n if (nextIndex === -1 && !p.clearable)\r\n nextIndex = items.length - 1;\r\n this.setSelectedItems(nextIndex === -1 ? [] : [items[nextIndex]]);\r\n }\r\n }\r\n\r\n _moveNext() {\r\n const p = this._p;\r\n\r\n if (this.isMultiEnabled()) return;\r\n\r\n let selectedItems = this.getSelectedItems();\r\n let items = p.filteredItems ?? p.items;\r\n if (p.currentItemsView && p.currentItemsView.length === items.length)\r\n items = p.currentItemsView;\r\n if ((items.length + (p.clearable ? 1 : 0)) > 1) {\r\n let nextIndex = selectedItems.length > 0 ? items.indexOf(selectedItems[0]) + 1 : 0;\r\n if (nextIndex === items.length)\r\n nextIndex = p.clearable ? -1 : 0;\r\n this.setSelectedItems(nextIndex === -1 ? [] : [items[nextIndex]]);\r\n }\r\n }\r\n\r\n /** @private */\r\n _updateListItems() {\r\n const p = this._p;\r\n\r\n const dropList = p.dropList;\r\n if (!dropList || !p.dropListVisible)\r\n return;\r\n\r\n // For every search change, filteredItems is cleared.\r\n // If it's non-null here, then it means we have an extra call to _updateListItems, and not need to refilter.\r\n if (!p.filteredItems && (p.filterTerm || (p.filterOnEmptyTerm && p.filterFn))) {\r\n this._refilterItems();\r\n }\r\n\r\n if (p.itemsChanged || p.selectionChanged) {\r\n p.dropList._lastSerializedBox = null;\r\n }\r\n\r\n if (p.itemsChanged) {\r\n let items = p.filteredItems || p.items;\r\n if (p.sortListItems || (p.sortListCheckedFirst && p.multi)) {\r\n items = this._sortItems(items,\r\n p.sortListItems,\r\n p.sortListCheckedFirst && p.multi,\r\n p.splitListCheckedGroups);\r\n }\r\n dropList.removeAllItems();\r\n\r\n if (items.length === 0 && p.noResultsText) {\r\n items = [{\r\n [p.labelProp]: p.noResultsText,\r\n [p.valueProp]: NoResultsItemSymbol,\r\n _nointeraction: true,\r\n _nocheck: true,\r\n }];\r\n }\r\n\r\n dropList.addItems(items);\r\n p.currentItemsView = items;\r\n p.itemsChanged = false;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = false;\r\n }\r\n\r\n let hasRefocusedItem = false;\r\n\r\n if (p.selectionChanged) {\r\n if (p.multi) {\r\n p.dropList.setCheckedValues(p.selectedValues);\r\n } else {\r\n const singleItemIndex = p.dropList.itemIndexByValue(this.getValue());\r\n\r\n p.dropList\r\n .setFocusedItemAtIndex(singleItemIndex)\r\n .setSingleSelectedItemAtIndex(singleItemIndex);\r\n\r\n hasRefocusedItem = p.dropList.hasFocusedItem();\r\n }\r\n p.selectionChanged = false;\r\n }\r\n\r\n this._repositionDropList();\r\n\r\n if (hasRefocusedItem) {\r\n p.dropList.setFocusedItemAtIndex(p.dropList.getFocusedItemIndex());\r\n }\r\n }\r\n\r\n _refilterItems() {\r\n const p = this._p;\r\n\r\n const term = p.filterTerm;\r\n\r\n if (term || (p.filterOnEmptyTerm && p.filterFn)) {\r\n let fn = p.filterFn;\r\n\r\n let filteredItems;\r\n\r\n if (typeof fn === 'function') {\r\n filteredItems = p.filterFn(p.items, term);\r\n }\r\n\r\n // If there was no filter function, or it gave up on filtering.\r\n if (!Array.isArray(filteredItems)) {\r\n if (term) {\r\n const matcher = new RegExp(escapeRegex(term), 'i');\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n\r\n filteredItems = p.items.filter(x => {\r\n if (x._group) return true;\r\n return matcher.test(x[labelProp] || x[multiItemLabelProp]);\r\n });\r\n } else {\r\n filteredItems = null;\r\n }\r\n }\r\n\r\n p.filteredItems = filteredItems;\r\n\r\n if (filteredItems) {\r\n // Clean up groups without children\r\n\r\n let lastGroup = -1;\r\n let len = filteredItems.length;\r\n\r\n for (let i = 0; i < len; i++) {\r\n let item = filteredItems[i];\r\n\r\n if (item._group) {\r\n if (lastGroup !== -1 && lastGroup === i - 1) {\r\n // It was an empty group\r\n filteredItems.splice(lastGroup, 1);\r\n i--;\r\n len--;\r\n }\r\n\r\n lastGroup = i;\r\n }\r\n }\r\n\r\n if (lastGroup !== -1) {\r\n if (lastGroup === len - 1) {\r\n // It was an empty group\r\n filteredItems.splice(lastGroup, 1);\r\n }\r\n }\r\n }\r\n } else {\r\n p.filteredItems = null;\r\n }\r\n\r\n this._trigger('itemschanged', { term: term, mutated: false, count: this.getFilteredItemCount() });\r\n\r\n p.itemsChanged = true;\r\n }\r\n\r\n _setSelectedItems(items) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (p.multi) {\r\n p.selectedItems = items.filter(x => x[valueProp] !== undefined);\r\n p.selectedValues = p.selectedItems.map(x => x[valueProp]);\r\n } else {\r\n p.selectedItems = items.slice(0, 1);\r\n p.selectedValues = items.slice(0, 1).map(x => x[valueProp]);\r\n }\r\n\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._updateListItems();\r\n this._scheduleSync('full');\r\n }\r\n\r\n _scheduleSync(mode, data) {\r\n const p = this._p;\r\n\r\n if (!p.syncQueue)\r\n p.syncQueue = [];\r\n\r\n if (mode === 'full')\r\n p.syncQueue.length = 0;\r\n\r\n if (p.syncQueue.length === 0 || p.syncQueue[0].mode !== 'full')\r\n p.syncQueue.push({ mode: mode, data: data });\r\n\r\n if (p.syncTimeout)\r\n return;\r\n\r\n p.syncTimeout = setTimeout(() => {\r\n delete p.syncTimeout;\r\n let queue = p.syncQueue;\r\n delete p.syncQueue;\r\n this._performSync(queue);\r\n });\r\n }\r\n\r\n _performSync(queue) {\r\n const p = this._p;\r\n\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n for (let op of queue) {\r\n switch (op.mode) {\r\n case 'full':\r\n this._syncFull(true);\r\n break;\r\n\r\n case 'singleItem':\r\n this._syncSingleItem();\r\n break;\r\n\r\n case 'removeMultiItemElement': {\r\n if (p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n const valueProp = p.valueProp;\r\n const item = op.data,\r\n value = item[valueProp];\r\n\r\n let idx = p.multiItemEls.findIndex(x => x[ItemSymbol][valueProp] === value);\r\n if (idx !== -1) {\r\n this._removeMultiItemElementByIndex(idx);\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case 'addMultiItemElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n this._addMultiItemElement(op.data);\r\n }\r\n }\r\n break;\r\n\r\n case 'addOrUpdateMultiItemRestElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n this._addMultiItemRestElement();\r\n }\r\n }\r\n break;\r\n\r\n case 'removeMultiItemRestElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n let itemEl = p.multiItemEls[p.multiItemEls.length - 1];\r\n if (itemEl?.[ItemSymbol]?.[p.valueProp] === RestMultiItemsSymbol) {\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case 'resize_input': {\r\n this._resizeInput();\r\n }\r\n break;\r\n\r\n default:\r\n this._syncFull(false);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n _cleanupSingleWrapper() {\r\n const p = this._p;\r\n\r\n if (!p.singleWrapper) return;\r\n\r\n if (p.unrenderSingleItem && p.singleWrapper.childNodes.length > 0) {\r\n try {\r\n p.unrenderSingleItem(p.singleWrapper[ItemSymbol], p.singleWrapper);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n }\r\n\r\n delete p.singleWrapper[ItemSymbol];\r\n p.singleWrapper.innerHTML = '';\r\n }\r\n\r\n /**\r\n * @param {number} index\r\n * @private\r\n */\r\n _removeMultiItemElementByIndex(index) {\r\n const p = this._p, multiItemEls = p.multiItemEls;\r\n\r\n if (multiItemEls.length > index) {\r\n const itemEl = multiItemEls[index];\r\n const item = itemEl[ItemSymbol];\r\n\r\n let unrender = item?.[p.valueProp] === RestMultiItemsSymbol\r\n ? p.unrenderRestMultiItem ?? p.unrenderMultiItem\r\n : p.unrenderMultiItem;\r\n\r\n if (unrender && itemEl.childNodes.length > 0) {\r\n try {\r\n unrender(item, itemEl);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n }\r\n remove(itemEl);\r\n\r\n // fastpath\r\n if (index === multiItemEls.length - 1) multiItemEls.pop();\r\n else multiItemEls.splice(index, 1);\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @private\r\n */\r\n _renderSingleItemContent(item) {\r\n const p = this._p;\r\n\r\n if (!p.renderSingleItem || p.renderSingleItem(item, p.singleWrapper) === false) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n\r\n let label = item[multiItemLabelProp] || item[labelProp];\r\n if (label === null || label === undefined)\r\n label = '';\r\n\r\n p.singleWrapper.appendChild(document.createTextNode(label));\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @param {Element} itemEl\r\n * @private\r\n */\r\n _renderMultiItemContent(item, itemEl) {\r\n const p = this._p;\r\n\r\n let render = item[p.valueProp] === RestMultiItemsSymbol\r\n ? p.renderRestMultiItem ?? p.renderMultiItem\r\n : p.renderMultiItem;\r\n\r\n if (!render || render(item, itemEl) === false) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n const label = item[multiItemLabelProp] || item[labelProp];\r\n itemEl.appendChild(createElement('span', {\r\n textContent: label,\r\n }));\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @private\r\n */\r\n _addMultiItemElement(item) {\r\n const p = this._p;\r\n const itemEl = this._renderMultiItem(item);\r\n if (!itemEl) return;\r\n\r\n before(p.inputWrapper, itemEl);\r\n p.multiItemEls.push(itemEl);\r\n }\r\n\r\n /** @private */\r\n _addMultiItemRestElement() {\r\n const p = this._p;\r\n\r\n let items = p.selectedItems.slice(0);\r\n let count = items.filter(x => !x._group).length - p.maxMultiItems;\r\n let label = p.multiItemsRestLabelProvider\r\n ? p.multiItemsRestLabelProvider(count, items)\r\n : `+ ${count}`;\r\n\r\n this._addMultiItemElement({\r\n items: items,\r\n [p.valueProp]: RestMultiItemsSymbol,\r\n [p.labelProp]: label,\r\n });\r\n }\r\n\r\n /** @private */\r\n _syncClearButton() {\r\n const p = this._p;\r\n\r\n // Set clear button\r\n if (p.selectedItems.length > 0 && p.clearable && p.showSelection) {\r\n if (!p.clearButtonWrapper) {\r\n p.clearButtonWrapper = createElement(\r\n p.multi ? 'li' : 'span',\r\n { class: `${p.baseClassName}__clear` },\r\n p.clearButton = createElement('button'));\r\n if (p.multi)\r\n append(p.list, p.clearButtonWrapper);\r\n else append(p.el, p.clearButtonWrapper);\r\n p.el.classList.add(`${p.baseClassName}__has_clear`);\r\n\r\n p.sink.add(p.clearButton, 'click', () => {\r\n if (this.isDisabled()) return;\r\n this.clear();\r\n });\r\n }\r\n } else {\r\n if (p.clearButtonWrapper) {\r\n p.sink.remove(p.clearButton, 'click');\r\n\r\n remove(p.clearButtonWrapper);\r\n delete p.clearButtonWrapper;\r\n delete p.clearButton;\r\n p.el.classList.remove(`${p.baseClassName}__has_clear`);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n _syncPlaceholder() {\r\n const p = this._p;\r\n\r\n let placeholder = '';\r\n\r\n if (p.multi && !p.showSelection) {\r\n if (typeof p.multiPlaceholderFormatter === 'function') {\r\n placeholder = p.multiPlaceholderFormatter(p.selectedItems);\r\n } else {\r\n placeholder = defaultMultiPlaceholderFormatter(p.selectedItems, p.labelProp);\r\n }\r\n } else if (p.selectedItems.length === 0 || !p.showSelection) {\r\n placeholder = p.placeholder == null ? '' : (p.placeholder + '');\r\n }\r\n\r\n // Set input placeholder\r\n p.input.setAttribute('placeholder', placeholder);\r\n }\r\n\r\n /** @private */\r\n _syncSingleItem() {\r\n const p = this._p;\r\n\r\n if (p.singleWrapper)\r\n this._cleanupSingleWrapper();\r\n\r\n const items = p.selectedItems;\r\n\r\n if (items.length > 0) {\r\n this._renderSingleItemContent(items[0]);\r\n p.singleWrapper[ItemSymbol] = items[0];\r\n }\r\n }\r\n\r\n /**\r\n * Syncs render state, selected items, and position\r\n * @param {boolean=false} fullItemsRender Should re-render all items?\r\n * @returns {SelectBox}\r\n */\r\n _syncFull(fullItemsRender) {\r\n const p = this._p;\r\n\r\n this._renderBase();\r\n this._syncClearButton();\r\n this._syncPlaceholder();\r\n\r\n fullItemsRender = p.multi && p.showSelection && (fullItemsRender || p.selectedItems.length !== p.multiItemEls.length);\r\n\r\n if (fullItemsRender || !p.showSelection || !p.multi) {\r\n // Remove all item elements\r\n while (p.multiItemEls.length > 0) {\r\n // use fast path by removing in reverse\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n\r\n if (p.multi) {\r\n if (fullItemsRender) {\r\n const items = p.selectedItems;\r\n\r\n // Sort these\r\n if (p.sortSelectedItems) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp,\r\n valueProp = p.valueProp,\r\n stickyValues = p.stickyValues;\r\n\r\n const comparator = p.sortItemComparator || ((a, b) => {\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n const aLabel = a[multiItemLabelProp] || a[labelProp];\r\n const bLabel = b[multiItemLabelProp] || b[labelProp];\r\n return aLabel < bLabel ? -1 : (aLabel > bLabel ? 1 : 0);\r\n });\r\n\r\n items.sort(comparator);\r\n\r\n p.selectedValues = items.map(x => x[valueProp]);\r\n }\r\n\r\n let actualItemCount = 0;\r\n let max = p.maxMultiItems;\r\n let addRestItem = false;\r\n\r\n // Add item elements\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i]._group) continue;\r\n\r\n if (max != null && actualItemCount === max) {\r\n addRestItem = true;\r\n break;\r\n }\r\n\r\n actualItemCount++;\r\n this._addMultiItemElement(items[i]);\r\n }\r\n\r\n if (addRestItem) {\r\n this._addMultiItemRestElement();\r\n }\r\n }\r\n } else if (!p.multi) {\r\n this._syncSingleItem();\r\n }\r\n\r\n if (getRootNode(p.el) !== document)\r\n return this;\r\n\r\n toggleClass(p.el, `${p.baseClassName}__empty_selection`, p.selectedValues.length === 0);\r\n toggleClass(p.el, `${p.baseClassName}__has_selection`, p.selectedValues.length > 0);\r\n\r\n if (p.searchable || p.multi) {\r\n if (p.input) p.input.readOnly = false;\r\n p.el.classList.add(`${p.baseClassName}__searchable`);\r\n } else {\r\n if (p.input) p.input.readOnly = true;\r\n p.el.classList.remove(`${p.baseClassName}__searchable`);\r\n }\r\n\r\n // Update input size\r\n this._resizeInput()._updateListItems();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} event\r\n * @param {*} [data]\r\n * @private\r\n */\r\n _trigger(event, data) {\r\n const p = this._p;\r\n if (p.on)\r\n p.on(event, ...(data === undefined ? [] : [data]));\r\n p.mitt.emit(event, data);\r\n }\r\n\r\n /**\r\n * Render a multi item\r\n * @param {Object} item\r\n * @returns {Element|null}\r\n * @private\r\n */\r\n _renderMultiItem(item) {\r\n const p = this._p;\r\n\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n const label = item[multiItemLabelProp] ?? item[labelProp];\r\n if (label === false)\r\n return null;\r\n\r\n const itemEl = createElement('li',\r\n {\r\n class: `${p.baseClassName}__item`,\r\n tabindex: '0',\r\n title: label,\r\n },\r\n [\r\n createElement('span', {\r\n class: `${p.baseClassName}__item_remove`,\r\n role: 'presentation',\r\n }),\r\n ],\r\n );\r\n\r\n this._renderMultiItemContent(item, itemEl);\r\n\r\n itemEl[ItemSymbol] = item;\r\n\r\n return itemEl;\r\n }\r\n\r\n /**\r\n * Removes a specific multi item by user event\r\n * @param {Element} itemEl\r\n * @param {Event} originatingEvent\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _removeMultiItemFromEvent(itemEl, originatingEvent) {\r\n const p = this._p;\r\n\r\n let nextFocus;\r\n if (/key/.test(originatingEvent.type)) {\r\n const kEvent = /**@type KeyboardEvent*/originatingEvent;\r\n if (kEvent.key === VALUE_DELETE) { // Delete\r\n nextFocus = next(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n } else if (kEvent.key === VALUE_BACK_SPACE) { // Backspace\r\n nextFocus = prev(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n }\r\n } else if (/click|mouse|touch/.test(originatingEvent.type)) {\r\n nextFocus = next(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n }\r\n\r\n const item = itemEl[ItemSymbol], value = item[p.valueProp];\r\n\r\n if (item !== undefined) {\r\n if (value === RestMultiItemsSymbol) {\r\n let items = p.selectedItems.filter(x => !x._group).slice(p.maxMultiItems);\r\n let itemsToRemove = [];\r\n\r\n for (let item of items) {\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (!removeselEvt.cancel)\r\n itemsToRemove.push(item);\r\n }\r\n\r\n if (itemsToRemove.length > 0) {\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n\r\n for (let item of itemsToRemove) {\r\n // sync selection\r\n let idx = p.selectedItems.indexOf(item);\r\n if (idx === -1)\r\n idx = p.selectedValues.indexOf(value[p.valueProp]);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n }\r\n }\r\n\r\n if (items.length > itemsToRemove.length) {\r\n this._addMultiItemRestElement();\r\n }\r\n\r\n if (itemsToRemove.length > 0) {\r\n this._scheduleSync();\r\n }\r\n } else {\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (removeselEvt.cancel)\r\n return this;\r\n\r\n this._removeMultiItem(item);\r\n\r\n // trigger event\r\n this._trigger('removesel', { value: value, item: item });\r\n }\r\n }\r\n\r\n if (!nextFocus) {\r\n nextFocus = p.el.querySelector(`.${p.baseClassName}__item, .${p.baseClassName}__search_field`);\r\n }\r\n\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n\r\n nextFocus && nextFocus.focus();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @param {boolean} [populate]\r\n * @private\r\n */\r\n _removeMultiItem(item, populate = false) {\r\n const p = this._p;\r\n const valueProp = p.valueProp,\r\n labelProp = p.labelProp;\r\n const value = item[valueProp];\r\n\r\n // sync selection\r\n let idx = p.selectedItems.indexOf(item);\r\n if (idx === -1)\r\n idx = p.selectedValues.indexOf(value);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n\r\n // sync multi item element\r\n idx = p.multiItemEls.findIndex(x => x[ItemSymbol] === item);\r\n if (idx === -1)\r\n idx = p.multiItemEls.findIndex(x => x[ItemSymbol][valueProp] === value);\r\n if (idx !== -1) {\r\n this._removeMultiItemElementByIndex(idx);\r\n }\r\n\r\n if (populate) {\r\n this._setInputText(item[p.multiItemLabelProp] || item[labelProp]);\r\n\r\n p.input.focus();\r\n\r\n // Go to end of input\r\n p.input.selectionStart = p.input.selectionEnd = p.input.value.length;\r\n }\r\n\r\n // sync\r\n this._scheduleSync();\r\n }\r\n\r\n /**\r\n * @param {*} value\r\n * @private\r\n */\r\n _setInputText(value) {\r\n const p = this._p;\r\n\r\n p.input.value = value == null ? '' : String(value);\r\n\r\n p.filterTerm = '';\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n }\r\n\r\n /**\r\n * Update input size to current state\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _resizeInput() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el.parentNode || !document.body.contains(el))\r\n return this;\r\n\r\n const input = p.input, backBufferEl = p.inputBackBuffer;\r\n\r\n let inputValue = input.value || input.placeholder;\r\n toggleClass(el, `${p.baseClassName}__has_input`, !!inputValue);\r\n toggleClass(el, `${p.baseClassName}__empty_input`, !inputValue);\r\n\r\n let hasResize = false;\r\n\r\n if (p.multi && p.multiItemEls.length === 0 && p.showSelection) {\r\n // Full width of list wrapper\r\n input.style.width = ''; // reset first\r\n\r\n let beforeWidth = 0, afterWidth = 0;\r\n\r\n let beforeStyle = getComputedStyle(p.list || el, '::before');\r\n if (beforeStyle.content &&\r\n beforeStyle.content !== 'none' &&\r\n beforeStyle.position !== 'absolute' &&\r\n beforeStyle.float !== 'none') {\r\n beforeWidth = getPseudoElementWidth(p.list || el, '::before', true, true, true);\r\n }\r\n\r\n let afterStyle = getComputedStyle(p.list || el, '::after');\r\n if (afterStyle.content &&\r\n afterStyle.content !== 'none' &&\r\n afterStyle.position !== 'absolute' &&\r\n afterStyle.float !== 'none') {\r\n afterWidth = getPseudoElementWidth(p.list || el, '::after', true, true, true);\r\n }\r\n\r\n let contentWidth = getElementWidth(p.list || el); // calculate width\r\n contentWidth -= beforeWidth + afterWidth;\r\n\r\n input.style.width = `${contentWidth}px`;\r\n\r\n hasResize = true; // We may want to track the resize here better to avoid unnecessary event\r\n } else {\r\n // Introduce backbuffer to DOM\r\n setCssProps(backBufferEl, getCssProps(input, inputBackbufferCssProps));\r\n backBufferEl.textContent = inputValue;\r\n el.appendChild(backBufferEl);\r\n\r\n // Measure these\r\n const computedStyle = getComputedStyle(input);\r\n const paddingTotal = (parseFloat(computedStyle.paddingLeft) || 0) + (parseFloat(computedStyle.paddingRight) || 0);\r\n const minWidth = (parseFloat(computedStyle['font-size']) || 0) * 0.75 + paddingTotal;\r\n const backBufferWidth = getElementWidth(backBufferEl, true, true);\r\n const currentWidth = getElementWidth(input, true, true);\r\n let newWidth = Math.max(backBufferWidth, minWidth);\r\n\r\n // Compare\r\n if (newWidth !== currentWidth) {\r\n // Update if needed\r\n setElementWidth(input, newWidth, true, true);\r\n\r\n let bordersWidth = (parseFloat(computedStyle.borderLeftWidth) || 0) + (parseFloat(computedStyle.borderRightWidth) || 0);\r\n let scrollWidth = input.scrollWidth + bordersWidth;\r\n\r\n if (scrollWidth > newWidth) {\r\n // consider scrollWidth delta\r\n let delta = scrollWidth - newWidth;\r\n input.style.width = `${parseFloat(input.style.width) + delta}px`;\r\n\r\n newWidth += delta;\r\n }\r\n\r\n // sync the single value wrapper.\r\n // it is meant as a preview or spacer for single selection value, so its appropriate to sync it with this width\r\n if (p.singleWrapper) {\r\n p.singleWrapper.style.width = '';\r\n\r\n if (inputValue) {\r\n let width = newWidth - paddingTotal - bordersWidth;\r\n if (getElementWidth(p.singleWrapper, false, false) < width) {\r\n setElementWidth(p.singleWrapper, width, false, false);\r\n }\r\n }\r\n }\r\n\r\n hasResize = true;\r\n }\r\n\r\n // Remove backbuffer from DOM\r\n remove(backBufferEl);\r\n }\r\n\r\n if (hasResize)\r\n this._trigger('input:resize');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Update autocomplete position if needed\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _repositionDropList() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!p.dropList || !p.dropListVisible || !p.dropList.isVisible())\r\n return this;\r\n\r\n const box = el.getBoundingClientRect();\r\n const serialized = box.left + ',' + box.top + ',' + box.right + ',' + box.bottom;\r\n\r\n if (p.dropList._lastSerializedBox !== serialized) {\r\n p.dropList.relayout(this._getDropListPositionOptions());\r\n p.dropList._lastSerializedBox = serialized;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {KeyboardEvent} event\r\n * @private\r\n */\r\n _handleInputKeydown(event) {\r\n const p = this._p;\r\n\r\n const target = (/**@type HTMLInputElement*/event.target);\r\n\r\n if (event.key === VALUE_BACK_SPACE && event.ctrlKey && target.value.length === 0) {\r\n this.clear();\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_BACK_SPACE && target.value.length === 0) {\r\n const itemEl = p.multiItemEls[p.multiItemEls.length - 1];\r\n if (!itemEl || itemEl[ItemSymbol].value === undefined)\r\n return;\r\n\r\n const item = itemEl[ItemSymbol], value = item[p.valueProp];\r\n\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (removeselEvt.cancel)\r\n return;\r\n\r\n this._removeMultiItem(item, true);\r\n\r\n // trigger event\r\n this._trigger('removesel', { value: value, item: item });\r\n\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * @param {KeyboardEvent} event\r\n * @private\r\n */\r\n _handleMultiKeydown(event) {\r\n const p = this._p;\r\n\r\n if (p.disabled) return;\r\n\r\n const isRtl = getComputedStyle(p.el).direction === 'rtl';\r\n\r\n let nextFocus;\r\n\r\n if (event.key === (isRtl ? VALUE_LEFT : VALUE_RIGHT)) { // Next arrow\r\n nextFocus = next(/**@type Element*/event.target, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n nextFocus && nextFocus.focus();\r\n\r\n event.preventDefault();\r\n } else if (event.key === (isRtl ? VALUE_RIGHT : VALUE_LEFT)) { // Prev arrow\r\n nextFocus = prev(/**@type Element*/event.target, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n nextFocus && nextFocus.focus();\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_BACK_SPACE && event.ctrlKey) { // Ctrl + Backspace\r\n const multiItemEls = [];\r\n let itemEl = event.target;\r\n while (itemEl) {\r\n multiItemEls.push(itemEl);\r\n itemEl = prev(/**@type Element*/itemEl, `.${p.baseClassName}__item`);\r\n }\r\n\r\n while (multiItemEls.length) {\r\n this._removeMultiItemFromEvent(multiItemEls.shift(), event);\r\n }\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_DELETE || event.key === VALUE_BACK_SPACE) { // Delete / Backspace\r\n this._removeMultiItemFromEvent(closestUntil(event.target, `.${p.baseClassName}__item`, p.el), event);\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * @returns {DropList.PositionOptions}\r\n * @private\r\n */\r\n _getDropListPositionOptions() {\r\n const p = this._p;\r\n\r\n return {\r\n target: /**@type Element*/p.el,\r\n offset: { x: 0, y: 0 },\r\n anchor: { x: 'start', y: 'bottom' },\r\n position: { x: 'start', y: 'top' },\r\n updateWidth: true,\r\n };\r\n }\r\n\r\n /** @private */\r\n _startTrackingPresence() {\r\n const p = this._p;\r\n\r\n this._stopTrackingPresence();\r\n\r\n p.presenceInt = setInterval(function () {\r\n if (getRootNode(p.el) !== document)\r\n this.hide();\r\n }, 200);\r\n }\r\n\r\n /** @private */\r\n _stopTrackingPresence() {\r\n const p = this._p;\r\n\r\n if (p.presenceInt) {\r\n clearInterval(p.presenceInt);\r\n p.presenceInt = null;\r\n }\r\n }\r\n\r\n /**\r\n * Handles sorting, and putting checked items first (according to selectedValues, not item.checked)\r\n * @private\r\n * @param {DropList.ItemBase[]} items\r\n * @param {boolean=false} sort\r\n * @param {boolean=false} sortCheckedFirst\r\n * @param {boolean=false} splitCheckedGroups\r\n * @returns {DropList.ItemBase[]}\r\n */\r\n _sortItems(items, sort, sortCheckedFirst, splitCheckedGroups) {\r\n const p = this._p;\r\n\r\n if (!sort && !sortCheckedFirst)\r\n return items; // Nothing to do\r\n\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp,\r\n valueProp = p.valueProp,\r\n stickyValues = p.stickyValues,\r\n comparator = p.sortItemComparator || ((a, b) => {\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n const aLabel = a[labelProp] || a[multiItemLabelProp];\r\n const bLabel = b[labelProp] || b[multiItemLabelProp];\r\n\r\n if (aLabel < bLabel) return -1;\r\n if (aLabel > bLabel) return 1;\r\n\r\n return 0;\r\n });\r\n\r\n let group = [], stickyGroup = null;\r\n let groups = [group];\r\n const selectedValuesSet = new Set(p.selectedValues);\r\n let item, i, len;\r\n\r\n // Split to groups\r\n for (i = 0, len = items.length; i < len; i++) {\r\n item = items[i];\r\n if (item._group && group.length) {\r\n group = [];\r\n groups.push(group);\r\n }\r\n group.push(item);\r\n }\r\n\r\n // Leftover\r\n if (!group.length) {\r\n groups.length = 0;\r\n }\r\n\r\n // Non-grouped sticky should be first\r\n if (stickyValues && items.length > 0 && !items[0]._group) {\r\n stickyGroup = groups[0].filter(x => stickyValues.has(x[valueProp]));\r\n if (stickyGroup.length > 0) {\r\n groups[0] = groups[0].filter(x => !stickyValues.has(x[valueProp]));\r\n }\r\n }\r\n\r\n if (sort) {\r\n // Sort the groups\r\n groups.sort((a, b) => {\r\n a = a[0];\r\n b = b[0];\r\n\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n // A \"group\" without a group item will come first\r\n if (!a._group && b._group) return -1;\r\n if (a._group && !b._group) return 1;\r\n\r\n return comparator(a, b);\r\n });\r\n }\r\n\r\n if (stickyGroup && stickyGroup.length > 0) {\r\n groups.unshift(stickyGroup);\r\n }\r\n\r\n // Now we have an array of groups, possibly sorted.\r\n // Each group is an array that begins with the group item (group name/id).\r\n // A group could possible start with a normal item, if it's a \"default group\", which had no group item.\r\n\r\n const checkedGroups = [], uncheckedGroups = [];\r\n\r\n // Iterate groups\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n // Sort each group\r\n group.sort((a, b) => {\r\n\r\n // Grouping items come first\r\n if (a._group && !b._group) return -1;\r\n if (!a._group && b._group) return 1;\r\n\r\n if (sortCheckedFirst) {\r\n const aChecked = selectedValuesSet.has(a[valueProp]);\r\n const bChecked = selectedValuesSet.has(b[valueProp]);\r\n\r\n if (aChecked && !bChecked) return -1;\r\n if (!aChecked && bChecked) return 1;\r\n }\r\n\r\n if (sort) {\r\n return comparator(a, b);\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n uncheckedGroups.push(group);\r\n }\r\n\r\n if (sortCheckedFirst && splitCheckedGroups) {\r\n\r\n let virtualGroup;\r\n\r\n // Iterate groups\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n if (group === stickyGroup) {\r\n checkedGroups.push(stickyGroup);\r\n let sgi = uncheckedGroups.indexOf(stickyGroup);\r\n if (sgi !== -1) {\r\n uncheckedGroups.splice(sgi, 1);\r\n }\r\n continue;\r\n }\r\n\r\n virtualGroup = null;\r\n\r\n for (let gi = 0, gilen = group.length; gi < gilen; gi++) {\r\n item = group[gi];\r\n if (item._group) continue;\r\n if (!selectedValuesSet.has(item[p.valueProp])) break;\r\n\r\n if (!virtualGroup) {\r\n virtualGroup = [];\r\n if (group[0]._group) {\r\n virtualGroup.push(group[0]);\r\n }\r\n }\r\n\r\n virtualGroup.push(item);\r\n group.splice(gi--, 1);\r\n gilen--;\r\n }\r\n\r\n if (virtualGroup) {\r\n checkedGroups.push(virtualGroup);\r\n if (group.length === 0 || (group.length === 1 && group[0]._group)) {\r\n groups.splice(g--, 1);\r\n glen--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Prepare the target array\r\n const joined = [];\r\n joined.length = items.length;\r\n let itemIndex = 0;\r\n\r\n groups = checkedGroups.length ?\r\n checkedGroups.concat(uncheckedGroups) : // Concat both lists\r\n uncheckedGroups; // No need for concat\r\n\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n for (i = 0, len = group.length; i < len; i++) {\r\n joined[itemIndex++] = group[i];\r\n }\r\n }\r\n\r\n return joined;\r\n }\r\n}\r\n\r\nexport default SelectBox;\r\n"],"names":["match","version","check","it","Math","global","globalThis","window","self","this","Function","fails","exec","error","descriptors","require$$0","Object","defineProperty","get","call","prototype","functionCall","bind","apply","arguments","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","1","createPropertyDescriptor","V","descriptor","enumerable","bitmap","value","configurable","writable","FunctionPrototype","callBind","functionUncurryThis","fn","uncurryThis","toString","stringSlice","slice","classofRaw","require$$1","require$$2","classof","require$$3","split","indexedObject","TypeError","requireObjectCoercible","undefined","IndexedObject","toIndexedObject","isCallable","argument","isObject","aFunction","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","nativeSymbol","getOwnPropertySymbols","symbol","Symbol","String","sham","useSymbolAsUid","iterator","USE_SYMBOL_AS_UID","require$$4","isSymbol","$Symbol","tryToString","aCallable","getMethod","P","func","setGlobal","key","sharedStore","store","sharedModule","push","mode","copyright","toObject","hasOwnProperty","hasOwnProperty_1","hasOwn","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$5","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","description","require$$6","TO_PRIMITIVE","toPrimitive","input","pref","result","exoticToPrim","val","valueOf","ordinaryToPrimitive","toPropertyKey","document","EXISTS","createElement","documentCreateElement","ie8DomDefine","a","DESCRIPTORS","propertyIsEnumerableModule","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","O","f","anObject","$defineProperty","definePropertyModule","Attributes","createNonEnumerableProperty","object","functionToString","inspectSource","set","has","WeakMap","nativeWeakMap","test","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","require$$8","state","wmget","wmhas","wmset","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","getDescriptor","functionName","PROPER","CONFIGURABLE","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","TEMPLATE","redefineModule","options","unsafe","simple","noTargetGet","replace","source","join","ceil","floor","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","copyConstructorProperties","target","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","redefine","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","functionApply","Reflect","isArray","Array","activeXDocument","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","objectKeys","objectDefineProperties","defineProperties","Properties","props","html","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","style","display","appendChild","src","contentWindow","open","F","objectCreate","create","arraySlice","$getOwnPropertyNames","windowNames","getWindowNames","path","wrappedWellKnownSymbolModule","setToStringTag","TAG","functionBindContext","that","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructor","called","SPECIES","arraySpeciesCreate","originalArray","C","constructor","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","forEach","map","filter","some","every","find","findIndex","filterReject","$","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","$toString","require$$20","require$$21","nativeObjectCreate","require$$22","require$$23","require$$24","getOwnPropertyNamesExternal","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$34","require$$35","require$$36","require$$37","require$$39","InternalStateModule","require$$40","$forEach","require$$41","HIDDEN","require$$33","setInternalState","ObjectPrototype","SymbolPrototype","QObject","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","wrap","$defineProperties","properties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","setter","NAME","defineWellKnownSymbol","for","keyFor","sym","useSetter","useSimple","stringify","replacer","space","args","$replacer","hint","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","regexp","desc","objectToString","TO_ENTRIES","$entries","entries","createProperty","propertyKey","arrayMethodHasSpeciesSupport","METHOD_NAME","array","foo","Boolean","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","proto","arg","k","len","E","A","n","arrayMethodIsStrict","un$Join","ES3_STRINGS","STRICT_METHOD","separator","iteratorClose","kind","innerResult","innerError","iterators","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","usingIterator","iteratorMethod","callWithSafeIterationClosing","ENTRIES","SAFE_CLOSING","iteratorWithReturn","next","done","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","iterable","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","step","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","charAt","charCodeAt","CONVERT_TO_STRING","pos","first","second","S","position","size","stringMultibyte","codeAt","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","objectGetPrototypeOf","BUGGY_SAFARI_ITERATORS","iteratorsCore","returnThis","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","aPossiblePrototype","__proto__","FunctionName","PROPER_FUNCTION_NAME","defineIterator","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","createIteratorConstructor","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","values","iterated","point","MATCH","isRegexp","isRegExp","notARegExp","un$StartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","error1","error2","correctIsRegExpLogic","searchString","search","HAS_SPECIES_SUPPORT","splice","start","deleteCount","insertCount","actualDeleteCount","to","actualStart","$map","quot","anchor","attribute","p1","UNSCOPABLES","addToUnscopables","$find","SKIPS_HOLES","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","regexpFlags","ignoreCase","multiline","dotAll","unicode","sticky","$RegExp","RegExp","re","lastIndex","setSpecies","CONSTRUCTOR_NAME","Constructor","regexpUnsupportedDotAll","flags","regexpUnsupportedNcg","groups","regExpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","NativeRegExp","RegExpPrototype","SyntaxError","getFlags","stringIndexOf","IS_NCG","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","RegExpWrapper","pattern","rawFlags","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","chr","named","brackets","ncg","groupid","groupname","handleNCG","raw","handleDotAll","proxy","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","str","charsAdded","strCopy","regexpExec","n$ToString","NOT_GENERIC","INCORRECT_NAME","R","p","rf","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","advanceStringIndex","getSubstitution","matched","captures","namedCaptures","tailPos","m","symbols","ch","capture","regExpExec","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","uncurriedNativeMethod","$exec","fixRegExpWellKnownSymbolLogic","_","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","rx","res","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","j","replacerArgs","ItemSymbol","DestroyedSymbol","GhostSymbol","defaultOptions","baseClassName","itemBlurDelay","capturesFocus","multi","keyDownHandler","autoCheckGroupChildren","useExactTargetWidth","constrainToWindow","autoFlipDirection","estimateWidth","virtualMinItems","labelProp","valueProp","on","DropList","o","_p","ownsEl","elOriginalDisplay","additionalClasses","renderItem","unrenderItem","silenceEvents","mitt","focusItemIndex","focusItemEl","sink","DomEventsSink","classes","initialCss","top","Element","classList","add","role","setCssProps","class","css","items","groupCount","mouseHandled","virtualListHelper","VirtualListHelper","list","virtual","buffer","estimatedItemHeight","itemElementCreatorFn","tabIndex","onItemRender","itemEl","item","label","lastMeasureLongestLabelText","setAttribute","console","warn","className","_nocheck","_checked","_group","_child","_nointeraction","_this","_renderItemContent","setOnItemUnrender","err","_hookMouseEvents","_hookTouchEvents","_hookFocusEvents","_hookKeyEvents","clearTimeout","blurTimer","filterTimer","remove","destroy","removeAttribute","lastPositionTarget","_syncBaseClasses","prop","hasFocusedItem","_trigger","event","_move","toggleClass","checked","isGroup","isCheckingGroup","_updateGroupStateForItem","closestUntil","getItemIndexFromElement","_setSingleSelectedItemEl","atIndex","addItems","itemsToAdd","isMulti","_determineVirtualMode","count","oitem","addItemsAt","render","newItem","itemIndex","itemIndexByValue","itemAtIndex","isItemRendered","refreshItemAt","itemIndexByValueOrLabel","removeItemsAt","setCount","x","_this$_p$items$index","positionOptions","isVisible","w","targetBox","offset","targetOffset","getElementOffset","left","height","targetHeight","getElementHeight","width","targetWidth","getElementWidth","bottom","viewport","pageYOffset","pageXOffset","innerWidth","innerHeight","right","defaultVerticalDirection","y","isVirtual","_measureItem","updateWidth","_updateWidth","maxViewHeight","roomAbove","roomBelow","elComputedStyle","getComputedStyle","isBoxing","boxSizing","verticalPadding","parseFloat","paddingTop","paddingBottom","verticalBorderWidth","borderTopWidth","borderBottomWidth","estimateFullHeight","scrollHeight","maxHeight","isNaN","enoughRoomAbove","enoughRoomBelow","newDirection","currentDirection","viewSize","isTargetRtl","targetRtl","direction","isRtlDocument","documentElement","anchoredPosition","invertYPos","specY","scrollLeft","body","parentNode","abs","scrollWidth","clientWidth","minX","maxX","viewCss","rtl","specX","which","setElementHeight","li","getItemElementAt","groupIndexes","_updateGroupCheckedState","excludeGroups","hiding","setTimeout","_this2","onDocumentMouseDown","contains","_delayBlur","visible","originalMaxHeight","clientHeight","marginTop","marginBottom","relayout","parseTransition","transition","reduce","v","delay","duration","_this3","blurFocusedItem","scrollItemIndexIntoView","itemElement","_getItemIndex","setFocusedItemAtIndex","setSingleSelectedItemAtIndex","_hasScroll","itemPos","scrollTop","previousPos","getItemPosition","itemSize","getItemSize","listHeight","handler","wrapped","_this4","off","all","clear","emit","singleSelectedItemEl","_mouseHandled","triggerItemSelection","toggleFocusedItem","activeElement","_this5","currentTarget","preventDefault","button","_this6","_itemUpAction","_handleMouseOver","_focus","currentTouchId","changedTouches","identifier","_this7","didScroll","onScroll","onTouchCancel","elToTrackScroll","touch","firstChild","_this8","evt","_this9","_keydown","VALUE_PAGE_UP","VALUE_PAGE_DOWN","VALUE_HOME","VALUE_END","VALUE_UP","VALUE_DOWN","previousPage","nextPage","previous","VALUE_ENTER","VALUE_SPACE","VALUE_ESCAPE","hide","_keydownFreeType","character","fromCharCode","keyCode","keyword","previousFilter","regex","escapeRegex","matchIndices","matchIndex","_this10","nextIndex","directionUp","isFirstItem","isLastItem","visibleItemCount","getVisibleItemCount","base","nextElementSibling","tagName","itemCount","startedAtIndex","groupIndex","affectedItems","nextEl","fireEvents","groupItem","hasChecked","hasUnchecked","shouldCheckGroup","lastMeasureItemCount","longestLabel","lastMeasureLongestLabel","longestLabelText","text","createGhostItemElement","lastMeasureItemWidth","targetItemCount","shouldBeVirtual","setVirtual","textContent","insertBefore","autoWidth","newOuterWidth","setElementWidth","bordersWidth","borderLeftWidth","borderRightWidth","delta","es_array_iterator","Arguments","arrayBufferNonExtensible","ArrayBuffer","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","enable","fastKey","getWeakData","onFreeze","Result","stopped","ResultPrototype","iterate","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","anInstance","Prototype","InternalMetadataModule","redefineAll","internalStateGetterFor","wrapper","common","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","getConstructor","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","collection","init","last","define","entry","getEntry","removed","delete","prev","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","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","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","un$Slice","end","fin","$assign","assign","b","B","alphabet","T","whitespace","ltrim","rtrim","stringTrim","trim","$trim","$filter","$findIndex","mergeSort","comparefn","middle","insertionSort","merge","element","llength","rlength","lindex","rindex","arraySort","firefox","engineFfVersion","engineIsIeOrEdge","webkit","engineWebkitVersion","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","itemsLength","arrayLength","getSortCompare","throttle","wait","timeout","context","later","leading","Date","now","throttled","remaining","trailing","cancel","isScheduled","NoResultsItemSymbol","RestMultiItemsSymbol","hasTouchCapability","DocumentTouch","navigator","maxTouchPoints","hasClass","inputBackbufferCssProps","disabled","clearable","hasOpenIndicator","placeholder","sortSelectedItems","sortListItems","sortListCheckedFirst","stickyValues","sortItemComparator","splitListCheckedGroups","blurOnSingleSelection","showSelection","multiPlaceholderFormatter","searchable","noResultsText","filterThrottleWindow","filterOnEmptyTerm","multiItemLabelProp","maxMultiItems","multiItemsRestLabelProvider","selectedValues","isLoadingMode","SelectBox","listOptions","Set","renderSingleItem","unrenderSingleItem","renderMultiItem","unrenderMultiItem","renderRestMultiItem","unrenderRestMultiItem","renderNoResultsItem","unrenderNoResultsItem","filterFn","filteredItems","currentItemsView","itemsChanged","resizeObserver","selectedItems","selectionChanged","resortBySelectionNeeded","throttledUpdateListItems","_updateListItems","filterTerm","setElementAttrs","_renderBase","multiItemEls","_setupDropdownMenu","clearButtonWrapper","focus","selectionStart","selectionEnd","relatedTarget","field","querySelector","_handleInputKeydown","_resizeInput","t","focusInOutHandler","ResizeObserver","observe","setItems","setSelectedValues","setValue","_scheduleSync","syncTimeout","_stopTrackingPresence","dropList","_cleanupSingleWrapper","_removeMultiItemElementByIndex","singleWrapper","inputBackBuffer","openIndicator","disconnect","enabled","resetValues","getSelectedValues","term","mutated","getFilteredItemCount","existingItem","updateItemByValue","performSearch","sortCheckedFirst","comparator","formatter","unrender","setLabelProp","setValueProp","blur","clearEvt","_setInputText","_setSelectedItems","show","_getDropListPositionOptions","_repositionDropList","getFocusedItemIndex","openList","closeList","dropListVisible","setIsLoadingMode","getIsLoadingMode","isListOpen","zIndex","whiteSpace","inputWrapper","autocomplete","autocorrect","autocapitalize","spellcheck","readOnly","_unregisterDropdownEvents","lastActiveElement","_removeMultiItemFromEvent","_handleMultiKeydown","_registerDropdownEvents","spinner","customRenderItem","customUnrenderItem","_startTrackingPresence","parent","offsetHeight","offsetWidth","selEvt","setItemChecked","idx","hasGroupSync","selectEvt","avoidToggleFromClick","suppressKeyPress","suppressKeyPressRepeat","keyEventsTarget","_movePrev","_moveNext","lastKeyAllowsSpaceToggle","VALUE_TAB","toggleList","stopPropagation","isDisabled","tevt","isMultiEnabled","getSelectedItems","setSelectedItems","_refilterItems","_lastSerializedBox","_sortItems","removeAllItems","hasRefocusedItem","setCheckedValues","singleItemIndex","getValue","matcher","lastGroup","syncQueue","queue","_performSync","op","_syncFull","_syncSingleItem","_syncPlaceholder","_addMultiItemElement","_addMultiItemRestElement","childNodes","innerHTML","pop","createTextNode","_renderMultiItem","before","clearButton","append","title","defaultMultiPlaceholderFormatter","_renderSingleItemContent","fullItemsRender","_syncClearButton","sa","sb","aLabel","bLabel","actualItemCount","addRestItem","getRootNode","tabindex","_renderMultiItemContent","originatingEvent","nextFocus","kEvent","VALUE_DELETE","VALUE_BACK_SPACE","itemsToRemove","removeselEvt","_removeMultiItem","populate","backBufferEl","inputValue","hasResize","beforeWidth","afterWidth","beforeStyle","float","getPseudoElementWidth","afterStyle","contentWidth","getCssProps","computedStyle","paddingTotal","paddingLeft","paddingRight","minWidth","backBufferWidth","currentWidth","newWidth","box","getBoundingClientRect","serialized","ctrlKey","isRtl","VALUE_LEFT","VALUE_RIGHT","shift","presenceInt","setInterval","clearInterval","splitCheckedGroups","stickyGroup","selectedValuesSet","unshift","checkedGroups","uncheckedGroups","g","glen","aChecked","bChecked","virtualGroup","gi","gilen","sgi","joined"],"mappings":"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"}