@danielgindi/selectbox 1.0.28 → 1.0.32
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.
- package/dist/lib.cjs.js +296 -176
- package/dist/lib.cjs.js.map +1 -1
- package/dist/lib.cjs.min.js +2 -2
- package/dist/lib.cjs.min.js.map +1 -1
- package/dist/lib.es6.js +69 -11
- package/dist/lib.es6.js.map +1 -1
- package/dist/lib.es6.min.js +2 -2
- package/dist/lib.es6.min.js.map +1 -1
- package/dist/lib.umd.js +296 -176
- package/dist/lib.umd.js.map +1 -1
- package/dist/lib.umd.min.js +2 -2
- package/dist/lib.umd.min.js.map +1 -1
- package/lib/SelectBox.js +68 -10
- package/package.json +9 -9
- package/vue/SelectBox.vue +10 -0
package/dist/lib.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["node_modules/core-js/internals/global.js","node_modules/core-js/internals/fails.js","node_modules/core-js/internals/descriptors.js","node_modules/core-js/internals/object-property-is-enumerable.js","node_modules/core-js/internals/create-property-descriptor.js","node_modules/core-js/internals/classof-raw.js","node_modules/core-js/internals/indexed-object.js","node_modules/core-js/internals/require-object-coercible.js","node_modules/core-js/internals/to-indexed-object.js","node_modules/core-js/internals/is-object.js","node_modules/core-js/internals/get-built-in.js","node_modules/core-js/internals/engine-user-agent.js","node_modules/core-js/internals/engine-v8-version.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/ordinary-to-primitive.js","node_modules/core-js/internals/is-pure.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.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/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/internal-state.js","node_modules/core-js/internals/redefine.js","node_modules/core-js/internals/to-integer.js","node_modules/core-js/internals/to-length.js","node_modules/core-js/internals/to-absolute-index.js","node_modules/core-js/internals/array-includes.js","node_modules/core-js/internals/object-keys-internal.js","node_modules/core-js/internals/enum-bug-keys.js","node_modules/core-js/internals/object-get-own-property-names.js","node_modules/core-js/internals/object-get-own-property-symbols.js","node_modules/core-js/internals/own-keys.js","node_modules/core-js/internals/copy-constructor-properties.js","node_modules/core-js/internals/is-forced.js","node_modules/core-js/internals/export.js","node_modules/core-js/internals/is-array.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/object-create.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/path.js","node_modules/core-js/internals/define-well-known-symbol.js","node_modules/core-js/internals/set-to-string-tag.js","node_modules/core-js/internals/a-function.js","node_modules/core-js/internals/function-bind-context.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/to-string-tag-support.js","node_modules/core-js/internals/classof.js","node_modules/core-js/internals/object-to-string.js","node_modules/core-js/modules/es.object.to-string.js","node_modules/core-js/internals/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/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/correct-prototype-getter.js","node_modules/core-js/internals/object-get-prototype-of.js","node_modules/core-js/internals/iterators-core.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/internals/not-a-regexp.js","node_modules/core-js/internals/correct-is-regexp-logic.js","node_modules/core-js/modules/es.string.starts-with.js","node_modules/core-js/modules/es.array.splice.js","node_modules/core-js/modules/es.array.slice.js","node_modules/core-js/internals/whitespaces.js","node_modules/core-js/internals/string-trim.js","node_modules/core-js/internals/number-parse-float.js","node_modules/core-js/modules/es.parse-float.js","node_modules/core-js/internals/create-html.js","node_modules/core-js/internals/string-html-forced.js","node_modules/core-js/modules/es.string.anchor.js","node_modules/core-js/modules/es.array.index-of.js","node_modules/core-js/internals/array-reduce.js","node_modules/core-js/internals/engine-is-node.js","node_modules/core-js/modules/es.array.reduce.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/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-iterables.js","node_modules/core-js/modules/web.dom-collections.iterator.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/modules/es.string.trim.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 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","'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 toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar 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 version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","/* 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 getBuiltIn = require('../internals/get-built-in');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;\n};\n","var isObject = require('../internals/is-object');\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' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = false;\n","var global = require('../internals/global');\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.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.16.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\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 = input[TO_PRIMITIVE];\n var result;\n if (exoticToPrim !== undefined) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(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 : String(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 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 has = require('../internals/has');\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 (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\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 store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var 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 NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\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 = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(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 objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- 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 has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","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(arg) {\n return classof(arg) == 'Array';\n};\n","var isSymbol = require('../internals/is-symbol');\n\nmodule.exports = function (argument) {\n if (isSymbol(argument)) 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 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 keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* 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 if (iframe.style) {\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\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 = 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","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// 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 (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return 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 IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, 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, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_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.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(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 IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\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 createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $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 (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'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 fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // 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 = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'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 IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].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 nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator);\n 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 Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","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 toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","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 has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\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 = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'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 isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","/* eslint-disable no-proto -- safe */\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 = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar 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","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar 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 $startsWith = ''.startsWith;\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 $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\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 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 = toLength(O.length);\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(toInteger(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 isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// 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","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseFloat = global.parseFloat;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n parseFloat: parseFloatImplementation\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\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 + '=\"' + toString(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\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","'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","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\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 isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar 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');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\nvar RE = function (s, f) {\n return RegExp(s, f);\n};\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","'use strict';\nvar 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('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\n var re = RegExp('.', (typeof '').charAt(0));\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 'g') -> /./g and it causes SyntaxError\n var re = RegExp('(?<a>b)', (typeof '').charAt(5));\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 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 isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\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;\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 = string.charAt(index);\n if (chr === '\\\\') {\n result += chr + string.charAt(++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 = string.charAt(index);\n if (chr === '\\\\') {\n chr = chr + string.charAt(++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 (IS_NCG.test(string.slice(index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || has(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named.push([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 = this instanceof RegExpWrapper;\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 || pattern instanceof RegExpWrapper) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags.call(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 && flags.indexOf('s') > -1;\n if (dotAll) flags = flags.replace(/s/g, '');\n }\n\n rawFlags = flags;\n\n if (UNSUPPORTED_Y && 'sticky' in re1) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/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-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\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 nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || 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 = patchedExec.call(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 = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = str.slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str.charAt(re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n 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 redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(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 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 nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\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: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(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 toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\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.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar toInteger = require('../internals/to-integer');\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 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;\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 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 : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(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 replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 &&\n replaceValue.indexOf('$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = typeof replaceValue === 'function';\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 results.push(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(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = toString(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n}, !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} 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 parseCssTransition from 'parse-css-transition';\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\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}: 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,\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\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.timer);\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(fromFocus) {\r\n const p = this._p;\r\n\r\n if (!fromFocus) {\r\n clearTimeout(p.timer);\r\n }\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(() => { // If it's from a click event, we do not want an immediate hide...\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (!p.onDocumentMouseDown) {\r\n p.sink.add(document, 'mousedown', p.onDocumentMouseDown = (event) => {\r\n if (closestUntil(event.target, `.${p.baseClassName}`, p.el) !== p.el) {\r\n this._delayBlur();\r\n }\r\n });\r\n }\r\n }, 0);\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 = parseCssTransition(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] });\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 _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 }\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 (!this[DestroyedSymbol]) { // If we are not destroyed in response to a click/select\r\n this.toggleFocusedItem();\r\n\r\n if (document.activeElement !== this.el) {\r\n if (p.focusItemEl) {\r\n clearTimeout(p.timer);\r\n }\r\n }\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 this.blurFocusedItem(!!event && event.type === 'focus');\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\r\n if (focusItemEl) {\r\n if (focusItemEl[ItemSymbol]._nointeraction) {\r\n this.blurFocusedItem();\r\n } else {\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 });\r\n }\r\n } else {\r\n // This could happen if trying to focus a grouped item\r\n this.blurFocusedItem();\r\n }\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.timer);\r\n\r\n p.timer = 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","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 hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !has(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 = [].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.call(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 anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(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, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","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 C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ 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, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ 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(C.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(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ 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(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ 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\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\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;\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 ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $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 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]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\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","'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","// TODO: use something more complex like timsort?\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 mergeSort(array.slice(0, middle), comparefn),\n mergeSort(array.slice(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 (left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n var result = [];\n\n while (lindex < llength || rindex < rlength) {\n if (lindex < llength && rindex < rlength) {\n result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]);\n } else {\n result.push(lindex < llength ? left[lindex++] : right[rindex++]);\n }\n } return result;\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 aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\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 nativeSort = test.sort;\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) aFunction(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn);\n\n var items = [];\n var arrayLength = toLength(array.length);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) items.push(array[index]);\n }\n\n items = internalSort(items, getSortCompare(comparefn));\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\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]\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 * */\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};\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,\r\n additionalClasses: o.additionalClasses,\r\n\r\n isLoadingMode: false,\r\n\r\n items: o.items || [],\r\n filteredItems: null,\r\n itemsChanged: true,\r\n\r\n sink: new DomEventsSink(),\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 (closestUntil(evt.target, `.${p.baseClassName}__clear`, evt.currentTarget)) {\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 this.setItems(p.items);\r\n\r\n this._scheduleSync();\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 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 const p = this._p;\r\n let loading = on === undefined ? !this._p.isLoadingMode : !!on;\r\n\r\n if (p.isLoadingMode === loading)\r\n return this;\r\n\r\n p.isLoadingMode = loading;\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 /**\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\trefreshSize() {\r\n\t\tthis._resizeInput();\r\n\t\treturn this;\r\n\t}\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 dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n dropList.previous(evt);\r\n break;\r\n case VALUE_DOWN:\r\n dropList.next(evt);\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.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.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 dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n dropList.previous(evt);\r\n break;\r\n case VALUE_DOWN:\r\n dropList.next(evt);\r\n break;\r\n\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 /** @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 }\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;\r\n\r\n const input = p.input, backBufferEl = p.inputBackBuffer;\r\n\r\n let inputValue = input.value || input.placeholder;\r\n toggleClass(p.el, `${p.baseClassName}__has_input`, !!inputValue);\r\n toggleClass(p.el, `${p.baseClassName}__empty_input`, !inputValue);\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 || p.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 || p.el, '::before', true, true, true);\r\n }\r\n\r\n let afterStyle = getComputedStyle(p.list || p.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 || p.el, '::after', true, true, true);\r\n }\r\n\r\n let contentWidth = getElementWidth(p.list || p.el); // calculate width\r\n contentWidth -= beforeWidth + afterWidth;\r\n\r\n input.style.width = `${contentWidth}px`;\r\n } else {\r\n // Introduce backbuffer to DOM\r\n setCssProps(backBufferEl, getCssProps(input, inputBackbufferCssProps));\r\n backBufferEl.textContent = inputValue;\r\n p.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\r\n // Remove backbuffer from DOM\r\n remove(backBufferEl);\r\n }\r\n\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 = a[labelProp] || a[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 = [];\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 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 // 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 // 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 // Grouped 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 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":["global","fails","require$$0","$propertyIsEnumerable","getOwnPropertyDescriptor","createPropertyDescriptor","toString","classofRaw","classof","require$$1","requireObjectCoercible","IndexedObject","toIndexedObject","isObject","aFunction","getBuiltIn","userAgent","V8_VERSION","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","isSymbol","ordinaryToPrimitive","setGlobal","store","IS_PURE","sharedModule","toObject","hasOwnProperty","has","id","uid","shared","require$$2","require$$3","require$$4","require$$5","WellKnownSymbolsStore","Symbol","wellKnownSymbol","TO_PRIMITIVE","toPrimitive","toPropertyKey","document","documentCreateElement","DESCRIPTORS","propertyIsEnumerableModule","IE8_DOM_DEFINE","require$$6","$getOwnPropertyDescriptor","anObject","$defineProperty","definePropertyModule","createNonEnumerableProperty","inspectSource","WeakMap","keys","sharedKey","hiddenKeys","require$$7","InternalStateModule","getInternalState","enforceInternalState","redefineModule","floor","toInteger","min","toLength","max","toAbsoluteIndex","createMethod","enumBugKeys","internalObjectKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","copyConstructorProperties","isForced","redefine","isArray","objectKeys","html","PROTOTYPE","IE_PROTO","$getOwnPropertyNames","path","wrappedWellKnownSymbolModule","defineProperty","defineWellKnownSymbol","TO_STRING_TAG","setToStringTag","SPECIES","arraySpeciesConstructor","arraySpeciesCreate","bind","$","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","$toString","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","setInternalState","ObjectPrototype","test","TO_STRING_TAG_SUPPORT","createProperty","arrayMethodHasSpeciesSupport","MAX_SAFE_INTEGER","FORCED","arrayMethodIsStrict","STRICT_METHOD","iteratorClose","callWithSafeIterationClosing","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","checkCorrectnessOfIteration","getPrototypeOf","BUGGY_SAFARI_ITERATORS","returnThis","IteratorPrototype","create","createIteratorConstructor","aPossiblePrototype","setPrototypeOf","defineIterator","charAt","MATCH","isRegExp","HAS_SPECIES_SUPPORT","whitespaces","addToUnscopables","SKIPS_HOLES","inheritIfRequired","regexpFlags","setSpecies","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","RegExpPrototype","UNSUPPORTED_Y","regexpExec","advanceStringIndex","getSubstitution","value","replace","ItemSymbol","DestroyedSymbol","GhostSymbol","Object","prototype","defaultOptions","baseClassName","itemBlurDelay","capturesFocus","multi","keyDownHandler","autoCheckGroupChildren","useExactTargetWidth","constrainToWindow","autoFlipDirection","estimateWidth","virtualMinItems","labelProp","valueProp","on","DropList","options","o","entries","key","undefined","p","_p","ownsEl","elOriginalDisplay","additionalClasses","renderItem","unrenderItem","focusItemIndex","focusItemEl","sink","DomEventsSink","classes","concat","initialCss","top","el","Element","style","display","classList","add","role","setCssProps","createElement","class","join","css","items","groupCount","mouseHandled","virtualListHelper","VirtualListHelper","list","virtual","buffer","estimatedItemHeight","itemElementCreatorFn","tabIndex","onItemRender","itemEl","index","item","lastMeasureLongestLabelText","setAttribute","console","warn","className","_nocheck","_checked","_group","_child","_nointeraction","_renderItemContent","fn","setOnItemUnrender","err","error","_hookMouseEvents","_hookTouchEvents","_hookFocusEvents","_hookKeyEvents","clearTimeout","timer","filterTimer","remove","destroy","Array","from","name","startsWith","removeAttribute","lastPositionTarget","_syncBaseClasses","prop","fromFocus","hasFocusedItem","_trigger","event","_move","toggleClass","_updateGroupStateForItem","closestUntil","target","getItemIndexFromElement","_setSingleSelectedItemEl","atIndex","addItems","itemsToAdd","isMulti","length","_determineVirtualMode","i","count","oitem","splice","push","addItemsAt","render","newItem","itemIndex","itemIndexByValue","itemAtIndex","call","isItemRendered","refreshItemAt","label","itemIndexByValueOrLabel","spliced","removeItemsAt","setCount","slice","positionOptions","isVisible","w","window","targetBox","offset","targetOffset","getElementOffset","left","height","targetHeight","getElementHeight","width","targetWidth","getElementWidth","bottom","viewport","pageYOffset","pageXOffset","innerWidth","innerHeight","right","defaultVerticalDirection","position","y","isVirtual","_measureItem","updateWidth","_updateWidth","roomAbove","roomBelow","maxViewHeight","elComputedStyle","getComputedStyle","isBoxing","boxSizing","verticalPadding","parseFloat","paddingTop","paddingBottom","verticalBorderWidth","borderTopWidth","borderBottomWidth","estimateFullHeight","Math","scrollHeight","maxHeight","isNaN","enoughRoomAbove","enoughRoomBelow","newDirection","currentDirection","viewSize","isTargetRtl","targetRtl","direction","isRtlDocument","documentElement","anchor","anchoredPosition","x","invertYPos","specY","scrollLeft","body","parentNode","abs","scrollWidth","clientWidth","minX","maxX","viewCss","rtl","specX","which","setElementHeight","checked","li","getItemElementAt","values","groupIndexes","indexOf","_updateGroupCheckedState","excludeGroups","hiding","setTimeout","onDocumentMouseDown","_delayBlur","appendChild","visible","originalMaxHeight","clientHeight","marginTop","marginBottom","relayout","maxTransitionDuration","parseCssTransition","transition","reduce","v","delay","duration","blurFocusedItem","scrollItemIndexIntoView","itemElement","_getItemIndex","setFocusedItemAtIndex","setSingleSelectedItemAtIndex","_hasScroll","scrollTop","itemPos","previousPos","getItemPosition","itemSize","getItemSize","listHeight","singleSelectedItemEl","data","_mouseHandled","triggerItemSelection","toggleFocusedItem","activeElement","currentTarget","preventDefault","button","_itemUpAction","_handleMouseOver","_focus","currentTouchId","changedTouches","identifier","didScroll","onScroll","onTouchCancel","elToTrackScroll","touch","find","firstChild","contains","evt","_keydown","VALUE_PAGE_UP","VALUE_PAGE_DOWN","VALUE_HOME","VALUE_END","VALUE_UP","VALUE_DOWN","previousPage","nextPage","previous","next","VALUE_ENTER","VALUE_SPACE","VALUE_ESCAPE","hide","type","_keydownFreeType","character","String","fromCharCode","keyCode","keyword","previousFilter","regex","RegExp","escapeRegex","matchIndices","matchIndex","nextIndex","directionUp","isFirstItem","isLastItem","visibleItemCount","getVisibleItemCount","base","nextElementSibling","tagName","itemCount","startedAtIndex","groupIndex","affectedItems","len","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","fastKey","internalMetadataModule","iterate","anInstance","collection","redefineAll","collectionStrong","throttle","func","wait","timeout","context","args","result","later","leading","Date","now","apply","throttled","remaining","arguments","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","defaultMultiPlaceholderFormatter","title","SelectBox","listOptions","Set","renderSingleItem","unrenderSingleItem","renderMultiItem","unrenderMultiItem","renderRestMultiItem","unrenderRestMultiItem","renderNoResultsItem","unrenderNoResultsItem","filterFn","isLoadingMode","filteredItems","itemsChanged","selectedItems","selectedValues","selectionChanged","resortBySelectionNeeded","throttledUpdateListItems","_updateListItems","filterTerm","setElementAttrs","_renderBase","multiItemEls","enable","_setupDropdownMenu","input","focus","selectionStart","selectionEnd","relatedTarget","field","querySelector","_handleInputKeydown","_resizeInput","focusInOutHandler","t","setItems","_scheduleSync","syncTimeout","_stopTrackingPresence","dropList","_cleanupSingleWrapper","_removeMultiItemElementByIndex","singleWrapper","inputBackBuffer","clearButtonWrapper","openIndicator","enabled","resetValues","setSelectedValues","getSelectedValues","term","mutated","getFilteredItemCount","existingItem","assign","updateItemByValue","performSearch","trim","sortCheckedFirst","comparator","formatter","unrender","setLabelProp","setValueProp","blur","clearEvt","_setInputText","set","_setSelectedItems","show","_getDropListPositionOptions","_repositionDropList","getFocusedItemIndex","open","shouldOpen","openList","closeList","dropListVisible","loading","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","filter","selectEvt","avoidToggleFromClick","suppressKeyPress","suppressKeyPressRepeat","keyEventsTarget","lastKeyAllowsSpaceToggle","VALUE_TAB","toggleList","stopPropagation","isDisabled","tevt","_refilterItems","_lastSerializedBox","_sortItems","removeAllItems","hasRefocusedItem","setCheckedValues","singleItemIndex","getValue","matcher","lastGroup","map","mode","syncQueue","queue","_performSync","op","_syncFull","_syncSingleItem","_syncPlaceholder","findIndex","_addMultiItemElement","_addMultiItemRestElement","childNodes","innerHTML","pop","createTextNode","_renderMultiItem","before","clearButton","append","clear","_renderSingleItemContent","fullItemsRender","_syncClearButton","a","b","sa","sb","aLabel","bLabel","sort","actualItemCount","addRestItem","getRootNode","tabindex","_renderMultiItemContent","originatingEvent","nextFocus","kEvent","VALUE_DELETE","VALUE_BACK_SPACE","prev","itemsToRemove","removeselEvt","_removeMultiItem","populate","backBufferEl","inputValue","beforeWidth","afterWidth","beforeStyle","content","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","group","groups","selectedValuesSet","checkedGroups","uncheckedGroups","g","glen","aChecked","bChecked","virtualGroup","gi","gilen","joined"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["node_modules/core-js/internals/global.js","node_modules/core-js/internals/fails.js","node_modules/core-js/internals/descriptors.js","node_modules/core-js/internals/object-property-is-enumerable.js","node_modules/core-js/internals/create-property-descriptor.js","node_modules/core-js/internals/classof-raw.js","node_modules/core-js/internals/indexed-object.js","node_modules/core-js/internals/require-object-coercible.js","node_modules/core-js/internals/to-indexed-object.js","node_modules/core-js/internals/is-object.js","node_modules/core-js/internals/get-built-in.js","node_modules/core-js/internals/engine-user-agent.js","node_modules/core-js/internals/engine-v8-version.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/ordinary-to-primitive.js","node_modules/core-js/internals/is-pure.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.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/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/internal-state.js","node_modules/core-js/internals/redefine.js","node_modules/core-js/internals/to-integer.js","node_modules/core-js/internals/to-length.js","node_modules/core-js/internals/to-absolute-index.js","node_modules/core-js/internals/array-includes.js","node_modules/core-js/internals/object-keys-internal.js","node_modules/core-js/internals/enum-bug-keys.js","node_modules/core-js/internals/object-get-own-property-names.js","node_modules/core-js/internals/object-get-own-property-symbols.js","node_modules/core-js/internals/own-keys.js","node_modules/core-js/internals/copy-constructor-properties.js","node_modules/core-js/internals/is-forced.js","node_modules/core-js/internals/export.js","node_modules/core-js/internals/is-array.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/object-create.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/path.js","node_modules/core-js/internals/define-well-known-symbol.js","node_modules/core-js/internals/set-to-string-tag.js","node_modules/core-js/internals/a-function.js","node_modules/core-js/internals/function-bind-context.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/to-string-tag-support.js","node_modules/core-js/internals/classof.js","node_modules/core-js/internals/object-to-string.js","node_modules/core-js/modules/es.object.to-string.js","node_modules/core-js/internals/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/correct-prototype-getter.js","node_modules/core-js/internals/object-get-prototype-of.js","node_modules/core-js/internals/iterators-core.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/internals/not-a-regexp.js","node_modules/core-js/internals/correct-is-regexp-logic.js","node_modules/core-js/modules/es.string.starts-with.js","node_modules/core-js/modules/es.array.splice.js","node_modules/core-js/modules/es.array.slice.js","node_modules/core-js/internals/whitespaces.js","node_modules/core-js/internals/string-trim.js","node_modules/core-js/internals/number-parse-float.js","node_modules/core-js/modules/es.parse-float.js","node_modules/core-js/internals/create-html.js","node_modules/core-js/internals/string-html-forced.js","node_modules/core-js/modules/es.string.anchor.js","node_modules/core-js/modules/es.array.index-of.js","node_modules/core-js/internals/array-reduce.js","node_modules/core-js/internals/engine-is-node.js","node_modules/core-js/modules/es.array.reduce.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/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-iterables.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/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/modules/es.string.trim.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 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","'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 toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar 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 version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","/* 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 getBuiltIn = require('../internals/get-built-in');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;\n};\n","var isObject = require('../internals/is-object');\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' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = false;\n","var global = require('../internals/global');\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.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.17.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\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 = input[TO_PRIMITIVE];\n var result;\n if (exoticToPrim !== undefined) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(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 : String(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 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 has = require('../internals/has');\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 (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\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 store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var 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 NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\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 = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(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 objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- 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 has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","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(arg) {\n return classof(arg) == 'Array';\n};\n","var isSymbol = require('../internals/is-symbol');\n\nmodule.exports = function (argument) {\n if (isSymbol(argument)) 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 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 keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* 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","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// 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 (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return 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 IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, 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, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_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.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(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 IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\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 createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $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 (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var nativeSymbol = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = nativeSymbol ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'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 fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // 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 = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'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 IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].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 nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = iterator['return'];\n if (innerResult === undefined) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = innerResult.call(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 Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(it) : usingIterator;\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","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 toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","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 has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\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 (typeof IteratorPrototype[ITERATOR] !== 'function') {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\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 isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","/* eslint-disable no-proto -- safe */\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 = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar 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","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar 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 $startsWith = ''.startsWith;\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 $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\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 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 = toLength(O.length);\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(toInteger(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 isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// 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","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseFloat = global.parseFloat;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n parseFloat: parseFloatImplementation\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\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 + '=\"' + toString(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\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","'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","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\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 isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar 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('./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('./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 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 isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\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;\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 = string.charAt(index);\n if (chr === '\\\\') {\n result += chr + string.charAt(++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 = string.charAt(index);\n if (chr === '\\\\') {\n chr = chr + string.charAt(++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 (IS_NCG.test(string.slice(index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || has(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named.push([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 = this instanceof RegExpWrapper;\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 || pattern instanceof RegExpWrapper) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags.call(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 && flags.indexOf('s') > -1;\n if (dotAll) flags = flags.replace(/s/g, '');\n }\n\n rawFlags = flags;\n\n if (UNSUPPORTED_Y && 'sticky' in re1) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/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 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 nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || 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 = patchedExec.call(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 = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = str.slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str.charAt(re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n 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 redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(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 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 nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\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: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(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 toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\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.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar toInteger = require('../internals/to-integer');\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 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;\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 : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(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 replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 &&\n replaceValue.indexOf('$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = typeof replaceValue === 'function';\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 results.push(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(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = toString(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n}, !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} 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 parseCssTransition from 'parse-css-transition';\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\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}: 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,\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\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.timer);\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(fromFocus) {\r\n const p = this._p;\r\n\r\n if (!fromFocus) {\r\n clearTimeout(p.timer);\r\n }\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(() => { // If it's from a click event, we do not want an immediate hide...\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (!p.onDocumentMouseDown) {\r\n p.sink.add(document, 'mousedown', p.onDocumentMouseDown = (event) => {\r\n if (closestUntil(event.target, `.${p.baseClassName}`, p.el) !== p.el) {\r\n this._delayBlur();\r\n }\r\n });\r\n }\r\n }, 0);\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 = parseCssTransition(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] });\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 _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 }\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 (!this[DestroyedSymbol]) { // If we are not destroyed in response to a click/select\r\n this.toggleFocusedItem();\r\n\r\n if (document.activeElement !== this.el) {\r\n if (p.focusItemEl) {\r\n clearTimeout(p.timer);\r\n }\r\n }\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 this.blurFocusedItem(!!event && event.type === 'focus');\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\r\n if (focusItemEl) {\r\n if (focusItemEl[ItemSymbol]._nointeraction) {\r\n this.blurFocusedItem();\r\n } else {\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 });\r\n }\r\n } else {\r\n // This could happen if trying to focus a grouped item\r\n this.blurFocusedItem();\r\n }\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.timer);\r\n\r\n p.timer = 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","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 hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !has(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 = [].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.call(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 anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, '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 (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(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, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","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 C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ 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, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ 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(C.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(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ 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(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ 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\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\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","// 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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\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;\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 ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $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 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]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\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","'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","// TODO: use something more complex like timsort?\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 mergeSort(array.slice(0, middle), comparefn),\n mergeSort(array.slice(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 (left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n var result = [];\n\n while (lindex < llength || rindex < rlength) {\n if (lindex < llength && rindex < rlength) {\n result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]);\n } else {\n result.push(lindex < llength ? left[lindex++] : right[rindex++]);\n }\n } return result;\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 aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\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 nativeSort = test.sort;\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) aFunction(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn);\n\n var items = [];\n var arrayLength = toLength(array.length);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) items.push(array[index]);\n }\n\n items = internalSort(items, getSortCompare(comparefn));\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\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: null,\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 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 (closestUntil(evt.target, `.${p.baseClassName}__clear`, evt.currentTarget)) {\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 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 // Start firing events\r\n p.on = o.on || null;\r\n\r\n this._scheduleSync();\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 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\trefreshSize() {\r\n\t\tthis._resizeInput();\r\n\t\treturn this;\r\n\t}\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 dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n dropList.previous(evt);\r\n break;\r\n case VALUE_DOWN:\r\n dropList.next(evt);\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.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.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 dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n dropList.previous(evt);\r\n break;\r\n case VALUE_DOWN:\r\n dropList.next(evt);\r\n break;\r\n\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 /** @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 }\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;\r\n\r\n const input = p.input, backBufferEl = p.inputBackBuffer;\r\n\r\n let inputValue = input.value || input.placeholder;\r\n toggleClass(p.el, `${p.baseClassName}__has_input`, !!inputValue);\r\n toggleClass(p.el, `${p.baseClassName}__empty_input`, !inputValue);\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 || p.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 || p.el, '::before', true, true, true);\r\n }\r\n\r\n let afterStyle = getComputedStyle(p.list || p.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 || p.el, '::after', true, true, true);\r\n }\r\n\r\n let contentWidth = getElementWidth(p.list || p.el); // calculate width\r\n contentWidth -= beforeWidth + afterWidth;\r\n\r\n input.style.width = `${contentWidth}px`;\r\n } else {\r\n // Introduce backbuffer to DOM\r\n setCssProps(backBufferEl, getCssProps(input, inputBackbufferCssProps));\r\n backBufferEl.textContent = inputValue;\r\n p.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\r\n // Remove backbuffer from DOM\r\n remove(backBufferEl);\r\n }\r\n\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 = a[labelProp] || a[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":["global","fails","require$$0","$propertyIsEnumerable","getOwnPropertyDescriptor","createPropertyDescriptor","toString","classofRaw","classof","require$$1","requireObjectCoercible","IndexedObject","toIndexedObject","isObject","aFunction","getBuiltIn","userAgent","V8_VERSION","nativeSymbol","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","isSymbol","ordinaryToPrimitive","setGlobal","store","IS_PURE","sharedModule","toObject","hasOwnProperty","has","id","uid","shared","require$$2","require$$3","require$$4","require$$5","WellKnownSymbolsStore","Symbol","wellKnownSymbol","TO_PRIMITIVE","toPrimitive","toPropertyKey","document","documentCreateElement","DESCRIPTORS","propertyIsEnumerableModule","IE8_DOM_DEFINE","require$$6","$getOwnPropertyDescriptor","anObject","$defineProperty","definePropertyModule","createNonEnumerableProperty","inspectSource","WeakMap","keys","sharedKey","hiddenKeys","require$$7","InternalStateModule","getInternalState","enforceInternalState","redefineModule","floor","toInteger","min","toLength","max","toAbsoluteIndex","createMethod","enumBugKeys","internalObjectKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","copyConstructorProperties","isForced","redefine","isArray","objectKeys","html","PROTOTYPE","IE_PROTO","$getOwnPropertyNames","path","wrappedWellKnownSymbolModule","defineProperty","defineWellKnownSymbol","TO_STRING_TAG","setToStringTag","SPECIES","arraySpeciesConstructor","arraySpeciesCreate","bind","$","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","$toString","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","setInternalState","ObjectPrototype","test","TO_STRING_TAG_SUPPORT","createProperty","arrayMethodHasSpeciesSupport","MAX_SAFE_INTEGER","FORCED","arrayMethodIsStrict","STRICT_METHOD","iteratorClose","callWithSafeIterationClosing","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","checkCorrectnessOfIteration","create","getPrototypeOf","BUGGY_SAFARI_ITERATORS","IteratorPrototype","returnThis","createIteratorConstructor","aPossiblePrototype","setPrototypeOf","defineIterator","charAt","MATCH","isRegExp","HAS_SPECIES_SUPPORT","whitespaces","addToUnscopables","SKIPS_HOLES","inheritIfRequired","regexpFlags","$RegExp","setSpecies","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","RegExpPrototype","UNSUPPORTED_Y","regexpExec","advanceStringIndex","getSubstitution","value","replace","ItemSymbol","DestroyedSymbol","GhostSymbol","Object","prototype","defaultOptions","baseClassName","itemBlurDelay","capturesFocus","multi","keyDownHandler","autoCheckGroupChildren","useExactTargetWidth","constrainToWindow","autoFlipDirection","estimateWidth","virtualMinItems","labelProp","valueProp","on","DropList","options","o","entries","key","undefined","p","_p","ownsEl","elOriginalDisplay","additionalClasses","renderItem","unrenderItem","focusItemIndex","focusItemEl","sink","DomEventsSink","classes","concat","initialCss","top","el","Element","style","display","classList","add","role","setCssProps","createElement","class","join","css","items","groupCount","mouseHandled","virtualListHelper","VirtualListHelper","list","virtual","buffer","estimatedItemHeight","itemElementCreatorFn","tabIndex","onItemRender","itemEl","index","item","lastMeasureLongestLabelText","setAttribute","console","warn","className","_nocheck","_checked","_group","_child","_nointeraction","_renderItemContent","fn","setOnItemUnrender","err","error","_hookMouseEvents","_hookTouchEvents","_hookFocusEvents","_hookKeyEvents","clearTimeout","timer","filterTimer","remove","destroy","Array","from","name","startsWith","removeAttribute","lastPositionTarget","_syncBaseClasses","prop","fromFocus","hasFocusedItem","_trigger","event","_move","toggleClass","_updateGroupStateForItem","closestUntil","target","getItemIndexFromElement","_setSingleSelectedItemEl","atIndex","addItems","itemsToAdd","isMulti","length","_determineVirtualMode","i","count","oitem","splice","push","addItemsAt","render","newItem","itemIndex","itemIndexByValue","itemAtIndex","call","isItemRendered","refreshItemAt","label","itemIndexByValueOrLabel","spliced","removeItemsAt","setCount","slice","positionOptions","isVisible","w","window","targetBox","offset","targetOffset","getElementOffset","left","height","targetHeight","getElementHeight","width","targetWidth","getElementWidth","bottom","viewport","pageYOffset","pageXOffset","innerWidth","innerHeight","right","defaultVerticalDirection","position","y","isVirtual","_measureItem","updateWidth","_updateWidth","roomAbove","roomBelow","maxViewHeight","elComputedStyle","getComputedStyle","isBoxing","boxSizing","verticalPadding","parseFloat","paddingTop","paddingBottom","verticalBorderWidth","borderTopWidth","borderBottomWidth","estimateFullHeight","Math","scrollHeight","maxHeight","isNaN","enoughRoomAbove","enoughRoomBelow","newDirection","currentDirection","viewSize","isTargetRtl","targetRtl","direction","isRtlDocument","documentElement","anchor","anchoredPosition","x","invertYPos","specY","scrollLeft","body","parentNode","abs","scrollWidth","clientWidth","minX","maxX","viewCss","rtl","specX","which","setElementHeight","checked","li","getItemElementAt","values","groupIndexes","indexOf","_updateGroupCheckedState","excludeGroups","hiding","setTimeout","onDocumentMouseDown","_delayBlur","appendChild","visible","originalMaxHeight","clientHeight","marginTop","marginBottom","relayout","maxTransitionDuration","parseCssTransition","transition","reduce","v","delay","duration","blurFocusedItem","scrollItemIndexIntoView","itemElement","_getItemIndex","setFocusedItemAtIndex","setSingleSelectedItemAtIndex","_hasScroll","scrollTop","itemPos","previousPos","getItemPosition","itemSize","getItemSize","listHeight","singleSelectedItemEl","data","_mouseHandled","triggerItemSelection","toggleFocusedItem","activeElement","currentTarget","preventDefault","button","_itemUpAction","_handleMouseOver","_focus","currentTouchId","changedTouches","identifier","didScroll","onScroll","onTouchCancel","elToTrackScroll","touch","find","firstChild","contains","evt","_keydown","VALUE_PAGE_UP","VALUE_PAGE_DOWN","VALUE_HOME","VALUE_END","VALUE_UP","VALUE_DOWN","previousPage","nextPage","previous","next","VALUE_ENTER","VALUE_SPACE","VALUE_ESCAPE","hide","type","_keydownFreeType","character","String","fromCharCode","keyCode","keyword","previousFilter","regex","RegExp","escapeRegex","matchIndices","matchIndex","nextIndex","directionUp","isFirstItem","isLastItem","visibleItemCount","getVisibleItemCount","base","nextElementSibling","tagName","itemCount","startedAtIndex","groupIndex","affectedItems","len","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","fastKey","internalMetadataModule","iterate","anInstance","collection","redefineAll","collectionStrong","DOMTokenListPrototype","throttle","func","wait","timeout","context","args","result","later","leading","Date","now","apply","throttled","remaining","arguments","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","defaultMultiPlaceholderFormatter","title","SelectBox","listOptions","Set","renderSingleItem","unrenderSingleItem","renderMultiItem","unrenderMultiItem","renderRestMultiItem","unrenderRestMultiItem","renderNoResultsItem","unrenderNoResultsItem","filterFn","filteredItems","itemsChanged","selectedItems","selectionChanged","resortBySelectionNeeded","throttledUpdateListItems","_updateListItems","filterTerm","setElementAttrs","_renderBase","multiItemEls","enable","_setupDropdownMenu","input","focus","selectionStart","selectionEnd","relatedTarget","field","querySelector","_handleInputKeydown","_resizeInput","focusInOutHandler","t","setItems","setSelectedValues","setValue","_scheduleSync","syncTimeout","_stopTrackingPresence","dropList","_cleanupSingleWrapper","_removeMultiItemElementByIndex","singleWrapper","inputBackBuffer","clearButtonWrapper","openIndicator","enabled","resetValues","getSelectedValues","term","mutated","getFilteredItemCount","existingItem","assign","updateItemByValue","performSearch","trim","sortCheckedFirst","comparator","formatter","unrender","setLabelProp","setValueProp","blur","clearEvt","_setInputText","set","_setSelectedItems","show","_getDropListPositionOptions","_repositionDropList","getFocusedItemIndex","open","shouldOpen","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","filter","selectEvt","avoidToggleFromClick","suppressKeyPress","suppressKeyPressRepeat","keyEventsTarget","lastKeyAllowsSpaceToggle","VALUE_TAB","toggleList","stopPropagation","isDisabled","tevt","_refilterItems","_lastSerializedBox","_sortItems","removeAllItems","hasRefocusedItem","setCheckedValues","singleItemIndex","getValue","matcher","lastGroup","map","mode","syncQueue","queue","_performSync","op","_syncFull","_syncSingleItem","_syncPlaceholder","findIndex","_addMultiItemElement","_addMultiItemRestElement","childNodes","innerHTML","pop","createTextNode","_renderMultiItem","before","clearButton","append","clear","_renderSingleItemContent","fullItemsRender","_syncClearButton","a","b","sa","sb","aLabel","bLabel","sort","actualItemCount","addRestItem","getRootNode","tabindex","_renderMultiItemContent","originatingEvent","nextFocus","kEvent","VALUE_DELETE","VALUE_BACK_SPACE","prev","itemsToRemove","removeselEvt","_removeMultiItem","populate","backBufferEl","inputValue","beforeWidth","afterWidth","beforeStyle","content","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","group","stickyGroup","groups","selectedValuesSet","unshift","checkedGroups","uncheckedGroups","g","glen","aChecked","bChecked","virtualGroup","sgi","gi","gilen","joined"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|