{"version":3,"file":"vendor-CpG28WtA.js","sources":["../../../node_modules/axios/lib/helpers/bind.js","../../../node_modules/axios/lib/utils.js","../../../node_modules/axios/lib/core/AxiosError.js","../../../node_modules/axios/lib/helpers/toFormData.js","../../../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../node_modules/axios/lib/helpers/buildURL.js","../../../node_modules/axios/lib/core/InterceptorManager.js","../../../node_modules/axios/lib/defaults/transitional.js","../../../node_modules/axios/lib/platform/browser/index.js","../../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../../node_modules/axios/lib/platform/browser/classes/FormData.js","../../../node_modules/axios/lib/platform/browser/classes/Blob.js","../../../node_modules/axios/lib/platform/common/utils.js","../../../node_modules/axios/lib/platform/index.js","../../../node_modules/axios/lib/helpers/formDataToJSON.js","../../../node_modules/axios/lib/defaults/index.js","../../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../node_modules/axios/lib/helpers/parseHeaders.js","../../../node_modules/axios/lib/core/AxiosHeaders.js","../../../node_modules/axios/lib/core/transformData.js","../../../node_modules/axios/lib/cancel/isCancel.js","../../../node_modules/axios/lib/cancel/CanceledError.js","../../../node_modules/axios/lib/core/settle.js","../../../node_modules/axios/lib/helpers/progressEventReducer.js","../../../node_modules/axios/lib/helpers/speedometer.js","../../../node_modules/axios/lib/helpers/throttle.js","../../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../node_modules/axios/lib/helpers/cookies.js","../../../node_modules/axios/lib/core/buildFullPath.js","../../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../node_modules/axios/lib/helpers/combineURLs.js","../../../node_modules/axios/lib/core/mergeConfig.js","../../../node_modules/axios/lib/helpers/resolveConfig.js","../../../node_modules/axios/lib/adapters/xhr.js","../../../node_modules/axios/lib/helpers/parseProtocol.js","../../../node_modules/axios/lib/helpers/composeSignals.js","../../../node_modules/axios/lib/helpers/trackStream.js","../../../node_modules/axios/lib/adapters/fetch.js","../../../node_modules/axios/lib/adapters/adapters.js","../../../node_modules/axios/lib/helpers/null.js","../../../node_modules/axios/lib/core/dispatchRequest.js","../../../node_modules/axios/lib/env/data.js","../../../node_modules/axios/lib/helpers/validator.js","../../../node_modules/axios/lib/core/Axios.js","../../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../../node_modules/axios/lib/axios.js","../../../node_modules/axios/lib/cancel/CancelToken.js","../../../node_modules/axios/lib/helpers/spread.js","../../../node_modules/axios/lib/helpers/isAxiosError.js","../../../node_modules/axios/index.js","../../../node_modules/preline/src/utils/index.ts","../../../node_modules/preline/src/plugins/base-plugin/index.ts","../../../node_modules/preline/src/plugins/copy-markup/index.ts","../../../node_modules/preline/src/plugins/accordion/index.ts","../../../node_modules/preline/src/plugins/carousel/index.ts","../../../node_modules/preline/src/plugins/collapse/index.ts","../../../node_modules/preline/src/constants.ts","../../../node_modules/preline/src/plugins/combobox/index.ts","../../../node_modules/@popperjs/core/lib/enums.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/@popperjs/core/lib/utils/within.js","../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../node_modules/@popperjs/core/lib/createPopper.js","../../../node_modules/@popperjs/core/lib/utils/debounce.js","../../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../node_modules/@popperjs/core/lib/popper.js","../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../node_modules/preline/src/plugins/dropdown/index.ts","../../../node_modules/preline/src/plugins/input-number/index.ts","../../../node_modules/preline/src/plugins/overlay/index.ts","../../../node_modules/preline/src/plugins/pin-input/index.ts","../../../node_modules/preline/src/plugins/remove-element/index.ts","../../../node_modules/preline/src/plugins/search-by-json/index.ts","../../../node_modules/preline/src/plugins/scrollspy/index.ts","../../../node_modules/preline/src/plugins/select/index.ts","../../../node_modules/preline/src/plugins/stepper/index.ts","../../../node_modules/preline/src/plugins/strong-password/index.ts","../../../node_modules/preline/src/plugins/tabs/index.ts","../../../node_modules/preline/src/plugins/theme-switch/index.ts","../../../node_modules/preline/src/plugins/toggle-count/index.ts","../../../node_modules/preline/src/plugins/toggle-password/index.ts","../../../node_modules/preline/src/plugins/tooltip/index.ts","../../../node_modules/preline/src/spa/index.ts","../../../node_modules/preline/src/static/index.ts","../../../node_modules/swiper/shared/ssr-window.esm.mjs","../../../node_modules/swiper/shared/utils.mjs","../../../node_modules/swiper/shared/swiper-core.mjs"],"sourcesContent":["'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.8.4\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","const stringToBoolean = (string: string): boolean => {\n\treturn string === 'true' ? true : false;\n};\n\nconst getClassProperty = (el: HTMLElement, prop: string, val = '') => {\n\treturn (window.getComputedStyle(el).getPropertyValue(prop) || val).replace(\n\t\t' ',\n\t\t'',\n\t);\n};\n\nconst getClassPropertyAlt = (\n\tel: HTMLElement,\n\tprop?: string,\n\tval: string = '',\n) => {\n\tlet targetClass = '';\n\n\tel.classList.forEach((c) => {\n\t\tif (c.includes(prop)) {\n\t\t\ttargetClass = c;\n\t\t}\n\t});\n\n\treturn targetClass.match(/:(.*)]/) ? targetClass.match(/:(.*)]/)[1] : val;\n};\n\n// const getClassPropertyAlt = (\n// \tel: HTMLElement,\n// \tprop: string,\n// \tval: string = '',\n// ): string => {\n// \tlet targetClass = '';\n\n// \tel.classList.forEach((className) => {\n// \t\tif (className.includes(prop)) {\n// \t\t\ttargetClass = className;\n// \t\t}\n// \t});\n\n// \tconst match = targetClass.match(/:(.*)/);\n\n// \treturn match ? match[1] : val;\n// };\n\nconst isIOS = () => {\n\tif (/iPad|iPhone|iPod/.test(navigator.platform)) {\n\t\treturn true;\n\t} else {\n\t\treturn (\n\t\t\tnavigator.maxTouchPoints &&\n\t\t\tnavigator.maxTouchPoints > 2 &&\n\t\t\t/MacIntel/.test(navigator.platform)\n\t\t);\n\t}\n};\n\nconst isIpadOS = () => {\n\treturn (\n\t\tnavigator.maxTouchPoints &&\n\t\tnavigator.maxTouchPoints > 2 &&\n\t\t/MacIntel/.test(navigator.platform)\n\t);\n};\n\nconst isEnoughSpace = (\n\tel: HTMLElement,\n\ttoggle: HTMLElement,\n\tpreferredPosition: 'top' | 'bottom' | 'auto' = 'auto',\n\tspace = 10,\n\twrapper: HTMLElement | null = null,\n) => {\n\tconst referenceRect = toggle.getBoundingClientRect();\n\tconst wrapperRect = wrapper ? wrapper.getBoundingClientRect() : null;\n\tconst viewportHeight = window.innerHeight;\n\tconst spaceAbove = wrapperRect\n\t\t? referenceRect.top - wrapperRect.top\n\t\t: referenceRect.top;\n\tconst spaceBelow =\n\t\t(wrapper ? wrapperRect.bottom : viewportHeight) - referenceRect.bottom;\n\tconst minimumSpaceRequired = el.clientHeight + space;\n\n\tif (preferredPosition === 'bottom') {\n\t\treturn spaceBelow >= minimumSpaceRequired;\n\t} else if (preferredPosition === 'top') {\n\t\treturn spaceAbove >= minimumSpaceRequired;\n\t} else {\n\t\treturn (\n\t\t\tspaceAbove >= minimumSpaceRequired || spaceBelow >= minimumSpaceRequired\n\t\t);\n\t}\n};\n\nconst isFormElement = (target: HTMLElement) => {\n\treturn (\n\t\ttarget instanceof HTMLInputElement ||\n\t\ttarget instanceof HTMLTextAreaElement ||\n\t\ttarget instanceof HTMLSelectElement\n\t);\n};\n\nconst isParentOrElementHidden = (element: any): any => {\n\tif (!element) return false;\n\n\tconst computedStyle = window.getComputedStyle(element);\n\n\tif (computedStyle.display === 'none') return true;\n\n\treturn isParentOrElementHidden(element.parentElement);\n};\n\nconst debounce = (func: Function, timeout = 200) => {\n\tlet timer: any;\n\n\treturn (...args: any[]) => {\n\t\tclearTimeout(timer);\n\n\t\ttimer = setTimeout(() => {\n\t\t\tfunc.apply(this, args);\n\t\t}, timeout);\n\t};\n};\n\nconst dispatch = (evt: string, element: any, payload: any = null) => {\n\tconst event = new CustomEvent(evt, {\n\t\tdetail: { payload },\n\t\tbubbles: true,\n\t\tcancelable: true,\n\t\tcomposed: false,\n\t});\n\n\telement.dispatchEvent(event);\n};\n\nconst afterTransition = (el: HTMLElement, callback: Function) => {\n\tconst handleEvent = () => {\n\t\tcallback();\n\n\t\tel.removeEventListener('transitionend', handleEvent, true);\n\t};\n\tconst hasTransition =\n\t\twindow.getComputedStyle(el, null).getPropertyValue('transition') !==\n\t\t(navigator.userAgent.includes('Firefox') ? 'all' : 'all 0s ease 0s');\n\n\tif (hasTransition) el.addEventListener('transitionend', handleEvent, true);\n\telse callback();\n};\n\nconst htmlToElement = (html: string): HTMLElement => {\n\tconst template = document.createElement('template');\n\thtml = html.trim();\n\ttemplate.innerHTML = html;\n\n\treturn template.content.firstChild as HTMLElement;\n};\n\nconst classToClassList = (\n\tclasses: string,\n\ttarget: HTMLElement,\n\tsplitter = ' ',\n\taction: 'add' | 'remove' = 'add',\n) => {\n\tconst classesToArray = classes.split(splitter);\n\tclassesToArray.forEach((cl) =>\n\t\taction === 'add' ? target.classList.add(cl) : target.classList.remove(cl),\n\t);\n};\n\nconst menuSearchHistory = {\n\thistoryIndex: -1,\n\n\taddHistory(index: number) {\n\t\tthis.historyIndex = index;\n\t},\n\n\texistsInHistory(index: number) {\n\t\treturn index > this.historyIndex;\n\t},\n\n\tclearHistory() {\n\t\tthis.historyIndex = -1;\n\t},\n};\n\nexport {\n\tstringToBoolean,\n\tgetClassProperty,\n\tgetClassPropertyAlt,\n\tisIOS,\n\tisIpadOS,\n\tisEnoughSpace,\n\tisParentOrElementHidden,\n\tisFormElement,\n\tdebounce,\n\tdispatch,\n\tafterTransition,\n\thtmlToElement,\n\tclassToClassList,\n\tmenuSearchHistory,\n};\n","/*\n * HSBasePlugin\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { IBasePlugin } from './interfaces';\n\nexport default class HSBasePlugin\n\timplements IBasePlugin\n{\n\tconstructor(\n\t\tpublic el: E,\n\t\tpublic options: O,\n\t\tpublic events?: any,\n\t) {\n\t\tthis.el = el;\n\t\tthis.options = options;\n\t\tthis.events = {};\n\t}\n\n\tpublic createCollection(collection: any[], element: any) {\n\t\tcollection.push({\n\t\t\tid: element?.el?.id || collection.length + 1,\n\t\t\telement,\n\t\t});\n\t}\n\n\tpublic fireEvent(evt: string, payload: any = null) {\n\t\tif (this.events.hasOwnProperty(evt)) return this.events[evt](payload);\n\t}\n\n\tpublic on(evt: string, cb: Function) {\n\t\tthis.events[evt] = cb;\n\t}\n}\n","/*\n * HSCopyMarkup\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { dispatch } from '../../utils';\n\nimport { ICopyMarkupOptions, ICopyMarkup } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSCopyMarkup\n\textends HSBasePlugin\n\timplements ICopyMarkup\n{\n\tprivate readonly targetSelector: string | null;\n\tprivate readonly wrapperSelector: string | null;\n\tprivate readonly limit: number | null;\n\n\tprivate target: HTMLElement | null;\n\tprivate wrapper: HTMLElement | null;\n\tprivate items: HTMLElement[] | null;\n\n\tconstructor(el: HTMLElement, options?: ICopyMarkupOptions) {\n\t\tsuper(el, options);\n\n\t\tconst data = el.getAttribute('data-hs-copy-markup');\n\t\tconst dataOptions: ICopyMarkupOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.targetSelector = concatOptions?.targetSelector || null;\n\t\tthis.wrapperSelector = concatOptions?.wrapperSelector || null;\n\t\tthis.limit = concatOptions?.limit || null;\n\t\tthis.items = [];\n\n\t\tif (this.targetSelector) this.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsCopyMarkupCollection, this);\n\n\t\tthis.setTarget();\n\t\tthis.setWrapper();\n\t\tthis.addPredefinedItems();\n\t\tthis.el.addEventListener('click', () => this.copy());\n\t}\n\n\tprivate copy() {\n\t\tif (this.limit && this.items.length >= this.limit) return false;\n\n\t\tif (this.el.hasAttribute('disabled')) this.el.setAttribute('disabled', '');\n\n\t\tconst copiedElement = this.target.cloneNode(true) as HTMLElement;\n\n\t\tthis.addToItems(copiedElement);\n\n\t\tif (this.limit && this.items.length >= this.limit)\n\t\t\tthis.el.setAttribute('disabled', 'disabled');\n\n\t\tthis.fireEvent('copy', copiedElement);\n\t\tdispatch('copy.hs.copyMarkup', copiedElement, copiedElement);\n\t}\n\n\tprivate addPredefinedItems() {\n\t\tArray.from(this.wrapper.children)\n\t\t\t.filter(\n\t\t\t\t(el: HTMLElement) => !el.classList.contains('[--ignore-for-count]'),\n\t\t\t)\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tthis.addToItems(el);\n\t\t\t});\n\t}\n\n\tprivate setTarget() {\n\t\tconst target: HTMLElement =\n\t\t\ttypeof this.targetSelector === 'string'\n\t\t\t\t? (document\n\t\t\t\t\t\t.querySelector(this.targetSelector)\n\t\t\t\t\t\t.cloneNode(true) as HTMLElement)\n\t\t\t\t: ((this.targetSelector as HTMLElement).cloneNode(true) as HTMLElement);\n\n\t\ttarget.removeAttribute('id');\n\n\t\tthis.target = target;\n\t}\n\n\tprivate setWrapper() {\n\t\tthis.wrapper =\n\t\t\ttypeof this.wrapperSelector === 'string'\n\t\t\t\t? document.querySelector(this.wrapperSelector)\n\t\t\t\t: this.wrapperSelector;\n\t}\n\n\tprivate addToItems(item: HTMLElement) {\n\t\tconst deleteItemButton = item.querySelector(\n\t\t\t'[data-hs-copy-markup-delete-item]',\n\t\t);\n\n\t\tif (this.wrapper) this.wrapper.append(item);\n\t\telse this.el.before(item);\n\n\t\tif (deleteItemButton)\n\t\t\tdeleteItemButton.addEventListener('click', () => this.delete(item));\n\n\t\tthis.items.push(item);\n\t}\n\n\t// Public methods\n\tpublic delete(target: HTMLElement) {\n\t\tconst index = this.items.indexOf(target);\n\n\t\tif (index !== -1) this.items.splice(index, 1);\n\n\t\ttarget.remove();\n\n\t\tthis.fireEvent('delete', target);\n\t\tdispatch('delete.hs.copyMarkup', target, target);\n\t}\n\n\t// Static method\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsCopyMarkupCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsCopyMarkupCollection) window.$hsCopyMarkupCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-copy-markup]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsCopyMarkupCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tconst data = el.getAttribute('data-hs-copy-markup');\n\t\t\t\t\tconst options: ICopyMarkupOptions = data ? JSON.parse(data) : {};\n\n\t\t\t\t\tnew HSCopyMarkup(el, options);\n\t\t\t\t}\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSCopyMarkup: Function;\n\t\t$hsCopyMarkupCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSCopyMarkup.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Copy markup collection:', window.$hsCopyMarkupCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSCopyMarkup = HSCopyMarkup;\n}\n\nexport default HSCopyMarkup;\n","/*\n * HSAccordion\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { dispatch, afterTransition } from '../../utils';\n\nimport {\n\tIAccordionOptions,\n\tIAccordion,\n\tIAccordionTreeView,\n\tIAccordionTreeViewStaticOptions,\n} from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSAccordion\n\textends HSBasePlugin\n\timplements IAccordion\n{\n\tprivate readonly toggle: HTMLElement | null;\n\tpublic content: HTMLElement | null;\n\tprivate readonly group: HTMLElement | null;\n\tprivate readonly isAlwaysOpened: boolean;\n\n\tstatic selectable: IAccordionTreeView[];\n\n\tconstructor(el: HTMLElement, options?: IAccordionOptions, events?: {}) {\n\t\tsuper(el, options, events);\n\n\t\tthis.toggle = this.el.querySelector('.hs-accordion-toggle') || null;\n\t\tthis.content = this.el.querySelector('.hs-accordion-content') || null;\n\t\tthis.group = this.el.closest('.hs-accordion-group') || null;\n\t\tthis.isAlwaysOpened =\n\t\t\tthis.group.hasAttribute('data-hs-accordion-always-open') || false;\n\n\t\tif (this.toggle && this.content) this.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsAccordionCollection, this);\n\n\t\tthis.toggle.addEventListener('click', (evt: Event) => {\n\t\t\tevt.stopPropagation();\n\n\t\t\tif (this.el.classList.contains('active')) {\n\t\t\t\tthis.hide();\n\t\t\t} else {\n\t\t\t\tthis.show();\n\t\t\t}\n\t\t});\n\t}\n\n\t// Public methods\n\tpublic show() {\n\t\tif (\n\t\t\tthis.group &&\n\t\t\t!this.isAlwaysOpened &&\n\t\t\tthis.group.querySelector(':scope > .hs-accordion.active') &&\n\t\t\tthis.group.querySelector(':scope > .hs-accordion.active') !== this.el\n\t\t) {\n\t\t\tconst currentlyOpened = window.$hsAccordionCollection.find(\n\t\t\t\t(el) =>\n\t\t\t\t\tel.element.el ===\n\t\t\t\t\tthis.group.querySelector(':scope > .hs-accordion.active'),\n\t\t\t);\n\n\t\t\tcurrentlyOpened.element.hide();\n\t\t}\n\n\t\tif (this.el.classList.contains('active')) return false;\n\n\t\tthis.el.classList.add('active');\n\n\t\tthis.content.style.display = 'block';\n\t\tthis.content.style.height = '0';\n\t\tsetTimeout(() => {\n\t\t\tthis.content.style.height = `${this.content.scrollHeight}px`;\n\t\t});\n\n\t\tafterTransition(this.content, () => {\n\t\t\tthis.content.style.display = 'block';\n\t\t\tthis.content.style.height = '';\n\n\t\t\tthis.fireEvent('open', this.el);\n\t\t\tdispatch('open.hs.accordion', this.el, this.el);\n\t\t});\n\t}\n\n\tpublic hide() {\n\t\tif (!this.el.classList.contains('active')) return false;\n\n\t\tthis.el.classList.remove('active');\n\n\t\tthis.content.style.height = `${this.content.scrollHeight}px`;\n\t\tsetTimeout(() => {\n\t\t\tthis.content.style.height = '0';\n\t\t});\n\n\t\tafterTransition(this.content, () => {\n\t\t\tthis.content.style.display = '';\n\t\t\tthis.content.style.height = '0';\n\n\t\t\tthis.fireEvent('close', this.el);\n\t\t\tdispatch('close.hs.accordion', this.el, this.el);\n\t\t});\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsAccordionCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element.el\n\t\t\t: null;\n\t}\n\n\tstatic show(target: HTMLElement) {\n\t\tconst elInCollection = window.$hsAccordionCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (\n\t\t\telInCollection &&\n\t\t\telInCollection.element.content.style.display !== 'block'\n\t\t)\n\t\t\telInCollection.element.show();\n\t}\n\n\tstatic hide(target: HTMLElement) {\n\t\tconst elInCollection = window.$hsAccordionCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (\n\t\t\telInCollection &&\n\t\t\telInCollection.element.content.style.display === 'block'\n\t\t)\n\t\t\telInCollection.element.hide();\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsAccordionCollection) window.$hsAccordionCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('.hs-accordion:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsAccordionCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSAccordion(el);\n\t\t\t});\n\t}\n\n\tstatic treeView() {\n\t\tif (!document.querySelectorAll('.hs-accordion-treeview-root').length)\n\t\t\treturn false;\n\n\t\tthis.selectable = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('.hs-accordion-treeview-root')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tconst data = el?.getAttribute('data-hs-accordion-options');\n\t\t\t\tconst options: IAccordionTreeViewStaticOptions = data\n\t\t\t\t\t? JSON.parse(data)\n\t\t\t\t\t: {};\n\n\t\t\t\tthis.selectable.push({\n\t\t\t\t\tel,\n\t\t\t\t\toptions: { ...options },\n\t\t\t\t});\n\t\t\t});\n\n\t\tif (this.selectable.length)\n\t\t\tthis.selectable.forEach((item) => {\n\t\t\t\tconst { el } = item;\n\n\t\t\t\tel.querySelectorAll('.hs-accordion-selectable').forEach(\n\t\t\t\t\t(_el: HTMLElement) => {\n\t\t\t\t\t\t_el.addEventListener('click', (evt: Event) => {\n\t\t\t\t\t\t\tevt.stopPropagation();\n\n\t\t\t\t\t\t\tthis.toggleSelected(item, _el);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\tstatic toggleSelected(root: IAccordionTreeView, item: HTMLElement) {\n\t\tif (item.classList.contains('selected')) item.classList.remove('selected');\n\t\telse {\n\t\t\troot.el\n\t\t\t\t.querySelectorAll('.hs-accordion-selectable')\n\t\t\t\t.forEach((el: HTMLElement) => el.classList.remove('selected'));\n\t\t\titem.classList.add('selected');\n\t\t}\n\t}\n\n\t// Backward compatibility\n\tstatic on(evt: string, target: HTMLElement, cb: Function) {\n\t\tconst elInCollection = window.$hsAccordionCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (elInCollection) elInCollection.element.events[evt] = cb;\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSAccordion: Function;\n\t\t$hsAccordionCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSAccordion.autoInit();\n\n\tif (document.querySelectorAll('.hs-accordion-treeview-root').length)\n\t\tHSAccordion.treeView();\n\n\t// Uncomment for debug\n\t// console.log('Accordion collection:', window.$hsAccordionCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSAccordion = HSAccordion;\n}\n\nexport default HSAccordion;\n","/*\n * HSCarousel\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { ICarousel, ICarouselOptions } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSCarousel extends HSBasePlugin implements ICarousel {\n\tprivate readonly inner: HTMLElement | null;\n\tprivate readonly slides: NodeListOf | undefined[];\n\tprivate readonly prev: HTMLElement | null;\n\tprivate readonly next: HTMLElement | null;\n\tprivate readonly dots: NodeListOf | null;\n\tprivate sliderWidth: number;\n\tprivate currentIndex: number;\n\tprivate readonly loadingClasses: string | string[];\n\tprivate readonly loadingClassesRemove: string | string[];\n\tprivate readonly loadingClassesAdd: string | string[];\n\tprivate readonly afterLoadingClassesAdd: string | string[];\n\tprivate readonly isAutoPlay: boolean;\n\tprivate readonly speed: number;\n\tprivate readonly isInfiniteLoop: boolean;\n\tprivate timer: any;\n\n\t// Touch events' help variables\n\tprivate readonly touchX: {\n\t\tstart: number;\n\t\tend: number;\n\t};\n\n\tconstructor(el: HTMLElement, options?: ICarouselOptions) {\n\t\tsuper(el, options);\n\n\t\tconst data = el.getAttribute('data-hs-carousel');\n\t\tconst dataOptions: ICarouselOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.currentIndex = concatOptions.currentIndex || 0;\n\t\tthis.loadingClasses = concatOptions.loadingClasses\n\t\t\t? `${concatOptions.loadingClasses}`.split(',')\n\t\t\t: null;\n\t\tthis.loadingClassesRemove = this.loadingClasses?.[0]\n\t\t\t? this.loadingClasses[0].split(' ')\n\t\t\t: 'opacity-0';\n\t\tthis.loadingClassesAdd = this.loadingClasses?.[1]\n\t\t\t? this.loadingClasses[1].split(' ')\n\t\t\t: '';\n\t\tthis.afterLoadingClassesAdd = this.loadingClasses?.[2]\n\t\t\t? this.loadingClasses[2].split(' ')\n\t\t\t: '';\n\t\tthis.isAutoPlay =\n\t\t\ttypeof concatOptions.isAutoPlay !== 'undefined'\n\t\t\t\t? concatOptions.isAutoPlay\n\t\t\t\t: false;\n\t\tthis.speed = concatOptions.speed || 4000;\n\t\tthis.isInfiniteLoop =\n\t\t\ttypeof concatOptions.isInfiniteLoop !== 'undefined'\n\t\t\t\t? concatOptions.isInfiniteLoop\n\t\t\t\t: true;\n\t\tthis.inner = this.el.querySelector('.hs-carousel-body') || null;\n\t\tthis.slides = this.el.querySelectorAll('.hs-carousel-slide') || [];\n\t\tthis.prev = this.el.querySelector('.hs-carousel-prev') || null;\n\t\tthis.next = this.el.querySelector('.hs-carousel-next') || null;\n\t\tthis.dots = this.el.querySelectorAll('.hs-carousel-pagination > *') || null;\n\t\tthis.sliderWidth = this.inner.parentElement.clientWidth;\n\n\t\t// Touch events' help variables\n\t\tthis.touchX = {\n\t\t\tstart: 0,\n\t\t\tend: 0,\n\t\t};\n\n\t\tthis.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsCarouselCollection, this);\n\n\t\tif (this.inner) {\n\t\t\tthis.calculateWidth();\n\t\t\tif (this.loadingClassesRemove) {\n\t\t\t\tif (typeof this.loadingClassesRemove === 'string')\n\t\t\t\t\tthis.inner.classList.remove(this.loadingClassesRemove);\n\t\t\t\telse this.inner.classList.remove(...this.loadingClassesRemove);\n\t\t\t}\n\t\t\tif (this.loadingClassesAdd) {\n\t\t\t\tif (typeof this.loadingClassesAdd === 'string')\n\t\t\t\t\tthis.inner.classList.add(this.loadingClassesAdd);\n\t\t\t\telse this.inner.classList.add(...this.loadingClassesAdd);\n\t\t\t}\n\t\t}\n\t\tif (this.prev)\n\t\t\tthis.prev.addEventListener('click', () => {\n\t\t\t\tthis.goToPrev();\n\t\t\t\tif (this.isAutoPlay) {\n\t\t\t\t\tthis.resetTimer();\n\t\t\t\t\tthis.setTimer();\n\t\t\t\t}\n\t\t\t});\n\t\tif (this.next)\n\t\t\tthis.next.addEventListener('click', () => {\n\t\t\t\tthis.goToNext();\n\t\t\t\tif (this.isAutoPlay) {\n\t\t\t\t\tthis.resetTimer();\n\t\t\t\t\tthis.setTimer();\n\t\t\t\t}\n\t\t\t});\n\t\tif (this.dots) {\n\t\t\tthis.dots.forEach((el, i) =>\n\t\t\t\tel.addEventListener('click', () => {\n\t\t\t\t\tthis.goTo(i);\n\t\t\t\t\tif (this.isAutoPlay) {\n\t\t\t\t\t\tthis.resetTimer();\n\t\t\t\t\t\tthis.setTimer();\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t\tif (this.slides.length) {\n\t\t\tthis.addCurrentClass();\n\t\t\tif (!this.isInfiniteLoop) this.addDisabledClass();\n\t\t\tif (this.isAutoPlay) this.autoPlay();\n\t\t}\n\t\tif (this.inner && this.afterLoadingClassesAdd) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (typeof this.afterLoadingClassesAdd === 'string')\n\t\t\t\t\tthis.inner.classList.add(this.afterLoadingClassesAdd);\n\t\t\t\telse this.inner.classList.add(...this.afterLoadingClassesAdd);\n\t\t\t});\n\t\t}\n\n\t\tthis.el.classList.add('init');\n\n\t\tthis.el.addEventListener('touchstart', (evt) => {\n\t\t\tthis.touchX.start = evt.changedTouches[0].screenX;\n\t\t});\n\n\t\tthis.el.addEventListener('touchend', (evt) => {\n\t\t\tthis.touchX.end = evt.changedTouches[0].screenX;\n\n\t\t\tthis.detectDirection();\n\t\t});\n\n\t\tthis.observeResize();\n\t}\n\n\tprivate observeResize() {\n\t\tconst resizeObserver = new ResizeObserver(() => this.recalculateWidth());\n\n\t\tresizeObserver.observe(document.querySelector('body'));\n\t}\n\n\tprivate calculateWidth() {\n\t\t// Set slider width\n\t\tthis.inner.style.width = `${this.sliderWidth * this.slides.length}px`;\n\t\tthis.inner.style.transform = `translate(-${\n\t\t\tthis.currentIndex * this.sliderWidth\n\t\t}px, 0px)`;\n\n\t\t// Set width to each slide\n\t\tthis.slides.forEach((el) => {\n\t\t\tel.style.width = `${this.sliderWidth}px`;\n\t\t});\n\t}\n\n\tprivate addCurrentClass() {\n\t\tthis.slides.forEach((el, i) => {\n\t\t\tif (i === this.currentIndex) {\n\t\t\t\tel.classList.add('active');\n\t\t\t} else {\n\t\t\t\tel.classList.remove('active');\n\t\t\t}\n\t\t});\n\n\t\tif (this.dots) {\n\t\t\tthis.dots.forEach((el, i) => {\n\t\t\t\tif (i === this.currentIndex) {\n\t\t\t\t\tel.classList.add('active');\n\t\t\t\t} else {\n\t\t\t\t\tel.classList.remove('active');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate addDisabledClass() {\n\t\tif (!this.prev || !this.next) return false;\n\n\t\tif (this.currentIndex === 0) {\n\t\t\tthis.next.classList.remove('disabled');\n\t\t\tthis.prev.classList.add('disabled');\n\t\t} else if (this.currentIndex === this.slides.length - 1) {\n\t\t\tthis.prev.classList.remove('disabled');\n\t\t\tthis.next.classList.add('disabled');\n\t\t} else {\n\t\t\tthis.prev.classList.remove('disabled');\n\t\t\tthis.next.classList.remove('disabled');\n\t\t}\n\t}\n\n\tprivate autoPlay() {\n\t\tthis.setTimer();\n\t}\n\n\tprivate setTimer() {\n\t\tthis.timer = setInterval(() => {\n\t\t\tif (this.currentIndex === this.slides.length - 1) this.goTo(0);\n\t\t\telse this.goToNext();\n\t\t}, this.speed);\n\t}\n\n\tprivate resetTimer() {\n\t\tclearInterval(this.timer);\n\t}\n\n\tprivate detectDirection() {\n\t\tconst { start, end } = this.touchX;\n\n\t\tif (end < start) this.goToNext();\n\t\tif (end > start) this.goToPrev();\n\t}\n\n\t// Public methods\n\tpublic recalculateWidth() {\n\t\tthis.sliderWidth = this.inner.parentElement.clientWidth;\n\n\t\tthis.calculateWidth();\n\t}\n\n\tpublic goToPrev() {\n\t\tif (this.currentIndex === 0 && this.isInfiniteLoop) {\n\t\t\tthis.currentIndex = this.slides.length - 1;\n\t\t\tthis.inner.style.transform = `translate(-${\n\t\t\t\tthis.currentIndex * this.sliderWidth\n\t\t\t}px, 0px)`;\n\n\t\t\tthis.addCurrentClass();\n\t\t} else if (this.currentIndex !== 0) {\n\t\t\tthis.currentIndex -= 1;\n\t\t\tthis.inner.style.transform = `translate(-${\n\t\t\t\tthis.currentIndex * this.sliderWidth\n\t\t\t}px, 0px)`;\n\n\t\t\tthis.addCurrentClass();\n\t\t\tthis.addDisabledClass();\n\t\t}\n\t}\n\n\tpublic goToNext() {\n\t\tif (this.currentIndex === this.slides.length - 1 && this.isInfiniteLoop) {\n\t\t\tthis.currentIndex = 0;\n\t\t\tthis.inner.style.transform = `translate(-${\n\t\t\t\tthis.currentIndex * this.sliderWidth\n\t\t\t}px, 0px)`;\n\n\t\t\tthis.addCurrentClass();\n\t\t} else if (this.currentIndex < this.slides.length - 1) {\n\t\t\tthis.currentIndex += 1;\n\t\t\tthis.inner.style.transform = `translate(-${\n\t\t\t\tthis.currentIndex * this.sliderWidth\n\t\t\t}px, 0px)`;\n\n\t\t\tthis.addCurrentClass();\n\t\t\tthis.addDisabledClass();\n\t\t}\n\t}\n\n\tpublic goTo(i: number) {\n\t\tthis.currentIndex = i;\n\t\tthis.inner.style.transform = `translate(-${\n\t\t\tthis.currentIndex * this.sliderWidth\n\t\t}px, 0px)`;\n\n\t\tthis.addCurrentClass();\n\t\tif (!this.isInfiniteLoop) this.addDisabledClass();\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsCarouselCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsCarouselCollection) window.$hsCarouselCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-carousel]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsCarouselCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSCarousel(el);\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSCarousel: Function;\n\t\t$hsCarouselCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSCarousel.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Carousel collection:', window.$hsCarouselCollection);\n});\n\nwindow.addEventListener('resize', () => {\n\tif (!window.$hsCarouselCollection) return false;\n\n\twindow.$hsCarouselCollection.forEach((el) => {\n\t\tel.element.recalculateWidth();\n\t});\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSCarousel = HSCarousel;\n}\n\nexport default HSCarousel;\n","/*\n * HSCollapse\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { dispatch, afterTransition } from '../../utils';\n\nimport { ICollapse } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSCollapse extends HSBasePlugin<{}> implements ICollapse {\n\tprivate readonly contentId: string | null;\n\tpublic content: HTMLElement | null;\n\tprivate animationInProcess: boolean;\n\n\tconstructor(el: HTMLElement, options?: {}, events?: {}) {\n\t\tsuper(el, options, events);\n\n\t\tthis.contentId = this.el.dataset.hsCollapse;\n\t\tthis.content = document.querySelector(this.contentId);\n\t\tthis.animationInProcess = false;\n\n\t\tif (this.content) this.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsCollapseCollection, this);\n\n\t\tthis.el.addEventListener('click', () => {\n\t\t\tif (this.content.classList.contains('open')) {\n\t\t\t\tthis.hide();\n\t\t\t} else {\n\t\t\t\tthis.show();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate hideAllMegaMenuItems() {\n\t\tthis.content\n\t\t\t.querySelectorAll('.hs-mega-menu-content.block')\n\t\t\t.forEach((el) => {\n\t\t\t\tel.classList.remove('block');\n\t\t\t\tel.classList.add('hidden');\n\t\t\t});\n\t}\n\n\t// Public methods\n\tpublic show() {\n\t\tif (this.animationInProcess || this.el.classList.contains('open'))\n\t\t\treturn false;\n\n\t\tthis.animationInProcess = true;\n\n\t\tthis.el.classList.add('open');\n\t\tthis.content.classList.add('open');\n\t\tthis.content.classList.remove('hidden');\n\n\t\tthis.content.style.height = '0';\n\t\tsetTimeout(() => {\n\t\t\tthis.content.style.height = `${this.content.scrollHeight}px`;\n\n\t\t\tthis.fireEvent('beforeOpen', this.el);\n\t\t\tdispatch('beforeOpen.hs.collapse', this.el, this.el);\n\t\t});\n\n\t\tafterTransition(this.content, () => {\n\t\t\tthis.content.style.height = '';\n\n\t\t\tthis.fireEvent('open', this.el);\n\t\t\tdispatch('open.hs.collapse', this.el, this.el);\n\n\t\t\tthis.animationInProcess = false;\n\t\t});\n\t}\n\n\tpublic hide() {\n\t\tif (this.animationInProcess || !this.el.classList.contains('open'))\n\t\t\treturn false;\n\n\t\tthis.animationInProcess = true;\n\n\t\tthis.el.classList.remove('open');\n\n\t\tthis.content.style.height = `${this.content.scrollHeight}px`;\n\t\tsetTimeout(() => {\n\t\t\tthis.content.style.height = '0';\n\t\t});\n\n\t\tthis.content.classList.remove('open');\n\n\t\tafterTransition(this.content, () => {\n\t\t\tthis.content.classList.add('hidden');\n\t\t\tthis.content.style.height = '';\n\n\t\t\tthis.fireEvent('hide', this.el);\n\t\t\tdispatch('hide.hs.collapse', this.el, this.el);\n\n\t\t\tthis.animationInProcess = false;\n\t\t});\n\n\t\tif (this.content.querySelectorAll('.hs-mega-menu-content.block').length) {\n\t\t\tthis.hideAllMegaMenuItems();\n\t\t}\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement, isInstance = false) {\n\t\tconst elInCollection = window.$hsCollapseCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element.el\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsCollapseCollection) window.$hsCollapseCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('.hs-collapse-toggle:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsCollapseCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSCollapse(el);\n\t\t\t});\n\t}\n\n\tstatic show(target: HTMLElement) {\n\t\tconst elInCollection = window.$hsCollapseCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (\n\t\t\telInCollection &&\n\t\t\telInCollection.element.content.classList.contains('hidden')\n\t\t)\n\t\t\telInCollection.element.show();\n\t}\n\n\tstatic hide(target: HTMLElement) {\n\t\tconst elInCollection = window.$hsCollapseCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (\n\t\t\telInCollection &&\n\t\t\t!elInCollection.element.content.classList.contains('hidden')\n\t\t)\n\t\t\telInCollection.element.hide();\n\t}\n\n\t// Backward compatibility\n\tstatic on(evt: string, target: HTMLElement, cb: Function) {\n\t\tconst elInCollection = window.$hsCollapseCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (elInCollection) elInCollection.element.events[evt] = cb;\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSCollapse: Function;\n\t\t$hsCollapseCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSCollapse.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Collapse collection:', window.$hsCollapseCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSCollapse = HSCollapse;\n}\n\nexport default HSCollapse;\n","export const POSITIONS: any = {\n\tauto: 'auto',\n\t'auto-start': 'auto-start',\n\t'auto-end': 'auto-end',\n\ttop: 'top',\n\t'top-left': 'top-start',\n\t'top-right': 'top-end',\n\tbottom: 'bottom',\n\t'bottom-left': 'bottom-start',\n\t'bottom-right': 'bottom-end',\n\tright: 'right',\n\t'right-start': 'right-start',\n\t'right-end': 'right-end',\n\tleft: 'left',\n\t'left-start': 'left-start',\n\t'left-end': 'left-end',\n};\n\nexport const DROPDOWN_ACCESSIBILITY_KEY_SET = [\n\t'Escape',\n\t'ArrowUp',\n\t'ArrowDown',\n\t'Home',\n\t'End',\n\t'Enter',\n];\n\nexport const OVERLAY_ACCESSIBILITY_KEY_SET = ['Escape', 'Tab'];\n\nexport const TABS_ACCESSIBILITY_KEY_SET = [\n\t'ArrowUp',\n\t'ArrowLeft',\n\t'ArrowDown',\n\t'ArrowRight',\n\t'Home',\n\t'End',\n];\n\nexport const SELECT_ACCESSIBILITY_KEY_SET = [\n\t'ArrowUp',\n\t'ArrowLeft',\n\t'ArrowDown',\n\t'ArrowRight',\n\t'Home',\n\t'End',\n\t'Escape',\n\t'Enter',\n\t'Tab',\n];\n\nexport const COMBO_BOX_ACCESSIBILITY_KEY_SET = [\n\t'ArrowUp',\n\t'ArrowLeft',\n\t'ArrowDown',\n\t'ArrowRight',\n\t'Home',\n\t'End',\n\t'Escape',\n\t'Enter',\n];\n\nexport const BREAKPOINTS: any = {\n\tsm: 640,\n\tmd: 768,\n\tlg: 1024,\n\txl: 1280,\n\t'2xl': 1536,\n};\n","/*\n * HSComboBox\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport {\n\tisEnoughSpace,\n\tdebounce,\n\tdispatch,\n\tafterTransition,\n\thtmlToElement,\n\tisParentOrElementHidden,\n} from '../../utils';\n\nimport { IComboBox, IComboBoxOptions, IComboBoxItemAttr } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nimport { COMBO_BOX_ACCESSIBILITY_KEY_SET } from '../../constants';\n\nclass HSComboBox extends HSBasePlugin implements IComboBox {\n\tgap: number;\n\tviewport: string | HTMLElement | null;\n\tpreventVisibility: boolean;\n\tapiUrl: string | null;\n\tapiDataPart: string | null;\n\tapiQuery: string | null;\n\tapiSearchQuery: string | null;\n\tapiHeaders: {};\n\tapiGroupField: string | null;\n\toutputItemTemplate: string | null;\n\toutputEmptyTemplate: string | null;\n\toutputLoaderTemplate: string | null;\n\tgroupingType: 'default' | 'tabs' | null;\n\tgroupingTitleTemplate: string | null;\n\ttabsWrapperTemplate: string | null;\n\tpreventSelection: boolean;\n\tpreventAutoPosition: boolean;\n\tisOpenOnFocus: boolean;\n\n\tprivate readonly input: HTMLInputElement | null;\n\tprivate readonly output: HTMLElement | null;\n\tprivate readonly itemsWrapper: HTMLElement | null;\n\tprivate items: HTMLElement[] | [];\n\tprivate tabs: HTMLElement[] | [];\n\tprivate readonly toggle: HTMLElement | null;\n\tprivate readonly toggleClose: HTMLElement | null;\n\tprivate readonly toggleOpen: HTMLElement | null;\n\tprivate outputPlaceholder: HTMLElement | null;\n\tprivate outputLoader: HTMLElement | null;\n\n\tprivate value: string | null;\n\tprivate selected: string | null;\n\tprivate groups: any[] | null;\n\tprivate selectedGroup: string | null;\n\n\tisOpened: boolean;\n\tisCurrent: boolean;\n\tprivate animationInProcess: boolean;\n\n\tconstructor(el: HTMLElement, options?: IComboBoxOptions, events?: {}) {\n\t\tsuper(el, options, events);\n\n\t\t// Data parameters\n\t\tconst data = el.getAttribute('data-hs-combo-box');\n\t\tconst dataOptions: IComboBoxOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.gap = 5;\n\t\tthis.viewport =\n\t\t\t(typeof concatOptions?.viewport === 'string'\n\t\t\t\t? (document.querySelector(concatOptions?.viewport) as HTMLElement)\n\t\t\t\t: concatOptions?.viewport) ?? null;\n\t\tthis.preventVisibility = concatOptions?.preventVisibility ?? false;\n\t\tthis.apiUrl = concatOptions?.apiUrl ?? null;\n\t\tthis.apiDataPart = concatOptions?.apiDataPart ?? null;\n\t\tthis.apiQuery = concatOptions?.apiQuery ?? null;\n\t\tthis.apiSearchQuery = concatOptions?.apiSearchQuery ?? null;\n\t\tthis.apiHeaders = concatOptions?.apiHeaders ?? {};\n\t\tthis.apiGroupField = concatOptions?.apiGroupField ?? null;\n\t\tthis.outputItemTemplate =\n\t\t\tconcatOptions?.outputItemTemplate ??\n\t\t\t`
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
`;\n\t\tthis.outputEmptyTemplate =\n\t\t\tconcatOptions?.outputEmptyTemplate ??\n\t\t\t`
Nothing found...
`;\n\t\tthis.outputLoaderTemplate =\n\t\t\tconcatOptions?.outputLoaderTemplate ??\n\t\t\t`
\n\t\t\t\t
\n\t\t\t\t\tLoading...\n\t\t\t\t
\n\t\t\t
`;\n\t\tthis.groupingType = concatOptions?.groupingType ?? null;\n\t\tthis.groupingTitleTemplate =\n\t\t\tconcatOptions?.groupingTitleTemplate ??\n\t\t\t(this.groupingType === 'default'\n\t\t\t\t? `
`\n\t\t\t\t: ``);\n\t\tthis.tabsWrapperTemplate =\n\t\t\tconcatOptions?.tabsWrapperTemplate ??\n\t\t\t`
`;\n\t\tthis.preventSelection = concatOptions?.preventSelection ?? false;\n\t\tthis.preventAutoPosition = concatOptions?.preventAutoPosition ?? false;\n\t\tthis.isOpenOnFocus = concatOptions?.isOpenOnFocus ?? false;\n\n\t\t// Internal parameters\n\t\tthis.input = this.el.querySelector('[data-hs-combo-box-input]') ?? null;\n\t\tthis.output = this.el.querySelector('[data-hs-combo-box-output]') ?? null;\n\t\tthis.itemsWrapper =\n\t\t\tthis.el.querySelector('[data-hs-combo-box-output-items-wrapper]') ?? null;\n\t\tthis.items =\n\t\t\tArray.from(this.el.querySelectorAll('[data-hs-combo-box-output-item]')) ??\n\t\t\t[];\n\t\tthis.tabs = [];\n\t\tthis.toggle = this.el.querySelector('[data-hs-combo-box-toggle]') ?? null;\n\t\tthis.toggleClose =\n\t\t\tthis.el.querySelector('[data-hs-combo-box-close]') ?? null;\n\t\tthis.toggleOpen = this.el.querySelector('[data-hs-combo-box-open]') ?? null;\n\t\tthis.outputPlaceholder = null;\n\n\t\tthis.selected = this.value =\n\t\t\t(this.el.querySelector('[data-hs-combo-box-input]') as HTMLInputElement)\n\t\t\t\t.value ?? '';\n\t\tthis.isOpened = false;\n\t\tthis.isCurrent = false;\n\t\tthis.animationInProcess = false;\n\t\tthis.selectedGroup = 'all';\n\n\t\tthis.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsComboBoxCollection, this);\n\n\t\tthis.build();\n\t}\n\n\tprivate build() {\n\t\tthis.buildInput();\n\t\tif (this.groupingType) this.setGroups();\n\t\tthis.buildItems();\n\t\tif (this.preventVisibility) {\n\t\t\tthis.isOpened = true;\n\n\t\t\tif (!this.preventAutoPosition) this.recalculateDirection();\n\t\t}\n\t\tif (this.toggle) this.buildToggle();\n\t\tif (this.toggleClose) this.buildToggleClose();\n\t\tif (this.toggleOpen) this.buildToggleOpen();\n\t}\n\n\tprivate setResultAndRender(value = '') {\n\t\tthis.setResults(value);\n\n\t\tif (this.apiSearchQuery) this.itemsFromJson();\n\t}\n\n\tprivate buildInput() {\n\t\tif (this.isOpenOnFocus) {\n\t\t\tthis.input.addEventListener('focus', () => {\n\t\t\t\tif (!this.isOpened) {\n\t\t\t\t\tthis.setResultAndRender();\n\t\t\t\t\tthis.open();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.input.addEventListener(\n\t\t\t'input',\n\t\t\tdebounce((evt: InputEvent) => {\n\t\t\t\tthis.setResultAndRender((evt.target as HTMLInputElement).value);\n\t\t\t\tif (!this.isOpened) this.open();\n\t\t\t}),\n\t\t);\n\t}\n\n\tprivate buildItems() {\n\t\tif (this.apiUrl) this.itemsFromJson();\n\t\telse {\n\t\t\tif (this.itemsWrapper) this.itemsWrapper.innerHTML = '';\n\t\t\telse this.output.innerHTML = '';\n\t\t\tthis.itemsFromHtml();\n\t\t}\n\t}\n\n\tprivate setResults(val: string) {\n\t\tthis.value = val;\n\n\t\tthis.resultItems();\n\n\t\tif (this.hasVisibleItems()) this.destroyOutputPlaceholder();\n\t\telse this.buildOutputPlaceholder();\n\t}\n\n\tprivate isItemExists(obj: never): boolean {\n\t\treturn this.items.some((el: HTMLElement) =>\n\t\t\tArray.from(el.querySelectorAll('[data-hs-combo-box-search-text]')).some(\n\t\t\t\t(elI: HTMLElement) =>\n\t\t\t\t\telI.getAttribute('data-hs-combo-box-search-text') ===\n\t\t\t\t\tobj[elI.getAttribute('data-hs-combo-box-output-item-field')],\n\t\t\t),\n\t\t);\n\t}\n\n\tprivate isTextExists(el: HTMLElement, val: string[]): boolean {\n\t\tconst lowerCased = val.map((v) => v.toLowerCase());\n\n\t\treturn Array.from(\n\t\t\tel.querySelectorAll('[data-hs-combo-box-search-text]'),\n\t\t).some((elI: HTMLElement) =>\n\t\t\tlowerCased.includes(\n\t\t\t\telI.getAttribute('data-hs-combo-box-search-text').toLowerCase(),\n\t\t\t),\n\t\t);\n\t}\n\n\tprivate isTextExistsAny(el: HTMLElement, val: string): boolean {\n\t\treturn Array.from(\n\t\t\tel.querySelectorAll('[data-hs-combo-box-search-text]'),\n\t\t).some((elI: HTMLElement) =>\n\t\t\telI\n\t\t\t\t.getAttribute('data-hs-combo-box-search-text')\n\t\t\t\t.toLowerCase()\n\t\t\t\t.includes(val.toLowerCase()),\n\t\t);\n\t}\n\n\tprivate valuesBySelector(el: HTMLElement) {\n\t\treturn Array.from(\n\t\t\tel.querySelectorAll('[data-hs-combo-box-search-text]'),\n\t\t).reduce(\n\t\t\t(acc: any, cur: HTMLElement) => [\n\t\t\t\t...acc,\n\t\t\t\tcur.getAttribute('data-hs-combo-box-search-text'),\n\t\t\t],\n\t\t\t[],\n\t\t);\n\t}\n\n\tprivate buildOutputLoader() {\n\t\tif (this.outputLoader) return false;\n\n\t\tthis.outputLoader = htmlToElement(this.outputLoaderTemplate);\n\t\tif (this.items.length || this.outputPlaceholder) {\n\t\t\tthis.outputLoader.style.position = 'absolute';\n\t\t\tthis.outputLoader.style.top = '0';\n\t\t\tthis.outputLoader.style.bottom = '0';\n\t\t\tthis.outputLoader.style.left = '0';\n\t\t\tthis.outputLoader.style.right = '0';\n\t\t\tthis.outputLoader.style.zIndex = '2';\n\t\t} else {\n\t\t\tthis.outputLoader.style.position = '';\n\t\t\tthis.outputLoader.style.top = '';\n\t\t\tthis.outputLoader.style.bottom = '';\n\t\t\tthis.outputLoader.style.left = '';\n\t\t\tthis.outputLoader.style.right = '';\n\t\t\tthis.outputLoader.style.zIndex = '';\n\t\t\tthis.outputLoader.style.height = '30px';\n\t\t}\n\n\t\tthis.output.append(this.outputLoader);\n\t}\n\n\tprivate destroyOutputLoader() {\n\t\tif (this.outputLoader) this.outputLoader.remove();\n\n\t\tthis.outputLoader = null;\n\t}\n\n\tprivate async itemsFromJson() {\n\t\tthis.buildOutputLoader();\n\n\t\ttry {\n\t\t\tconst query = `${this.apiQuery}`;\n\t\t\tconst searchQuery = `${this.apiSearchQuery}=${this.value.toLowerCase()}`;\n\t\t\tlet url = this.apiUrl;\n\t\t\tif (this.apiQuery && this.apiSearchQuery) {\n\t\t\t\turl += `?${searchQuery}&${query}`;\n\t\t\t} else if (this.apiQuery) {\n\t\t\t\turl += `?${query}`;\n\t\t\t} else if (this.apiSearchQuery) {\n\t\t\t\turl += `?${searchQuery}`;\n\t\t\t}\n\t\t\tconst res = await fetch(url, this.apiHeaders);\n\t\t\tlet items = await res.json();\n\t\t\tif (this.apiDataPart) {\n\t\t\t\titems = items[this.apiDataPart];\n\t\t\t}\n\t\t\tif (this.apiSearchQuery) {\n\t\t\t\tthis.items = [];\n\t\t\t}\n\t\t\tif (this.itemsWrapper) {\n\t\t\t\tthis.itemsWrapper.innerHTML = '';\n\t\t\t} else {\n\t\t\t\tthis.output.innerHTML = '';\n\t\t\t}\n\n\t\t\tif (this.groupingType === 'tabs') {\n\t\t\t\tthis.setApiGroups(items);\n\t\t\t\tthis.groupTabsRender();\n\t\t\t\tthis.jsonItemsRender(items);\n\t\t\t} else if (this.groupingType === 'default') {\n\t\t\t\tthis.setApiGroups(items);\n\n\t\t\t\tthis.groups.forEach((el) => {\n\t\t\t\t\tconst title = htmlToElement(this.groupingTitleTemplate);\n\t\t\t\t\ttitle.setAttribute('data-hs-combo-box-group-title', el.name);\n\t\t\t\t\ttitle.classList.add('--exclude-accessibility');\n\t\t\t\t\ttitle.innerText = el.title;\n\t\t\t\t\tconst newItems = items.filter(\n\t\t\t\t\t\t(i: any) => i[this.apiGroupField] === el.name,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (this.itemsWrapper) this.itemsWrapper.append(title);\n\t\t\t\t\telse this.output.append(title);\n\n\t\t\t\t\tthis.jsonItemsRender(newItems);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.jsonItemsRender(items);\n\t\t\t}\n\n\t\t\tthis.setResults(this.input.value);\n\t\t} catch (err) {\n\t\t\tconsole.error(err);\n\t\t}\n\n\t\tthis.destroyOutputLoader();\n\t}\n\n\tprivate jsonItemsRender(items: any) {\n\t\titems.forEach((item: never, index: number) => {\n\t\t\tif (this.isItemExists(item)) return false;\n\n\t\t\tconst newItem = htmlToElement(this.outputItemTemplate);\n\t\t\tnewItem\n\t\t\t\t.querySelectorAll('[data-hs-combo-box-search-text]')\n\t\t\t\t.forEach((el) => {\n\t\t\t\t\tel.textContent =\n\t\t\t\t\t\titem[el.getAttribute('data-hs-combo-box-output-item-field')] ?? '';\n\t\t\t\t\tel.setAttribute(\n\t\t\t\t\t\t'data-hs-combo-box-search-text',\n\t\t\t\t\t\titem[el.getAttribute('data-hs-combo-box-output-item-field')] ?? '',\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\tnewItem\n\t\t\t\t.querySelectorAll('[data-hs-combo-box-output-item-attr]')\n\t\t\t\t.forEach((el) => {\n\t\t\t\t\tconst attributes = JSON.parse(\n\t\t\t\t\t\tel.getAttribute('data-hs-combo-box-output-item-attr'),\n\t\t\t\t\t);\n\n\t\t\t\t\tattributes.forEach((attr: IComboBoxItemAttr) => {\n\t\t\t\t\t\tel.setAttribute(attr.attr, item[attr.valueFrom]);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\tnewItem.setAttribute('tabIndex', `${index}`);\n\t\t\tif (this.groupingType === 'tabs' || this.groupingType === 'default') {\n\t\t\t\tnewItem.setAttribute(\n\t\t\t\t\t'data-hs-combo-box-output-item',\n\t\t\t\t\t`{\"group\": {\"name\": \"${item[this.apiGroupField]}\", \"title\": \"${\n\t\t\t\t\t\titem[this.apiGroupField]\n\t\t\t\t\t}\"}}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.items = [...this.items, newItem];\n\n\t\t\tif (!this.preventSelection) {\n\t\t\t\t(newItem as HTMLElement).addEventListener('click', () => {\n\t\t\t\t\tthis.close(\n\t\t\t\t\t\t(newItem as HTMLElement)\n\t\t\t\t\t\t\t.querySelector('[data-hs-combo-box-value]')\n\t\t\t\t\t\t\t.getAttribute('data-hs-combo-box-search-text'),\n\t\t\t\t\t);\n\n\t\t\t\t\tthis.setSelectedByValue(this.valuesBySelector(newItem));\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.appendItemsToWrapper(newItem);\n\t\t});\n\t}\n\n\tprivate setGroups() {\n\t\tconst groups: any[] = [];\n\n\t\tthis.items.forEach((item: HTMLElement) => {\n\t\t\tconst { group } = JSON.parse(\n\t\t\t\titem.getAttribute('data-hs-combo-box-output-item'),\n\t\t\t);\n\n\t\t\tif (!groups.some((el) => el?.name === group.name)) {\n\t\t\t\tgroups.push(group);\n\t\t\t}\n\t\t});\n\n\t\tthis.groups = groups;\n\t}\n\n\tpublic setCurrent() {\n\t\tif (window.$hsComboBoxCollection.length) {\n\t\t\twindow.$hsComboBoxCollection.map((el) => (el.element.isCurrent = false));\n\n\t\t\tthis.isCurrent = true;\n\t\t}\n\t}\n\n\tprivate setApiGroups(items: any) {\n\t\tconst groups: any[] = [];\n\n\t\titems.forEach((item: any) => {\n\t\t\tconst group = item[this.apiGroupField];\n\n\t\t\tif (!groups.some((el) => el.name === group)) {\n\t\t\t\tgroups.push({\n\t\t\t\t\tname: group,\n\t\t\t\t\ttitle: group,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.groups = groups;\n\t}\n\n\tprivate sortItems() {\n\t\tconst compareFn = (i1: HTMLElement, i2: HTMLElement) => {\n\t\t\tconst a = i1\n\t\t\t\t.querySelector('[data-hs-combo-box-value]')\n\t\t\t\t.getAttribute('data-hs-combo-box-search-text');\n\t\t\tconst b = i2\n\t\t\t\t.querySelector('[data-hs-combo-box-value]')\n\t\t\t\t.getAttribute('data-hs-combo-box-search-text');\n\n\t\t\tif (a < b) {\n\t\t\t\treturn -1;\n\t\t\t} else if (a > b) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t};\n\n\t\treturn this.items.sort(compareFn);\n\t}\n\n\tprivate itemRender(item: HTMLElement) {\n\t\tconst val = item\n\t\t\t.querySelector('[data-hs-combo-box-value]')\n\t\t\t.getAttribute('data-hs-combo-box-search-text');\n\n\t\tif (this.itemsWrapper) this.itemsWrapper.append(item);\n\t\telse this.output.append(item);\n\n\t\tif (!this.preventSelection) {\n\t\t\titem.addEventListener('click', () => {\n\t\t\t\tthis.close(val);\n\t\t\t\tthis.setSelectedByValue(this.valuesBySelector(item));\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate plainRender(items: HTMLElement[]) {\n\t\titems.forEach((item: HTMLElement) => {\n\t\t\tthis.itemRender(item);\n\t\t});\n\t}\n\n\tprivate groupTabsRender() {\n\t\tconst tabsScroll = htmlToElement(this.tabsWrapperTemplate);\n\t\tconst tabsWrapper = htmlToElement(\n\t\t\t`
`,\n\t\t);\n\n\t\ttabsScroll.append(tabsWrapper);\n\t\tthis.output.insertBefore(tabsScroll, this.output.firstChild);\n\n\t\tconst tabDef = htmlToElement(this.groupingTitleTemplate);\n\t\ttabDef.setAttribute('data-hs-combo-box-group-title', 'all');\n\t\ttabDef.classList.add('--exclude-accessibility', 'active');\n\t\ttabDef.innerText = 'All';\n\t\tthis.tabs = [...this.tabs, tabDef];\n\t\ttabsWrapper.append(tabDef);\n\t\ttabDef.addEventListener('click', () => {\n\t\t\tthis.selectedGroup = 'all';\n\t\t\tconst selectedTab = this.tabs.find(\n\t\t\t\t(elI: HTMLElement) =>\n\t\t\t\t\telI.getAttribute('data-hs-combo-box-group-title') ===\n\t\t\t\t\tthis.selectedGroup,\n\t\t\t);\n\n\t\t\tthis.tabs.forEach((el: HTMLElement) => el.classList.remove('active'));\n\t\t\tselectedTab.classList.add('active');\n\t\t\tthis.setItemsVisibility();\n\t\t});\n\n\t\tthis.groups.forEach((el) => {\n\t\t\tconst tab = htmlToElement(this.groupingTitleTemplate);\n\t\t\ttab.setAttribute('data-hs-combo-box-group-title', el.name);\n\t\t\ttab.classList.add('--exclude-accessibility');\n\t\t\ttab.innerText = el.title;\n\n\t\t\tthis.tabs = [...this.tabs, tab];\n\t\t\ttabsWrapper.append(tab);\n\n\t\t\ttab.addEventListener('click', () => {\n\t\t\t\tthis.selectedGroup = el.name;\n\t\t\t\tconst selectedTab = this.tabs.find(\n\t\t\t\t\t(elI: HTMLElement) =>\n\t\t\t\t\t\telI.getAttribute('data-hs-combo-box-group-title') ===\n\t\t\t\t\t\tthis.selectedGroup,\n\t\t\t\t);\n\n\t\t\t\tthis.tabs.forEach((el: HTMLElement) => el.classList.remove('active'));\n\t\t\t\tselectedTab.classList.add('active');\n\t\t\t\tthis.setItemsVisibility();\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate groupDefaultRender() {\n\t\tthis.groups.forEach((el) => {\n\t\t\tconst title = htmlToElement(this.groupingTitleTemplate);\n\t\t\ttitle.setAttribute('data-hs-combo-box-group-title', el.name);\n\t\t\ttitle.classList.add('--exclude-accessibility');\n\t\t\ttitle.innerText = el.title;\n\n\t\t\tif (this.itemsWrapper) this.itemsWrapper.append(title);\n\t\t\telse this.output.append(title);\n\n\t\t\tconst items = this.sortItems().filter((f) => {\n\t\t\t\tconst { group } = JSON.parse(\n\t\t\t\t\tf.getAttribute('data-hs-combo-box-output-item'),\n\t\t\t\t);\n\n\t\t\t\treturn group.name === el.name;\n\t\t\t});\n\n\t\t\tthis.plainRender(items);\n\t\t});\n\t}\n\n\tprivate itemsFromHtml() {\n\t\tif (this.groupingType === 'default') {\n\t\t\tthis.groupDefaultRender();\n\t\t} else if (this.groupingType === 'tabs') {\n\t\t\tconst items = this.sortItems();\n\n\t\t\tthis.groupTabsRender();\n\t\t\tthis.plainRender(items);\n\t\t} else {\n\t\t\tconst items = this.sortItems();\n\n\t\t\tthis.plainRender(items);\n\t\t}\n\t\tthis.setResults(this.input.value);\n\t}\n\n\tprivate buildToggle() {\n\t\tthis.toggle.addEventListener('click', () => {\n\t\t\tif (this.isOpened) this.close();\n\t\t\telse this.open(this.toggle.getAttribute('data-hs-combo-box-toggle'));\n\t\t});\n\t}\n\n\tprivate buildToggleClose() {\n\t\tthis.toggleClose.addEventListener('click', () => this.close());\n\t}\n\n\tprivate buildToggleOpen() {\n\t\tthis.toggleOpen.addEventListener('click', () => this.open());\n\t}\n\n\tprivate setSelectedByValue(val: string[]) {\n\t\tthis.items.forEach((el) => {\n\t\t\tif (this.isTextExists(el, val))\n\t\t\t\t(el as HTMLElement).classList.add('selected');\n\t\t\telse (el as HTMLElement).classList.remove('selected');\n\t\t});\n\t}\n\n\tprivate setValue(val: string) {\n\t\tthis.selected = val;\n\t\tthis.value = val;\n\t\tthis.input.value = val;\n\n\t\tthis.fireEvent('select', this.el);\n\t\tdispatch('select.hs.combobox', this.el, this.value);\n\t}\n\n\tprivate setItemsVisibility() {\n\t\tif (this.groupingType === 'tabs' && this.selectedGroup !== 'all') {\n\t\t\tthis.items.forEach((item) => {\n\t\t\t\t(item as HTMLElement).style.display = 'none';\n\t\t\t});\n\t\t}\n\n\t\tconst items =\n\t\t\tthis.groupingType === 'tabs'\n\t\t\t\t? this.selectedGroup === 'all'\n\t\t\t\t\t? this.items\n\t\t\t\t\t: this.items.filter((f: HTMLElement) => {\n\t\t\t\t\t\t\tconst { group } = JSON.parse(\n\t\t\t\t\t\t\t\tf.getAttribute('data-hs-combo-box-output-item'),\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\treturn group.name === this.selectedGroup;\n\t\t\t\t\t\t})\n\t\t\t\t: this.items;\n\n\t\tif (this.groupingType === 'tabs' && this.selectedGroup !== 'all') {\n\t\t\titems.forEach((item) => {\n\t\t\t\t(item as HTMLElement).style.display = 'block';\n\t\t\t});\n\t\t}\n\n\t\titems.forEach((item) => {\n\t\t\tif (!this.isTextExistsAny(item, this.value))\n\t\t\t\t(item as HTMLElement).style.display = 'none';\n\t\t\telse (item as HTMLElement).style.display = 'block';\n\t\t});\n\n\t\tif (this.groupingType === 'default') {\n\t\t\tthis.output\n\t\t\t\t.querySelectorAll('[data-hs-combo-box-group-title]')\n\t\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\t\tconst g = el.getAttribute('data-hs-combo-box-group-title');\n\t\t\t\t\tconst items = this.items.filter((f: HTMLElement) => {\n\t\t\t\t\t\tconst { group } = JSON.parse(\n\t\t\t\t\t\t\tf.getAttribute('data-hs-combo-box-output-item'),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn group.name === g && f.style.display === 'block';\n\t\t\t\t\t});\n\n\t\t\t\t\tif (items.length) el.style.display = 'block';\n\t\t\t\t\telse el.style.display = 'none';\n\t\t\t\t});\n\t\t}\n\t}\n\n\tprivate hasVisibleItems() {\n\t\treturn this.items.length\n\t\t\t? this.items.some((el: HTMLElement) => el.style.display === 'block')\n\t\t\t: false;\n\t}\n\n\tprivate appendItemsToWrapper(item: HTMLElement) {\n\t\tif (this.itemsWrapper) {\n\t\t\tthis.itemsWrapper.append(item);\n\t\t} else {\n\t\t\tthis.output.append(item);\n\t\t}\n\t}\n\n\tprivate buildOutputPlaceholder() {\n\t\tif (!this.outputPlaceholder)\n\t\t\tthis.outputPlaceholder = htmlToElement(this.outputEmptyTemplate);\n\n\t\tthis.appendItemsToWrapper(this.outputPlaceholder);\n\t}\n\n\tprivate destroyOutputPlaceholder() {\n\t\tif (this.outputPlaceholder) this.outputPlaceholder.remove();\n\n\t\tthis.outputPlaceholder = null;\n\t}\n\n\tprivate resultItems() {\n\t\tif (!this.items.length) return false;\n\n\t\tthis.setItemsVisibility();\n\t\tthis.setSelectedByValue([this.selected]);\n\t}\n\n\t// Public methods\n\tprivate setValueAndOpen(val: string) {\n\t\tthis.value = val;\n\n\t\tif (this.items.length) {\n\t\t\tthis.setItemsVisibility();\n\t\t}\n\t}\n\n\tpublic open(val?: string) {\n\t\tif (this.animationInProcess) return false;\n\n\t\tif (typeof val !== 'undefined') this.setValueAndOpen(val);\n\n\t\tif (this.preventVisibility) return false;\n\n\t\tthis.animationInProcess = true;\n\n\t\tthis.output.style.display = 'block';\n\t\tif (!this.preventAutoPosition) this.recalculateDirection();\n\n\t\tsetTimeout(() => {\n\t\t\tthis.el.classList.add('active');\n\n\t\t\tthis.animationInProcess = false;\n\t\t});\n\n\t\tthis.isOpened = true;\n\t}\n\n\tprivate setValueAndClear(val: string | null) {\n\t\tif (val) this.setValue(val);\n\t\telse this.setValue(this.selected);\n\n\t\tif (this.outputPlaceholder) this.destroyOutputPlaceholder();\n\t}\n\n\tpublic close(val?: string | null) {\n\t\tif (this.animationInProcess) return false;\n\n\t\tif (this.preventVisibility) {\n\t\t\tthis.setValueAndClear(val);\n\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.animationInProcess = true;\n\n\t\tthis.el.classList.remove('active');\n\t\tif (!this.preventAutoPosition) {\n\t\t\tthis.output.classList.remove('bottom-full', 'top-full');\n\t\t\tthis.output.style.marginTop = '';\n\t\t\tthis.output.style.marginBottom = '';\n\t\t}\n\n\t\tafterTransition(this.output, () => {\n\t\t\tthis.output.style.display = 'none';\n\n\t\t\tthis.setValueAndClear(val);\n\n\t\t\tthis.animationInProcess = false;\n\t\t});\n\n\t\tthis.isOpened = false;\n\t}\n\n\tpublic recalculateDirection() {\n\t\tif (\n\t\t\tisEnoughSpace(\n\t\t\t\tthis.output,\n\t\t\t\tthis.input,\n\t\t\t\t'bottom',\n\t\t\t\tthis.gap,\n\t\t\t\tthis.viewport as HTMLElement,\n\t\t\t)\n\t\t) {\n\t\t\tthis.output.classList.remove('bottom-full');\n\t\t\tthis.output.style.marginBottom = '';\n\t\t\tthis.output.classList.add('top-full');\n\t\t\tthis.output.style.marginTop = `${this.gap}px`;\n\t\t} else {\n\t\t\tthis.output.classList.remove('top-full');\n\t\t\tthis.output.style.marginTop = '';\n\t\t\tthis.output.classList.add('bottom-full');\n\t\t\tthis.output.style.marginBottom = `${this.gap}px`;\n\t\t}\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsComboBoxCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsComboBoxCollection) window.$hsComboBoxCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-combo-box]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsComboBoxCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tconst data = el.getAttribute('data-hs-combo-box');\n\t\t\t\t\tconst options: IComboBoxOptions = data ? JSON.parse(data) : {};\n\n\t\t\t\t\tnew HSComboBox(el, options);\n\t\t\t\t}\n\t\t\t});\n\n\t\tif (window.$hsComboBoxCollection) {\n\t\t\twindow.addEventListener('click', (evt) => {\n\t\t\t\tconst evtTarget = evt.target;\n\n\t\t\t\tHSComboBox.closeCurrentlyOpened(evtTarget as HTMLElement);\n\t\t\t});\n\n\t\t\tdocument.addEventListener('keydown', (evt) =>\n\t\t\t\tHSComboBox.accessibility(evt),\n\t\t\t);\n\t\t}\n\t}\n\n\tstatic close(target: HTMLElement | string) {\n\t\tconst elInCollection = window.$hsComboBoxCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (elInCollection && elInCollection.element.isOpened) {\n\t\t\telInCollection.element.close();\n\t\t}\n\t}\n\n\tstatic closeCurrentlyOpened(evtTarget: HTMLElement | null = null) {\n\t\tif (!evtTarget.closest('[data-hs-combo-box].active')) {\n\t\t\tconst currentlyOpened =\n\t\t\t\twindow.$hsComboBoxCollection.filter((el) => el.element.isOpened) ||\n\t\t\t\tnull;\n\n\t\t\tif (currentlyOpened) {\n\t\t\t\tcurrentlyOpened.forEach((el) => {\n\t\t\t\t\tel.element.close();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// Accessibility methods\n\tprivate static getPreparedItems(\n\t\tisReversed = false,\n\t\toutput: HTMLElement | null,\n\t): Element[] | null {\n\t\tif (!output) return null;\n\n\t\tconst preparedItems = isReversed\n\t\t\t? Array.from(\n\t\t\t\t\toutput.querySelectorAll(':scope > *:not(.--exclude-accessibility)'),\n\t\t\t\t)\n\t\t\t\t\t.filter((el) => (el as HTMLElement).style.display !== 'none')\n\t\t\t\t\t.reverse()\n\t\t\t: Array.from(\n\t\t\t\t\toutput.querySelectorAll(':scope > *:not(.--exclude-accessibility)'),\n\t\t\t\t).filter((el) => (el as HTMLElement).style.display !== 'none');\n\t\tconst items = preparedItems.filter(\n\t\t\t(el: any) => !el.classList.contains('disabled'),\n\t\t);\n\n\t\treturn items;\n\t}\n\n\tprivate static setHighlighted(\n\t\tprev: Element,\n\t\tcurrent: HTMLElement,\n\t\tinput: HTMLInputElement,\n\t): void {\n\t\tcurrent.focus();\n\n\t\tinput.value = current\n\t\t\t.querySelector('[data-hs-combo-box-value]')\n\t\t\t.getAttribute('data-hs-combo-box-search-text');\n\n\t\tif (prev) prev.classList.remove('hs-combo-box-output-item-highlighted');\n\t\tcurrent.classList.add('hs-combo-box-output-item-highlighted');\n\t}\n\n\tstatic accessibility(evt: KeyboardEvent) {\n\t\tconst target = window.$hsComboBoxCollection.find(\n\t\t\t(el) => el.element.isOpened,\n\t\t);\n\n\t\tif (\n\t\t\ttarget &&\n\t\t\tCOMBO_BOX_ACCESSIBILITY_KEY_SET.includes(evt.code) &&\n\t\t\t!evt.metaKey\n\t\t) {\n\t\t\tswitch (evt.code) {\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onEscape();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onArrow();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onArrow(false);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Home':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onStartEnd();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'End':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onStartEnd(false);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Enter':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onEnter(evt);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic onEscape() {\n\t\tconst target = window.$hsComboBoxCollection.find(\n\t\t\t(el) => !el.element.preventVisibility && el.element.isOpened,\n\t\t);\n\n\t\tif (target) {\n\t\t\ttarget.element.close();\n\t\t\ttarget.element.input.blur();\n\t\t}\n\t}\n\n\tstatic onArrow(isArrowUp = true) {\n\t\tconst target = window.$hsComboBoxCollection.find((el) =>\n\t\t\tel.element.preventVisibility ? el.element.isCurrent : el.element.isOpened,\n\t\t);\n\n\t\tif (target) {\n\t\t\tconst output = target.element.itemsWrapper ?? target.element.output;\n\n\t\t\tif (!output) return false;\n\n\t\t\tconst items = HSComboBox.getPreparedItems(isArrowUp, output) as Element[];\n\t\t\tconst current = output.querySelector(\n\t\t\t\t'.hs-combo-box-output-item-highlighted',\n\t\t\t);\n\t\t\tlet currentItem = null;\n\t\t\tif (!current)\n\t\t\t\titems[0].classList.add('hs-combo-box-output-item-highlighted');\n\t\t\tlet currentInd = items.findIndex((el: any) => el === current);\n\t\t\tif (currentInd + 1 < items.length) currentInd++;\n\t\t\tcurrentItem = items[currentInd] as HTMLButtonElement;\n\n\t\t\tHSComboBox.setHighlighted(current, currentItem, target.element.input);\n\t\t}\n\t}\n\n\tstatic onStartEnd(isStart = true) {\n\t\tconst target = window.$hsComboBoxCollection.find((el) =>\n\t\t\tel.element.preventVisibility ? el.element.isCurrent : el.element.isOpened,\n\t\t);\n\n\t\tif (target) {\n\t\t\tconst output = target.element.itemsWrapper ?? target.element.output;\n\n\t\t\tif (!output) return false;\n\n\t\t\tconst items = HSComboBox.getPreparedItems(isStart, output) as Element[];\n\t\t\tconst current = output.querySelector(\n\t\t\t\t'.hs-combo-box-output-item-highlighted',\n\t\t\t);\n\n\t\t\tif (items.length)\n\t\t\t\tHSComboBox.setHighlighted(\n\t\t\t\t\tcurrent,\n\t\t\t\t\titems[0] as HTMLButtonElement,\n\t\t\t\t\ttarget.element.input,\n\t\t\t\t);\n\t\t}\n\t}\n\n\tstatic onEnter(evt: Event) {\n\t\tconst target = evt.target;\n\t\tconst opened = window.$hsComboBoxCollection.find(\n\t\t\t(el) =>\n\t\t\t\t!isParentOrElementHidden(el.element.el) &&\n\t\t\t\t(evt.target as HTMLElement).closest('[data-hs-combo-box]') ===\n\t\t\t\t\tel.element.el,\n\t\t);\n\n\t\tconst link: HTMLAnchorElement = opened.element.el.querySelector(\n\t\t\t'.hs-combo-box-output-item-highlighted a',\n\t\t);\n\n\t\tif ((target as HTMLElement).hasAttribute('data-hs-combo-box-input')) {\n\t\t\topened.element.close();\n\t\t\t(target as HTMLInputElement).blur();\n\t\t} else {\n\t\t\tif (!opened.element.preventSelection) {\n\t\t\t\topened.element.setSelectedByValue(\n\t\t\t\t\topened.element.valuesBySelector(evt.target as HTMLElement),\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (opened.element.preventSelection && link) {\n\t\t\t\twindow.location.assign(link.getAttribute('href'));\n\t\t\t}\n\t\t\topened.element.close(\n\t\t\t\t!opened.element.preventSelection\n\t\t\t\t\t? (evt.target as HTMLElement)\n\t\t\t\t\t\t\t.querySelector('[data-hs-combo-box-value]')\n\t\t\t\t\t\t\t.getAttribute('data-hs-combo-box-search-text')\n\t\t\t\t\t: null,\n\t\t\t);\n\t\t}\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSComboBox: Function;\n\t\t$hsComboBoxCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSComboBox.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('ComboBox collection:', window.$hsComboBoxCollection);\n});\n\ndocument.addEventListener('scroll', () => {\n\tif (!window.$hsComboBoxCollection) return false;\n\n\tconst target = window.$hsComboBoxCollection.find((el) => el.element.isOpened);\n\n\tif (target && !target.element.preventAutoPosition)\n\t\ttarget.element.recalculateDirection();\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSComboBox = HSComboBox;\n}\n\nexport default HSComboBox;\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","/*\n * HSDropdown\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport {\n\tgetClassProperty,\n\tgetClassPropertyAlt,\n\tisIOS,\n\tisIpadOS,\n\tdispatch,\n\tafterTransition,\n\tmenuSearchHistory,\n} from '../../utils';\nimport { IMenuSearchHistory } from '../../utils/interfaces';\n\nimport { createPopper, PositioningStrategy } from '@popperjs/core';\n\nimport { IDropdown, IHTMLElementPopper } from './interfaces';\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nimport { POSITIONS, DROPDOWN_ACCESSIBILITY_KEY_SET } from '../../constants';\n\nclass HSDropdown\n\textends HSBasePlugin<{}, IHTMLElementPopper>\n\timplements IDropdown\n{\n\tprivate static history: IMenuSearchHistory;\n\tprivate readonly toggle: HTMLElement | null;\n\tprivate readonly closers: HTMLElement[] | null;\n\tpublic menu: HTMLElement | null;\n\tprivate eventMode: string;\n\tprivate readonly closeMode: string;\n\tprivate animationInProcess: boolean;\n\n\tconstructor(el: IHTMLElementPopper, options?: {}, events?: {}) {\n\t\tsuper(el, options, events);\n\n\t\tthis.toggle =\n\t\t\tthis.el.querySelector(':scope > .hs-dropdown-toggle') ||\n\t\t\tthis.el.querySelector(\n\t\t\t\t':scope > .hs-dropdown-toggle-wrapper > .hs-dropdown-toggle',\n\t\t\t) ||\n\t\t\t(this.el.children[0] as HTMLElement);\n\t\tthis.closers =\n\t\t\tArray.from(this.el.querySelectorAll(':scope .hs-dropdown-close')) || null;\n\t\tthis.menu = this.el.querySelector(':scope > .hs-dropdown-menu');\n\t\tthis.eventMode = getClassProperty(this.el, '--trigger', 'click');\n\t\tthis.closeMode = getClassProperty(this.el, '--auto-close', 'true');\n\t\tthis.animationInProcess = false;\n\n\t\tif (this.toggle && this.menu) this.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsDropdownCollection, this);\n\n\t\tif ((this.toggle as HTMLButtonElement).disabled) return false;\n\t\tthis.toggle.addEventListener('click', (evt) => this.onClickHandler(evt));\n\n\t\tif (this.closers) this.buildClosers();\n\n\t\tif (!isIOS() && !isIpadOS()) {\n\t\t\tthis.el.addEventListener('mouseenter', () => this.onMouseEnterHandler());\n\t\t\tthis.el.addEventListener('mouseleave', () => this.onMouseLeaveHandler());\n\t\t}\n\t}\n\n\tresizeHandler() {\n\t\tthis.eventMode = getClassProperty(this.el, '--trigger', 'click');\n\t}\n\n\tprivate buildClosers() {\n\t\tthis.closers.forEach((el: HTMLButtonElement) => {\n\t\t\tel.addEventListener('click', () => this.close());\n\t\t});\n\t}\n\n\tprivate onClickHandler(evt: Event) {\n\t\tif (\n\t\t\tthis.el.classList.contains('open') &&\n\t\t\t!this.menu.classList.contains('hidden')\n\t\t) {\n\t\t\tthis.close();\n\t\t} else {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\tprivate onMouseEnterHandler() {\n\t\tif (this.eventMode !== 'hover') return false;\n\n\t\tif (this.el._popper) this.forceClearState();\n\n\t\tif (\n\t\t\t!this.el.classList.contains('open') &&\n\t\t\tthis.menu.classList.contains('hidden')\n\t\t) {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\tprivate onMouseLeaveHandler() {\n\t\tif (this.eventMode !== 'hover') return false;\n\n\t\tif (\n\t\t\tthis.el.classList.contains('open') &&\n\t\t\t!this.menu.classList.contains('hidden')\n\t\t) {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tprivate destroyPopper() {\n\t\tthis.menu.classList.remove('block');\n\t\tthis.menu.classList.add('hidden');\n\n\t\tthis.menu.style.inset = null;\n\t\tthis.menu.style.position = null;\n\n\t\tif (this.el && this.el._popper) this.el._popper.destroy();\n\n\t\tthis.animationInProcess = false;\n\t}\n\n\tprivate absoluteStrategyModifiers() {\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: 'applyStyles',\n\t\t\t\tfn: (data: any) => {\n\t\t\t\t\tconst strategy = (\n\t\t\t\t\t\twindow.getComputedStyle(this.el).getPropertyValue('--strategy') ||\n\t\t\t\t\t\t'absolute'\n\t\t\t\t\t).replace(' ', '');\n\t\t\t\t\tconst adaptive = (\n\t\t\t\t\t\twindow.getComputedStyle(this.el).getPropertyValue('--adaptive') ||\n\t\t\t\t\t\t'adaptive'\n\t\t\t\t\t).replace(' ', '');\n\n\t\t\t\t\tdata.state.elements.popper.style.position = strategy;\n\t\t\t\t\tdata.state.elements.popper.style.transform =\n\t\t\t\t\t\tadaptive === 'adaptive' ? data.state.styles.popper.transform : null;\n\t\t\t\t\tdata.state.elements.popper.style.top = null;\n\t\t\t\t\tdata.state.elements.popper.style.bottom = null;\n\t\t\t\t\tdata.state.elements.popper.style.left = null;\n\t\t\t\t\tdata.state.elements.popper.style.right = null;\n\t\t\t\t\tdata.state.elements.popper.style.margin = 0;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'computeStyles',\n\t\t\t\toptions: {\n\t\t\t\t\tadaptive: false,\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t}\n\n\t// Public methods\n\tpublic open() {\n\t\tif (this.el.classList.contains('open')) return false;\n\n\t\tif (this.animationInProcess) return false;\n\n\t\tthis.animationInProcess = true;\n\n\t\tconst placement = (\n\t\t\twindow.getComputedStyle(this.el).getPropertyValue('--placement') || ''\n\t\t).replace(' ', '');\n\t\tconst flip = (\n\t\t\twindow.getComputedStyle(this.el).getPropertyValue('--flip') || 'true'\n\t\t).replace(' ', '');\n\t\tconst strategy = (\n\t\t\twindow.getComputedStyle(this.el).getPropertyValue('--strategy') || 'fixed'\n\t\t).replace(' ', '') as PositioningStrategy;\n\t\tconst offset = parseInt(\n\t\t\t(\n\t\t\t\twindow.getComputedStyle(this.el).getPropertyValue('--offset') || '10'\n\t\t\t).replace(' ', ''),\n\t\t);\n\n\t\tif (strategy !== ('static' as PositioningStrategy)) {\n\t\t\tthis.el._popper = createPopper(this.el, this.menu, {\n\t\t\t\tplacement: POSITIONS[placement] || 'bottom-start',\n\t\t\t\tstrategy: strategy,\n\t\t\t\tmodifiers: [\n\t\t\t\t\t...(strategy !== 'fixed' ? this.absoluteStrategyModifiers() : []),\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'flip',\n\t\t\t\t\t\tenabled: flip === 'true',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'offset',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\toffset: [0, offset],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\n\t\tthis.menu.style.margin = null;\n\n\t\tthis.menu.classList.remove('hidden');\n\t\tthis.menu.classList.add('block');\n\n\t\tsetTimeout(() => {\n\t\t\tthis.el.classList.add('open');\n\n\t\t\tthis.animationInProcess = false;\n\t\t});\n\n\t\tthis.fireEvent('open', this.el);\n\t\tdispatch('open.hs.dropdown', this.el, this.el);\n\t}\n\n\tpublic close(isAnimated = true) {\n\t\tif (this.animationInProcess || !this.el.classList.contains('open'))\n\t\t\treturn false;\n\n\t\tthis.animationInProcess = true;\n\n\t\tif (isAnimated) {\n\t\t\tconst el: HTMLElement =\n\t\t\t\tthis.el.querySelector('[data-hs-dropdown-transition]') || this.menu;\n\n\t\t\tafterTransition(el, () => this.destroyPopper());\n\t\t} else this.destroyPopper();\n\n\t\tthis.menu.style.margin = null;\n\n\t\tthis.el.classList.remove('open');\n\n\t\tthis.fireEvent('close', this.el);\n\t\tdispatch('close.hs.dropdown', this.el, this.el);\n\t}\n\n\tpublic forceClearState() {\n\t\tthis.destroyPopper();\n\t\tthis.menu.style.margin = null;\n\t\tthis.el.classList.remove('open');\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsDropdownCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element.el\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsDropdownCollection) window.$hsDropdownCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('.hs-dropdown:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: IHTMLElementPopper) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsDropdownCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSDropdown(el);\n\t\t\t});\n\n\t\tif (window.$hsDropdownCollection) {\n\t\t\tdocument.addEventListener('keydown', (evt) =>\n\t\t\t\tHSDropdown.accessibility(evt),\n\t\t\t);\n\n\t\t\twindow.addEventListener('click', (evt) => {\n\t\t\t\tconst evtTarget = evt.target;\n\n\t\t\t\tHSDropdown.closeCurrentlyOpened(evtTarget as HTMLElement);\n\t\t\t});\n\n\t\t\tlet prevWidth = window.innerWidth;\n\t\t\twindow.addEventListener('resize', () => {\n\t\t\t\tif (window.innerWidth !== prevWidth) {\n\t\t\t\t\tprevWidth = innerWidth;\n\t\t\t\t\tHSDropdown.closeCurrentlyOpened(null, false);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic open(target: HTMLElement) {\n\t\tconst elInCollection = window.$hsDropdownCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (\n\t\t\telInCollection &&\n\t\t\telInCollection.element.menu.classList.contains('hidden')\n\t\t)\n\t\t\telInCollection.element.open();\n\t}\n\n\tstatic close(target: HTMLElement) {\n\t\tconst elInCollection = window.$hsDropdownCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (\n\t\t\telInCollection &&\n\t\t\t!elInCollection.element.menu.classList.contains('hidden')\n\t\t) {\n\t\t\telInCollection.element.close();\n\t\t}\n\t}\n\n\t// Accessibility methods\n\tstatic accessibility(evt: KeyboardEvent) {\n\t\tthis.history = menuSearchHistory;\n\n\t\tconst target: ICollectionItem | null = window.$hsDropdownCollection.find((el) =>\n\t\t\tel.element.el.classList.contains('open'),\n\t\t);\n\n\t\tif (\n\t\t\ttarget &&\n\t\t\t(DROPDOWN_ACCESSIBILITY_KEY_SET.includes(evt.code) ||\n\t\t\t\t(evt.code.length === 4 &&\n\t\t\t\t\tevt.code[evt.code.length - 1].match(/^[A-Z]*$/))) &&\n\t\t\t!evt.metaKey &&\n\t\t\t!target.element.menu.querySelector('input:focus') &&\n\t\t\t!target.element.menu.querySelector('textarea:focus')\n\t\t) {\n\t\t\tswitch (evt.code) {\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tif (!target.element.menu.querySelector('.hs-select.active')) {\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tthis.onEscape(evt);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Enter':\n\t\t\t\t\tif (\n\t\t\t\t\t\t!target.element.menu.querySelector('.hs-select button:focus') &&\n\t\t\t\t\t\t!target.element.menu.querySelector('.hs-collapse-toggle:focus')\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.onEnter(evt);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onArrow();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onArrow(false);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Home':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onStartEnd();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'End':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onStartEnd(false);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onFirstLetter(evt.key);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic onEscape(evt: KeyboardEvent) {\n\t\tconst dropdown = (evt.target as HTMLElement).closest('.hs-dropdown.open');\n\n\t\tif (window.$hsDropdownCollection.find((el) => el.element.el === dropdown)) {\n\t\t\tconst target = window.$hsDropdownCollection.find(\n\t\t\t\t(el) => el.element.el === dropdown,\n\t\t\t);\n\n\t\t\tif (target) {\n\t\t\t\ttarget.element.close();\n\t\t\t\ttarget.element.toggle.focus();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.closeCurrentlyOpened();\n\t\t}\n\t}\n\n\tstatic onEnter(evt: KeyboardEvent) {\n\t\tconst dropdown = (evt.target as HTMLElement).parentElement;\n\n\t\tif (window.$hsDropdownCollection.find((el) => el.element.el === dropdown)) {\n\t\t\tevt.preventDefault();\n\n\t\t\tconst target = window.$hsDropdownCollection.find(\n\t\t\t\t(el) => el.element.el === dropdown,\n\t\t\t);\n\n\t\t\tif (target) target.element.open();\n\t\t}\n\t}\n\n\tstatic onArrow(isArrowUp = true) {\n\t\tconst target = window.$hsDropdownCollection.find((el) =>\n\t\t\tel.element.el.classList.contains('open'),\n\t\t);\n\n\t\tif (target) {\n\t\t\tconst menu = target.element.menu;\n\n\t\t\tif (!menu) return false;\n\n\t\t\tconst preparedLinks = isArrowUp\n\t\t\t\t? Array.from(\n\t\t\t\t\t\tmenu.querySelectorAll(\n\t\t\t\t\t\t\t'a:not([hidden]), .hs-dropdown > button:not([hidden])',\n\t\t\t\t\t\t),\n\t\t\t\t\t).reverse()\n\t\t\t\t: Array.from(\n\t\t\t\t\t\tmenu.querySelectorAll(\n\t\t\t\t\t\t\t'a:not([hidden]), .hs-dropdown > button:not([hidden])',\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\n\t\t\tconst links = preparedLinks.filter(\n\t\t\t\t(el: any) => !el.classList.contains('disabled'),\n\t\t\t);\n\t\t\tconst current = menu.querySelector('a:focus, button:focus');\n\t\t\tlet currentInd = links.findIndex((el: any) => el === current);\n\n\t\t\tif (currentInd + 1 < links.length) {\n\t\t\t\tcurrentInd++;\n\t\t\t}\n\n\t\t\t(links[currentInd] as HTMLButtonElement | HTMLAnchorElement).focus();\n\t\t}\n\t}\n\n\tstatic onStartEnd(isStart = true) {\n\t\tconst target = window.$hsDropdownCollection.find((el) =>\n\t\t\tel.element.el.classList.contains('open'),\n\t\t);\n\n\t\tif (target) {\n\t\t\tconst menu = target.element.menu;\n\n\t\t\tif (!menu) return false;\n\n\t\t\tconst preparedLinks = isStart\n\t\t\t\t? Array.from(menu.querySelectorAll('a'))\n\t\t\t\t: Array.from(menu.querySelectorAll('a')).reverse();\n\t\t\tconst links = preparedLinks.filter(\n\t\t\t\t(el: any) => !el.classList.contains('disabled'),\n\t\t\t);\n\n\t\t\tif (links.length) {\n\t\t\t\tlinks[0].focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic onFirstLetter(code: string) {\n\t\tconst target = window.$hsDropdownCollection.find((el) =>\n\t\t\tel.element.el.classList.contains('open'),\n\t\t);\n\n\t\tif (target) {\n\t\t\tconst menu = target.element.menu;\n\n\t\t\tif (!menu) return false;\n\n\t\t\tconst links = Array.from(menu.querySelectorAll('a'));\n\t\t\tconst getCurrentInd = () =>\n\t\t\t\tlinks.findIndex(\n\t\t\t\t\t(el, i) =>\n\t\t\t\t\t\tel.innerText.toLowerCase().charAt(0) === code.toLowerCase() &&\n\t\t\t\t\t\tthis.history.existsInHistory(i),\n\t\t\t\t);\n\t\t\tlet currentInd = getCurrentInd();\n\n\t\t\tif (currentInd === -1) {\n\t\t\t\tthis.history.clearHistory();\n\t\t\t\tcurrentInd = getCurrentInd();\n\t\t\t}\n\n\t\t\tif (currentInd !== -1) {\n\t\t\t\tlinks[currentInd].focus();\n\t\t\t\tthis.history.addHistory(currentInd);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic closeCurrentlyOpened(\n\t\tevtTarget: HTMLElement | null = null,\n\t\tisAnimated = true,\n\t) {\n\t\tconst parent =\n\t\t\tevtTarget &&\n\t\t\tevtTarget.closest('.hs-dropdown') &&\n\t\t\tevtTarget.closest('.hs-dropdown').parentElement.closest('.hs-dropdown')\n\t\t\t\t? evtTarget\n\t\t\t\t\t\t.closest('.hs-dropdown')\n\t\t\t\t\t\t.parentElement.closest('.hs-dropdown')\n\t\t\t\t: null;\n\t\tlet currentlyOpened = parent\n\t\t\t? window.$hsDropdownCollection.filter(\n\t\t\t\t\t(el) =>\n\t\t\t\t\t\tel.element.el.classList.contains('open') &&\n\t\t\t\t\t\tel.element.menu\n\t\t\t\t\t\t\t.closest('.hs-dropdown')\n\t\t\t\t\t\t\t.parentElement.closest('.hs-dropdown') === parent,\n\t\t\t\t)\n\t\t\t: window.$hsDropdownCollection.filter((el) =>\n\t\t\t\t\tel.element.el.classList.contains('open'),\n\t\t\t\t);\n\n\t\tif (\n\t\t\tevtTarget &&\n\t\t\tevtTarget.closest('.hs-dropdown') &&\n\t\t\tgetClassPropertyAlt(evtTarget.closest('.hs-dropdown'), '--auto-close') ===\n\t\t\t\t'inside'\n\t\t) {\n\t\t\tcurrentlyOpened = currentlyOpened.filter(\n\t\t\t\t(el) => el.element.el !== evtTarget.closest('.hs-dropdown'),\n\t\t\t);\n\t\t}\n\n\t\tif (currentlyOpened) {\n\t\t\tcurrentlyOpened.forEach((el) => {\n\t\t\t\tif (\n\t\t\t\t\tel.element.closeMode === 'false' ||\n\t\t\t\t\tel.element.closeMode === 'outside'\n\t\t\t\t)\n\t\t\t\t\treturn false;\n\n\t\t\t\tel.element.close(isAnimated);\n\t\t\t});\n\t\t}\n\t}\n\n\t// Backward compatibility\n\tstatic on(evt: string, target: HTMLElement, cb: Function) {\n\t\tconst elInCollection = window.$hsDropdownCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (elInCollection) elInCollection.element.events[evt] = cb;\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSDropdown: Function;\n\t\t$hsDropdownCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSDropdown.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Dropdown collection:', window.$hsDropdownCollection);\n});\n\nwindow.addEventListener('resize', () => {\n\tif (!window.$hsDropdownCollection) window.$hsDropdownCollection = [];\n\n\twindow.$hsDropdownCollection.forEach((el) => el.element.resizeHandler());\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSDropdown = HSDropdown;\n}\n\nexport default HSDropdown;\n","/*\n * HSInputNumber\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { dispatch } from '../../utils';\n\nimport { IInputNumberOptions, IInputNumber } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\n\nclass HSInputNumber\n\textends HSBasePlugin\n\timplements IInputNumber\n{\n\tprivate readonly input: HTMLInputElement | null;\n\tprivate readonly increment: HTMLElement | null;\n\tprivate readonly decrement: HTMLElement | null;\n\tprivate inputValue: number | null;\n\tprivate readonly minInputValue: number | null;\n\tprivate readonly maxInputValue: number | null;\n\tprivate readonly step: number;\n\n\tconstructor(el: HTMLElement, options?: IInputNumberOptions) {\n\t\tsuper(el, options);\n\n\t\tthis.input = this.el.querySelector('[data-hs-input-number-input]') || null;\n\t\tthis.increment =\n\t\t\tthis.el.querySelector('[data-hs-input-number-increment]') || null;\n\t\tthis.decrement =\n\t\t\tthis.el.querySelector('[data-hs-input-number-decrement]') || null;\n\n\t\tif (this.input) {\n\t\t\tthis.inputValue = !isNaN(parseInt(this.input.value))\n\t\t\t\t? parseInt(this.input.value)\n\t\t\t\t: 0;\n\t\t}\n\n\t\tconst data = this.el.dataset.hsInputNumber;\n\t\tconst dataOptions: IInputNumberOptions = data\n\t\t\t? JSON.parse(data)\n\t\t\t: { step: 1 };\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.minInputValue = 'min' in concatOptions ? concatOptions.min : 0;\n\t\tthis.maxInputValue = 'max' in concatOptions ? concatOptions.max : null;\n\t\tthis.step =\n\t\t\t'step' in concatOptions && concatOptions.step > 0\n\t\t\t\t? concatOptions.step\n\t\t\t\t: 1;\n\n\t\tthis.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsInputNumberCollection, this);\n\n\t\tif (this.input && this.increment) this.build();\n\t}\n\n\tprivate build() {\n\t\tif (this.input) this.buildInput();\n\t\tif (this.increment) this.buildIncrement();\n\t\tif (this.decrement) this.buildDecrement();\n\n\t\tif (this.inputValue <= 0 && this.minInputValue === 0) {\n\t\t\tthis.inputValue = 0;\n\t\t\tthis.input.value = '0';\n\t\t}\n\n\t\tif (this.inputValue <= 0 || this.minInputValue < 0) this.changeValue();\n\n\t\tif (this.input.hasAttribute('disabled')) this.disableButtons();\n\t}\n\n\tprivate buildInput() {\n\t\tthis.input.addEventListener('input', () => this.changeValue());\n\t}\n\n\tprivate buildIncrement() {\n\t\tthis.increment.addEventListener('click', () => {\n\t\t\tthis.changeValue('increment');\n\t\t});\n\t}\n\n\tprivate buildDecrement() {\n\t\tthis.decrement.addEventListener('click', () => {\n\t\t\tthis.changeValue('decrement');\n\t\t});\n\t}\n\n\tprivate changeValue(event = 'none') {\n\t\tconst payload = { inputValue: this.inputValue };\n\t\tconst minInputValue = this.minInputValue ?? Number.MIN_SAFE_INTEGER;\n\t\tconst maxInputValue = this.maxInputValue ?? Number.MAX_SAFE_INTEGER;\n\n\t\tthis.inputValue = isNaN(this.inputValue) ? 0 : this.inputValue;\n\n\t\tswitch (event) {\n\t\t\tcase 'increment':\n\t\t\t\tconst incrementedResult = this.inputValue + this.step;\n\t\t\t\tthis.inputValue =\n\t\t\t\t\tincrementedResult >= minInputValue &&\n\t\t\t\t\tincrementedResult <= maxInputValue\n\t\t\t\t\t\t? incrementedResult\n\t\t\t\t\t\t: maxInputValue;\n\t\t\t\tthis.input.value = this.inputValue.toString();\n\t\t\t\tbreak;\n\t\t\tcase 'decrement':\n\t\t\t\tconst decrementedResult = this.inputValue - this.step;\n\t\t\t\tthis.inputValue =\n\t\t\t\t\tdecrementedResult >= minInputValue &&\n\t\t\t\t\tdecrementedResult <= maxInputValue\n\t\t\t\t\t\t? decrementedResult\n\t\t\t\t\t\t: minInputValue;\n\t\t\t\tthis.input.value = this.inputValue.toString();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconst defaultResult = isNaN(parseInt(this.input.value))\n\t\t\t\t\t? 0\n\t\t\t\t\t: parseInt(this.input.value);\n\t\t\t\tthis.inputValue =\n\t\t\t\t\tdefaultResult >= maxInputValue\n\t\t\t\t\t\t? maxInputValue\n\t\t\t\t\t\t: defaultResult <= minInputValue\n\t\t\t\t\t\t\t? minInputValue\n\t\t\t\t\t\t\t: defaultResult;\n\t\t\t\tif (this.inputValue <= minInputValue)\n\t\t\t\t\tthis.input.value = this.inputValue.toString();\n\t\t\t\tbreak;\n\t\t}\n\n\t\tpayload.inputValue = this.inputValue;\n\n\t\tif (this.inputValue === minInputValue) {\n\t\t\tthis.el.classList.add('disabled');\n\t\t\tif (this.decrement) this.disableButtons('decrement');\n\t\t} else {\n\t\t\tthis.el.classList.remove('disabled');\n\t\t\tif (this.decrement) this.enableButtons('decrement');\n\t\t}\n\t\tif (this.inputValue === maxInputValue) {\n\t\t\tthis.el.classList.add('disabled');\n\t\t\tif (this.increment) this.disableButtons('increment');\n\t\t} else {\n\t\t\tthis.el.classList.remove('disabled');\n\t\t\tif (this.increment) this.enableButtons('increment');\n\t\t}\n\n\t\tthis.fireEvent('change', payload);\n\t\tdispatch('change.hs.inputNumber', this.el, payload);\n\t}\n\n\tprivate disableButtons(mode = 'all') {\n\t\tif (mode === 'all') {\n\t\t\tif (\n\t\t\t\tthis.increment.tagName === 'BUTTON' ||\n\t\t\t\tthis.increment.tagName === 'INPUT'\n\t\t\t)\n\t\t\t\tthis.increment.setAttribute('disabled', 'disabled');\n\t\t\tif (\n\t\t\t\tthis.decrement.tagName === 'BUTTON' ||\n\t\t\t\tthis.decrement.tagName === 'INPUT'\n\t\t\t)\n\t\t\t\tthis.decrement.setAttribute('disabled', 'disabled');\n\t\t} else if (mode === 'increment') {\n\t\t\tif (\n\t\t\t\tthis.increment.tagName === 'BUTTON' ||\n\t\t\t\tthis.increment.tagName === 'INPUT'\n\t\t\t)\n\t\t\t\tthis.increment.setAttribute('disabled', 'disabled');\n\t\t} else if (mode === 'decrement') {\n\t\t\tif (\n\t\t\t\tthis.decrement.tagName === 'BUTTON' ||\n\t\t\t\tthis.decrement.tagName === 'INPUT'\n\t\t\t)\n\t\t\t\tthis.decrement.setAttribute('disabled', 'disabled');\n\t\t}\n\t}\n\n\tprivate enableButtons(mode = 'all') {\n\t\tif (mode === 'all') {\n\t\t\tif (\n\t\t\t\tthis.increment.tagName === 'BUTTON' ||\n\t\t\t\tthis.increment.tagName === 'INPUT'\n\t\t\t)\n\t\t\t\tthis.increment.removeAttribute('disabled');\n\t\t\tif (\n\t\t\t\tthis.decrement.tagName === 'BUTTON' ||\n\t\t\t\tthis.decrement.tagName === 'INPUT'\n\t\t\t)\n\t\t\t\tthis.decrement.removeAttribute('disabled');\n\t\t} else if (mode === 'increment') {\n\t\t\tif (\n\t\t\t\tthis.increment.tagName === 'BUTTON' ||\n\t\t\t\tthis.increment.tagName === 'INPUT'\n\t\t\t)\n\t\t\t\tthis.increment.removeAttribute('disabled');\n\t\t} else if (mode === 'decrement') {\n\t\t\tif (\n\t\t\t\tthis.decrement.tagName === 'BUTTON' ||\n\t\t\t\tthis.decrement.tagName === 'INPUT'\n\t\t\t)\n\t\t\t\tthis.decrement.removeAttribute('disabled');\n\t\t}\n\t}\n\n\t// Global method\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsInputNumberCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsInputNumberCollection) window.$hsInputNumberCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-input-number]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsInputNumberCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSInputNumber(el);\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSInputNumber: Function;\n\t\t$hsInputNumberCollection: {\n\t\t\tid: number;\n\t\t\telement: HSInputNumber;\n\t\t}[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSInputNumber.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Input number collection:', window.$hsInputNumberCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSInputNumber = HSInputNumber;\n}\n\nexport default HSInputNumber;\n","/*\n * HSOverlay\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport {\n\tstringToBoolean,\n\tgetClassProperty,\n\tisParentOrElementHidden,\n\tdispatch,\n\tafterTransition,\n} from '../../utils';\n\nimport { IOverlayOptions, IOverlay } from './interfaces';\nimport { ICollectionItem } from '../../interfaces';\nimport { BREAKPOINTS } from '../../constants';\n\nimport HSBasePlugin from '../base-plugin';\n\nclass HSOverlay extends HSBasePlugin<{}> implements IOverlay {\n\tprivate readonly hiddenClass: string | null;\n\tprivate readonly isClosePrev: boolean;\n\tprivate readonly backdropClasses: string | null;\n\tprivate readonly backdropExtraClasses: string | null;\n\n\tprivate openNextOverlay: boolean;\n\tprivate autoHide: ReturnType | null;\n\tprivate readonly overlayId: string | null;\n\n\tpublic overlay: HTMLElement | null;\n\tpublic isCloseWhenClickInside: boolean;\n\tpublic isTabAccessibilityLimited: boolean;\n\tpublic isLayoutAffect: boolean;\n\tpublic hasAutofocus: boolean;\n\tpublic hasAbilityToCloseOnBackdropClick: boolean;\n\tpublic openedBreakpoint: number | null;\n\tpublic autoClose: number | null;\n\n\tconstructor(el: HTMLElement, options?: IOverlayOptions, events?: {}) {\n\t\tsuper(el, options, events);\n\n\t\tconst data = el.getAttribute('data-hs-overlay-options');\n\t\tconst dataOptions: IOverlayOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.hiddenClass = concatOptions?.hiddenClass || 'hidden';\n\t\tthis.isClosePrev = concatOptions?.isClosePrev ?? true;\n\t\tthis.backdropClasses =\n\t\t\tconcatOptions?.backdropClasses ??\n\t\t\t'hs-overlay-backdrop transition duration fixed inset-0 bg-gray-900 bg-opacity-50 dark:bg-opacity-80 dark:bg-neutral-900';\n\t\tthis.backdropExtraClasses = concatOptions?.backdropExtraClasses ?? '';\n\n\t\tthis.openNextOverlay = false;\n\t\tthis.autoHide = null;\n\t\tthis.overlayId = this.el.getAttribute('data-hs-overlay');\n\t\tthis.overlay = document.querySelector(this.overlayId);\n\t\tif (this.overlay) {\n\t\t\tthis.isCloseWhenClickInside = stringToBoolean(\n\t\t\t\tgetClassProperty(this.overlay, '--close-when-click-inside', 'false') ||\n\t\t\t\t\t'false',\n\t\t\t);\n\t\t\tthis.isTabAccessibilityLimited = stringToBoolean(\n\t\t\t\tgetClassProperty(this.overlay, '--tab-accessibility-limited', 'true') ||\n\t\t\t\t\t'true',\n\t\t\t);\n\t\t\tthis.isLayoutAffect = stringToBoolean(\n\t\t\t\tgetClassProperty(this.overlay, '--is-layout-affect', 'false') ||\n\t\t\t\t\t'false',\n\t\t\t);\n\t\t\tthis.hasAutofocus = stringToBoolean(\n\t\t\t\tgetClassProperty(this.overlay, '--has-autofocus', 'true') || 'true',\n\t\t\t);\n\t\t\tthis.hasAbilityToCloseOnBackdropClick = stringToBoolean(\n\t\t\t\tthis.overlay.getAttribute('data-hs-overlay-keyboard') || 'true',\n\t\t\t);\n\n\t\t\tconst autoCloseBreakpoint = getClassProperty(\n\t\t\t\tthis.overlay,\n\t\t\t\t'--auto-close',\n\t\t\t);\n\t\t\tthis.autoClose =\n\t\t\t\t!isNaN(+autoCloseBreakpoint) && isFinite(+autoCloseBreakpoint)\n\t\t\t\t\t? +autoCloseBreakpoint\n\t\t\t\t\t: BREAKPOINTS[autoCloseBreakpoint] || null;\n\n\t\t\tconst openedBreakpoint = getClassProperty(this.overlay, '--opened');\n\t\t\tthis.openedBreakpoint =\n\t\t\t\t(!isNaN(+openedBreakpoint) && isFinite(+openedBreakpoint)\n\t\t\t\t\t? +openedBreakpoint\n\t\t\t\t\t: BREAKPOINTS[openedBreakpoint]) || null;\n\t\t}\n\n\t\tif (this.overlay) this.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsOverlayCollection, this);\n\n\t\tif (this.isLayoutAffect && this.openedBreakpoint) {\n\t\t\tconst instance = HSOverlay.getInstance(this.el, true);\n\n\t\t\tHSOverlay.setOpened(\n\t\t\t\tthis.openedBreakpoint,\n\t\t\t\tinstance as ICollectionItem,\n\t\t\t);\n\t\t}\n\n\t\tthis.el.addEventListener('click', () => {\n\t\t\tif (this.overlay.classList.contains('opened')) this.close();\n\t\t\telse this.open();\n\t\t});\n\n\t\tthis.overlay.addEventListener('click', (evt) => {\n\t\t\tif (\n\t\t\t\t(evt.target as HTMLElement).id &&\n\t\t\t\t`#${(evt.target as HTMLElement).id}` === this.overlayId &&\n\t\t\t\tthis.isCloseWhenClickInside &&\n\t\t\t\tthis.hasAbilityToCloseOnBackdropClick\n\t\t\t) {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate hideAuto() {\n\t\tconst time = parseInt(getClassProperty(this.overlay, '--auto-hide', '0'));\n\n\t\tif (time) {\n\t\t\tthis.autoHide = setTimeout(() => {\n\t\t\t\tthis.close();\n\t\t\t}, time);\n\t\t}\n\t}\n\n\tprivate checkTimer() {\n\t\tif (this.autoHide) {\n\t\t\tclearTimeout(this.autoHide);\n\n\t\t\tthis.autoHide = null;\n\t\t}\n\t}\n\n\tprivate buildBackdrop() {\n\t\tconst overlayClasses = this.overlay.classList.value.split(' ');\n\t\tconst overlayZIndex = parseInt(\n\t\t\twindow.getComputedStyle(this.overlay).getPropertyValue('z-index'),\n\t\t);\n\t\tconst backdropId =\n\t\t\tthis.overlay.getAttribute('data-hs-overlay-backdrop-container') || false;\n\t\tlet backdrop: HTMLElement | Node = document.createElement('div');\n\t\tlet backdropClasses = `${this.backdropClasses} ${this.backdropExtraClasses}`;\n\t\tconst closeOnBackdrop =\n\t\t\tgetClassProperty(this.overlay, '--overlay-backdrop', 'true') !== 'static';\n\t\tconst disableBackdrop =\n\t\t\tgetClassProperty(this.overlay, '--overlay-backdrop', 'true') === 'false';\n\n\t\t(backdrop as HTMLElement).id = `${this.overlay.id}-backdrop`;\n\t\tif ('style' in backdrop) backdrop.style.zIndex = `${overlayZIndex - 1}`;\n\n\t\tfor (const value of overlayClasses) {\n\t\t\tif (\n\t\t\t\tvalue.startsWith('hs-overlay-backdrop-open:') ||\n\t\t\t\tvalue.includes(':hs-overlay-backdrop-open:')\n\t\t\t) {\n\t\t\t\tbackdropClasses += ` ${value}`;\n\t\t\t}\n\t\t}\n\n\t\tif (disableBackdrop) return;\n\n\t\tif (backdropId) {\n\t\t\tbackdrop = document.querySelector(backdropId).cloneNode(true);\n\t\t\t(backdrop as HTMLElement).classList.remove('hidden');\n\n\t\t\tbackdropClasses = `${(backdrop as HTMLElement).classList.toString()}`;\n\t\t\t(backdrop as HTMLElement).classList.value = '';\n\t\t}\n\n\t\tif (closeOnBackdrop) {\n\t\t\t(backdrop as HTMLElement).addEventListener(\n\t\t\t\t'click',\n\t\t\t\t() => this.close(),\n\t\t\t\ttrue,\n\t\t\t);\n\t\t}\n\n\t\t(backdrop as HTMLElement).setAttribute(\n\t\t\t'data-hs-overlay-backdrop-template',\n\t\t\t'',\n\t\t);\n\n\t\tdocument.body.appendChild(backdrop);\n\n\t\tsetTimeout(() => {\n\t\t\t(backdrop as HTMLElement).classList.value = backdropClasses;\n\t\t});\n\t}\n\n\tprivate destroyBackdrop() {\n\t\tconst backdrop: HTMLElement = document.querySelector(\n\t\t\t`#${this.overlay.id}-backdrop`,\n\t\t);\n\n\t\tif (!backdrop) return;\n\n\t\tif (this.openNextOverlay) {\n\t\t\tbackdrop.style.transitionDuration = `${\n\t\t\t\tparseFloat(\n\t\t\t\t\twindow\n\t\t\t\t\t\t.getComputedStyle(backdrop)\n\t\t\t\t\t\t.transitionDuration.replace(/[^\\d.-]/g, ''),\n\t\t\t\t) * 1.8\n\t\t\t}s`;\n\t\t}\n\n\t\tbackdrop.classList.add('opacity-0');\n\n\t\tafterTransition(backdrop, () => {\n\t\t\tbackdrop.remove();\n\t\t});\n\t}\n\n\tprivate focusElement() {\n\t\tconst input: HTMLInputElement = this.overlay.querySelector('[autofocus]');\n\n\t\tif (!input) return false;\n\t\telse input.focus();\n\t}\n\n\t// Public methods\n\tpublic open() {\n\t\tif (!this.overlay) return false;\n\n\t\tconst openedOverlays = document.querySelectorAll('.hs-overlay.open');\n\t\tconst currentlyOpened = window.$hsOverlayCollection.find(\n\t\t\t(el) =>\n\t\t\t\tArray.from(openedOverlays).includes(el.element.overlay) &&\n\t\t\t\t!el.element.isLayoutAffect,\n\t\t);\n\n\t\tconst disabledScroll =\n\t\t\tgetClassProperty(this.overlay, '--body-scroll', 'false') !== 'true';\n\n\t\tif (this.isClosePrev && currentlyOpened) {\n\t\t\tthis.openNextOverlay = true;\n\n\t\t\treturn currentlyOpened.element.close().then(() => {\n\t\t\t\tthis.open();\n\n\t\t\t\tthis.openNextOverlay = false;\n\t\t\t});\n\t\t}\n\n\t\tif (disabledScroll) {\n\t\t\tdocument.body.style.overflow = 'hidden';\n\t\t}\n\n\t\tthis.buildBackdrop();\n\t\tthis.checkTimer();\n\t\tthis.hideAuto();\n\n\t\tthis.overlay.classList.remove(this.hiddenClass);\n\t\tthis.overlay.setAttribute('aria-overlay', 'true');\n\t\tthis.overlay.setAttribute('tabindex', '-1');\n\n\t\tsetTimeout(() => {\n\t\t\tif (this.overlay.classList.contains('opened')) return false;\n\n\t\t\tthis.overlay.classList.add('open', 'opened');\n\t\t\tif (this.isLayoutAffect)\n\t\t\t\tdocument.body.classList.add('hs-overlay-body-open');\n\n\t\t\tthis.fireEvent('open', this.el);\n\t\t\tdispatch('open.hs.overlay', this.el, this.el);\n\n\t\t\tif (this.hasAutofocus) this.focusElement();\n\t\t}, 50);\n\t}\n\n\tpublic close(forceClose = false) {\n\t\tif (this.isLayoutAffect)\n\t\t\tdocument.body.classList.remove('hs-overlay-body-open');\n\n\t\tconst closeFn = (cb: Function) => {\n\t\t\tif (this.overlay.classList.contains('open')) return false;\n\n\t\t\tthis.overlay.classList.add(this.hiddenClass);\n\n\t\t\tthis.destroyBackdrop();\n\n\t\t\tthis.fireEvent('close', this.el);\n\t\t\tdispatch('close.hs.overlay', this.el, this.el);\n\n\t\t\tif (!document.querySelector('.hs-overlay.opened'))\n\t\t\t\tdocument.body.style.overflow = '';\n\n\t\t\tcb(this.overlay);\n\t\t};\n\n\t\treturn new Promise((resolve) => {\n\t\t\tif (!this.overlay) return false;\n\n\t\t\tthis.overlay.classList.remove('open', 'opened');\n\t\t\tthis.overlay.removeAttribute('aria-overlay');\n\t\t\tthis.overlay.removeAttribute('tabindex');\n\n\t\t\tif (forceClose) closeFn(resolve);\n\t\t\telse\n\t\t\t\tafterTransition(this.overlay, () => {\n\t\t\t\t\tcloseFn(resolve);\n\t\t\t\t});\n\t\t});\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsOverlayCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t\t(typeof target === 'string'\n\t\t\t\t\t\t? document.querySelector(target)\n\t\t\t\t\t\t: target) ||\n\t\t\t\tel.element.overlay ===\n\t\t\t\t\t(typeof target === 'string'\n\t\t\t\t\t\t? document.querySelector(target)\n\t\t\t\t\t\t: target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element.el\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsOverlayCollection) window.$hsOverlayCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-overlay]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsOverlayCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSOverlay(el);\n\t\t\t});\n\n\t\tif (window.$hsOverlayCollection) {\n\t\t\tdocument.addEventListener('keydown', (evt) =>\n\t\t\t\tHSOverlay.accessibility(evt),\n\t\t\t);\n\t\t}\n\t}\n\n\tstatic open(target: HTMLElement) {\n\t\tconst elInCollection = window.$hsOverlayCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t\t(typeof target === 'string'\n\t\t\t\t\t\t? document.querySelector(target)\n\t\t\t\t\t\t: target) ||\n\t\t\t\tel.element.overlay ===\n\t\t\t\t\t(typeof target === 'string'\n\t\t\t\t\t\t? document.querySelector(target)\n\t\t\t\t\t\t: target),\n\t\t);\n\n\t\tif (\n\t\t\telInCollection &&\n\t\t\telInCollection.element.overlay.classList.contains(\n\t\t\t\telInCollection.element.hiddenClass,\n\t\t\t)\n\t\t)\n\t\t\telInCollection.element.open();\n\t}\n\n\tstatic close(target: HTMLElement) {\n\t\tconst elInCollection = window.$hsOverlayCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t\t(typeof target === 'string'\n\t\t\t\t\t\t? document.querySelector(target)\n\t\t\t\t\t\t: target) ||\n\t\t\t\tel.element.overlay ===\n\t\t\t\t\t(typeof target === 'string'\n\t\t\t\t\t\t? document.querySelector(target)\n\t\t\t\t\t\t: target),\n\t\t);\n\n\t\tif (\n\t\t\telInCollection &&\n\t\t\t!elInCollection.element.overlay.classList.contains(\n\t\t\t\telInCollection.element.hiddenClass,\n\t\t\t)\n\t\t)\n\t\t\telInCollection.element.close();\n\t}\n\n\tstatic setOpened(breakpoint: number, el: ICollectionItem) {\n\t\tif (document.body.clientWidth >= breakpoint) {\n\t\t\tdocument.body.classList.add('hs-overlay-body-open');\n\t\t\tel.element.overlay.classList.add('opened');\n\t\t} else el.element.close(true);\n\t}\n\n\t// Accessibility methods\n\tstatic accessibility(evt: KeyboardEvent) {\n\t\tconst targets = window.$hsOverlayCollection.filter((el) =>\n\t\t\tel.element.overlay.classList.contains('open'),\n\t\t);\n\t\tconst target = targets[targets.length - 1];\n\t\tconst focusableElements = target?.element?.overlay?.querySelectorAll(\n\t\t\t'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n\t\t);\n\t\tconst notHiddenFocusableElements: HTMLElement[] = [];\n\t\tif (focusableElements?.length)\n\t\t\tfocusableElements.forEach((el: HTMLElement) => {\n\t\t\t\tif (!isParentOrElementHidden(el)) notHiddenFocusableElements.push(el);\n\t\t\t});\n\t\tconst basicCheck = target && !evt.metaKey;\n\n\t\tif (\n\t\t\tbasicCheck &&\n\t\t\t!target.element.isTabAccessibilityLimited &&\n\t\t\tevt.code === 'Tab'\n\t\t)\n\t\t\treturn false;\n\n\t\tif (basicCheck && notHiddenFocusableElements.length && evt.code === 'Tab') {\n\t\t\tevt.preventDefault();\n\t\t\tthis.onTab(target, notHiddenFocusableElements);\n\t\t}\n\t\tif (basicCheck && evt.code === 'Escape') {\n\t\t\tevt.preventDefault();\n\t\t\tthis.onEscape(target);\n\t\t}\n\t}\n\n\tstatic onEscape(target: ICollectionItem) {\n\t\tif (target && target.element.hasAbilityToCloseOnBackdropClick)\n\t\t\ttarget.element.close();\n\t}\n\n\tstatic onTab(\n\t\ttarget: ICollectionItem,\n\t\tfocusableElements: HTMLElement[],\n\t) {\n\t\tif (!focusableElements.length) return false;\n\n\t\tconst focused = target.element.overlay.querySelector(':focus');\n\t\tconst focusedIndex = Array.from(focusableElements).indexOf(\n\t\t\tfocused as HTMLElement,\n\t\t);\n\n\t\tif (focusedIndex > -1) {\n\t\t\tconst nextIndex = (focusedIndex + 1) % focusableElements.length;\n\t\t\t(focusableElements[nextIndex] as HTMLElement).focus();\n\t\t} else {\n\t\t\t(focusableElements[0] as HTMLElement).focus();\n\t\t}\n\t}\n\n\t// Backward compatibility\n\tstatic on(evt: string, target: HTMLElement, cb: Function) {\n\t\tconst elInCollection = window.$hsOverlayCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t\t(typeof target === 'string'\n\t\t\t\t\t\t? document.querySelector(target)\n\t\t\t\t\t\t: target) ||\n\t\t\t\tel.element.overlay ===\n\t\t\t\t\t(typeof target === 'string'\n\t\t\t\t\t\t? document.querySelector(target)\n\t\t\t\t\t\t: target),\n\t\t);\n\n\t\tif (elInCollection) elInCollection.element.events[evt] = cb;\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSOverlay: Function;\n\t\t$hsOverlayCollection: ICollectionItem[];\n\t}\n}\n\nconst autoCloseResizeFn = () => {\n\tif (\n\t\t!window.$hsOverlayCollection.length ||\n\t\t!window.$hsOverlayCollection.find((el) => el.element.autoClose)\n\t)\n\t\treturn false;\n\n\tconst overlays = window.$hsOverlayCollection.filter(\n\t\t(el) => el.element.autoClose,\n\t);\n\n\toverlays.forEach((overlay) => {\n\t\tif (document.body.clientWidth >= overlay.element.autoClose)\n\t\t\toverlay.element.close(true);\n\t});\n};\n\nconst setOpenedResizeFn = () => {\n\tif (\n\t\t!window.$hsOverlayCollection.length ||\n\t\t!window.$hsOverlayCollection.find((el) => el.element.openedBreakpoint)\n\t)\n\t\treturn false;\n\n\tconst overlays = window.$hsOverlayCollection.filter(\n\t\t(el) => el.element.openedBreakpoint,\n\t);\n\n\toverlays.forEach((overlay) => {\n\t\tHSOverlay.setOpened(overlay.element.openedBreakpoint, overlay);\n\t});\n};\n\nwindow.addEventListener('load', () => {\n\tHSOverlay.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Overlay collection:', window.$hsOverlayCollection);\n});\n\nwindow.addEventListener('resize', () => {\n\tautoCloseResizeFn();\n\tsetOpenedResizeFn();\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSOverlay = HSOverlay;\n}\n\nexport default HSOverlay;\n","/*\n * HSPinInput\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { dispatch } from '../../utils';\n\nimport { IPinInputOptions, IPinInput } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSPinInput extends HSBasePlugin implements IPinInput {\n\tprivate items: NodeListOf | null;\n\tprivate currentItem: HTMLInputElement | null;\n\tprivate currentValue: string[] | null;\n\tprivate readonly placeholders: string[] | null;\n\tprivate readonly availableCharsRE: RegExp | null;\n\n\tconstructor(el: HTMLElement, options?: IPinInputOptions) {\n\t\tsuper(el, options);\n\n\t\tconst data = el.getAttribute('data-hs-pin-input');\n\t\tconst dataOptions: IPinInputOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.items = this.el.querySelectorAll('[data-hs-pin-input-item]');\n\t\tthis.currentItem = null;\n\t\tthis.currentValue = new Array(this.items.length).fill('');\n\t\tthis.placeholders = [];\n\t\tthis.availableCharsRE = new RegExp(\n\t\t\tconcatOptions?.availableCharsRE || '^[a-zA-Z0-9]+$',\n\t\t); // '^[0-9]+$'\n\n\t\tthis.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsPinInputCollection, this);\n\n\t\tif (this.items.length) this.build();\n\t}\n\n\tprivate build() {\n\t\tthis.buildInputItems();\n\t}\n\n\tprivate buildInputItems() {\n\t\tthis.items.forEach((el, index) => {\n\t\t\tthis.placeholders.push(el.getAttribute('placeholder') || '');\n\n\t\t\tif (el.hasAttribute('autofocus')) this.onFocusIn(index);\n\n\t\t\tel.addEventListener('input', (evt) => this.onInput(evt, index));\n\t\t\tel.addEventListener('paste', (evt) => this.onPaste(evt));\n\t\t\tel.addEventListener('keydown', (evt) => this.onKeydown(evt, index));\n\t\t\tel.addEventListener('focusin', () => this.onFocusIn(index));\n\t\t\tel.addEventListener('focusout', () => this.onFocusOut(index));\n\t\t});\n\t}\n\n\tprivate checkIfNumber(value: string) {\n\t\treturn value.match(this.availableCharsRE);\n\t}\n\n\tprivate autoFillAll(text: string) {\n\t\tArray.from(text).forEach((n, i) => {\n\t\t\tif (!this?.items[i]) return false;\n\n\t\t\t(this.items[i] as HTMLInputElement).value = n;\n\n\t\t\tthis.items[i].dispatchEvent(new Event('input', { bubbles: true }));\n\t\t});\n\t}\n\n\tprivate setCurrentValue() {\n\t\tthis.currentValue = Array.from(this.items).map(\n\t\t\t(el) => (el as HTMLInputElement).value,\n\t\t);\n\t}\n\n\tprivate toggleCompleted() {\n\t\tif (!this.currentValue.includes('')) this.el.classList.add('active');\n\t\telse this.el.classList.remove('active');\n\t}\n\n\tprivate onInput(evt: Event, index: number) {\n\t\tconst originalValue = (evt.target as HTMLInputElement).value;\n\t\tthis.currentItem = evt.target as HTMLInputElement;\n\t\tthis.currentItem.value = '';\n\t\tthis.currentItem.value = originalValue[originalValue.length - 1];\n\n\t\tif (!this.checkIfNumber(this.currentItem.value)) {\n\t\t\tthis.currentItem.value = this.currentValue[index] || '';\n\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.setCurrentValue();\n\n\t\tif (this.currentItem.value) {\n\t\t\tif (index < this.items.length - 1) this.items[index + 1].focus();\n\t\t\tif (!this.currentValue.includes('')) {\n\t\t\t\tconst payload = { currentValue: this.currentValue };\n\n\t\t\t\tthis.fireEvent('completed', payload);\n\t\t\t\tdispatch('completed.hs.pinInput', this.el, payload);\n\t\t\t}\n\n\t\t\tthis.toggleCompleted();\n\t\t} else {\n\t\t\tif (index > 0) this.items[index - 1].focus();\n\t\t}\n\t}\n\n\tprivate onKeydown(evt: KeyboardEvent, index: number) {\n\t\tif (evt.key === 'Backspace' && index > 0) {\n\t\t\tif ((this.items[index] as HTMLInputElement).value === '') {\n\t\t\t\t(this.items[index - 1] as HTMLInputElement).value = '';\n\t\t\t\t(this.items[index - 1] as HTMLInputElement).focus();\n\t\t\t} else {\n\t\t\t\t(this.items[index] as HTMLInputElement).value = '';\n\t\t\t}\n\t\t}\n\n\t\tthis.setCurrentValue();\n\t\tthis.toggleCompleted();\n\t}\n\n\tprivate onFocusIn(index: number) {\n\t\tthis.items[index].setAttribute('placeholder', '');\n\t}\n\n\tprivate onFocusOut(index: number) {\n\t\tthis.items[index].setAttribute('placeholder', this.placeholders[index]);\n\t}\n\n\tprivate onPaste(evt: ClipboardEvent) {\n\t\tevt.preventDefault();\n\n\t\tthis.items.forEach((el) => {\n\t\t\tif (document.activeElement === el)\n\t\t\t\tthis.autoFillAll(evt.clipboardData.getData('text'));\n\t\t});\n\t}\n\n\t// Static method\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsPinInputCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsPinInputCollection) window.$hsPinInputCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-pin-input]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsPinInputCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSPinInput(el);\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSPinInput: Function;\n\t\t$hsPinInputCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSPinInput.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('PIN input collection:', window.$hsPinInputCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSPinInput = HSPinInput;\n}\n\nexport default HSPinInput;\n","/*\n * HSRemoveElement\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { afterTransition } from '../../utils';\n\nimport { IRemoveElementOptions, IRemoveElement } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSRemoveElement\n\textends HSBasePlugin\n\timplements IRemoveElement\n{\n\tprivate readonly removeTargetId: string | null;\n\tprivate readonly removeTarget: HTMLElement | null;\n\tprivate readonly removeTargetAnimationClass: string;\n\n\tconstructor(el: HTMLElement, options?: IRemoveElementOptions) {\n\t\tsuper(el, options);\n\n\t\tconst data = el.getAttribute('data-hs-remove-element-options');\n\t\tconst dataOptions: IRemoveElementOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.removeTargetId = this.el.getAttribute('data-hs-remove-element');\n\t\tthis.removeTarget = document.querySelector(this.removeTargetId);\n\t\tthis.removeTargetAnimationClass =\n\t\t\tconcatOptions?.removeTargetAnimationClass || 'hs-removing';\n\n\t\tif (this.removeTarget) this.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsRemoveElementCollection, this);\n\n\t\tthis.el.addEventListener('click', () => this.remove());\n\t}\n\n\tprivate remove() {\n\t\tif (!this.removeTarget) return false;\n\n\t\tthis.removeTarget.classList.add(this.removeTargetAnimationClass);\n\n\t\tafterTransition(this.removeTarget, () => {\n\t\t\tthis.removeTarget.remove();\n\t\t});\n\t}\n\n\t// Static method\n\tstatic autoInit() {\n\t\tif (!window.$hsRemoveElementCollection)\n\t\t\twindow.$hsRemoveElementCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-remove-element]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsRemoveElementCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSRemoveElement(el);\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSRemoveElement: Function;\n\t\t$hsRemoveElementCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSRemoveElement.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Remove element collection:', window.$hsRemoveElementCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSRemoveElement = HSRemoveElement;\n}\n\nexport default HSRemoveElement;\n","/*\n * HSTogglePassword\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { debounce, htmlToElement, classToClassList } from '../../utils';\n\nimport {\n\tISearchByJsonOptions,\n\tISearchItem,\n\tISearchByJson,\n\tISearchItemTemplate,\n} from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSSearchByJson\n\textends HSBasePlugin\n\timplements ISearchByJson\n{\n\tprivate readonly jsonUrl: string;\n\tprivate readonly minChars: number;\n\n\tprivate json: ISearchItem[];\n\tprivate result: ISearchItem[];\n\tprivate val: string;\n\n\tprivate readonly dropdownTemplate: string;\n\tprivate readonly dropdownClasses: string;\n\tprivate readonly dropdownItemTemplate: string;\n\tprivate readonly dropdownItemTemplatesByType: ISearchItemTemplate[];\n\tprivate readonly dropdownItemClasses: string;\n\tprivate readonly highlightedTextTagName: string;\n\tprivate readonly highlightedTextClasses: string;\n\n\tprivate dropdown: HTMLElement | null;\n\n\tconstructor(el: HTMLInputElement, options?: ISearchByJsonOptions) {\n\t\tsuper(el, options);\n\n\t\tconst data = el.getAttribute('data-hs-search-by-json');\n\t\tconst dataOptions: ISearchByJsonOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.jsonUrl = concatOptions.jsonUrl;\n\t\tthis.minChars = concatOptions.minChars || 3;\n\t\tthis.dropdownTemplate = concatOptions.dropdownTemplate || '
';\n\t\tthis.dropdownClasses =\n\t\t\tconcatOptions.dropdownClasses ||\n\t\t\t'absolute top-full z-[1] w-full bg-white border border-gray-200 rounded-md hidden mt-2';\n\t\tthis.dropdownItemTemplate =\n\t\t\tconcatOptions.dropdownItemTemplate || '
';\n\t\tthis.dropdownItemTemplatesByType =\n\t\t\tconcatOptions.dropdownItemTemplatesByType || null;\n\t\tthis.dropdownItemClasses =\n\t\t\tconcatOptions.dropdownItemClasses ||\n\t\t\t'py-2 px-4 w-full cursor-pointer text-sm hover:bg-gray-300 hover:text-black';\n\t\tthis.highlightedTextTagName = concatOptions.highlightedTextTagName || 'u';\n\t\tthis.highlightedTextClasses =\n\t\t\tconcatOptions.highlightedTextClasses || 'bg-green-200';\n\n\t\tif (this.jsonUrl) this.fetchData().then(() => this.init());\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsSearchByJsonCollection, this);\n\n\t\tthis.buildDropdown();\n\n\t\tthis.el.addEventListener(\n\t\t\t'input',\n\t\t\tdebounce((evt: InputEvent) => {\n\t\t\t\tthis.val = (evt.target as HTMLInputElement).value;\n\n\t\t\t\tif (this.val.length > this.minChars) {\n\t\t\t\t\tthis.searchData(this.val);\n\t\t\t\t} else {\n\t\t\t\t\tthis.result = [];\n\t\t\t\t}\n\n\t\t\t\tif (this.result.length) {\n\t\t\t\t\tthis.dropdown.classList.remove('hidden');\n\t\t\t\t} else {\n\t\t\t\t\tthis.dropdown.classList.add('hidden');\n\t\t\t\t}\n\n\t\t\t\tthis.buildItems();\n\t\t\t}),\n\t\t);\n\t}\n\n\tprivate async fetchData() {\n\t\tawait fetch(this.jsonUrl)\n\t\t\t.then((data) => data.json())\n\t\t\t.then((data) => (this.json = data));\n\t}\n\n\tprivate searchData(val: string) {\n\t\tthis.result = this.json.filter((el) => {\n\t\t\tconst value = val.toLowerCase();\n\t\t\tconst title = el.title.toLowerCase();\n\t\t\tconst description = el.description.toLowerCase();\n\n\t\t\treturn title.includes(value) || description.includes(value);\n\t\t});\n\t}\n\n\tprivate buildDropdown() {\n\t\tthis.dropdown = htmlToElement(this.dropdownTemplate);\n\t\tif (this.dropdownClasses)\n\t\t\tclassToClassList(this.dropdownClasses, this.dropdown);\n\n\t\tthis.el.after(this.dropdown);\n\t}\n\n\tprivate buildItems() {\n\t\tthis.dropdown.innerHTML = '';\n\n\t\tthis.result.forEach((el) => {\n\t\t\tconst link = htmlToElement(\n\t\t\t\t``,\n\t\t\t);\n\t\t\tlink.append(this.itemTemplate(el));\n\t\t\tthis.dropdown.append(link);\n\t\t});\n\t}\n\n\tprivate itemTemplate(el: ISearchItem) {\n\t\tconst re = new RegExp(this.val, 'gi');\n\t\tconst newTitle = el.title.replace(\n\t\t\tre,\n\t\t\t`<${this.highlightedTextTagName} class=\"inline-block ${this.highlightedTextClasses}\">${this.val}`,\n\t\t);\n\t\tconst newDescription = el.description.replace(\n\t\t\tre,\n\t\t\t`<${this.highlightedTextTagName} class=\"inline-block ${this.highlightedTextClasses}\">${this.val}`,\n\t\t);\n\t\tconst templateByType = this.dropdownItemTemplatesByType\n\t\t\t? this.dropdownItemTemplatesByType.find(\n\t\t\t\t\t(template) => template.type === el.type,\n\t\t\t\t)\n\t\t\t: null;\n\t\tconst template = templateByType\n\t\t\t? htmlToElement(templateByType.markup)\n\t\t\t: htmlToElement(this.dropdownItemTemplate);\n\t\tif (this.dropdownItemClasses)\n\t\t\tclassToClassList(this.dropdownItemClasses, template);\n\t\tconst title: HTMLElement = template.querySelector('[data-title]');\n\t\tif (title) title.append(htmlToElement(`${newTitle}`));\n\t\telse template.append(htmlToElement(`${newTitle}`));\n\t\tconst description: HTMLElement =\n\t\t\ttemplate.querySelector('[data-description]');\n\t\tif (description)\n\t\t\tdescription.append(htmlToElement(`${newDescription}`));\n\t\telse if (!templateByType) {\n\t\t\tconst br = htmlToElement('
');\n\t\t\ttemplate.append(br);\n\t\t\ttemplate.append(htmlToElement(`${newDescription}`));\n\t\t}\n\n\t\treturn template;\n\t}\n\n\t// Static method\n\tstatic getInstance(target: HTMLElement | string) {\n\t\tconst elInCollection = window.$hsSearchByJsonCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection ? elInCollection.element : null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsSearchByJsonCollection)\n\t\t\twindow.$hsSearchByJsonCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-search-by-json]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLInputElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsSearchByJsonCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSSearchByJson(el);\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSSearchByJson: Function;\n\t\t$hsSearchByJsonCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSSearchByJson.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Search by JSON collection:', window.$hsSearchByJsonCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSSearchByJson = HSSearchByJson;\n}\n\nexport default HSSearchByJson;\n","/*\n * HSScrollspy\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { getClassProperty, dispatch } from '../../utils';\n\nimport { IScrollspy } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSScrollspy extends HSBasePlugin<{}> implements IScrollspy {\n\tprivate activeSection: HTMLElement | null;\n\tprivate readonly contentId: string | null;\n\tprivate readonly content: HTMLElement | null;\n\tprivate readonly links: NodeListOf | null;\n\tprivate readonly sections: HTMLElement[] | null;\n\tprivate readonly scrollableId: string | null;\n\tprivate readonly scrollable: HTMLElement | Document;\n\n\tconstructor(el: HTMLElement, options = {}) {\n\t\tsuper(el, options);\n\n\t\tthis.activeSection = null;\n\t\tthis.contentId = this.el.getAttribute('data-hs-scrollspy');\n\t\tthis.content = document.querySelector(this.contentId);\n\t\tthis.links = this.el.querySelectorAll('[href]');\n\t\t// this.sections = this.content.children;\n\t\tthis.sections = [];\n\t\tthis.scrollableId = this.el.getAttribute(\n\t\t\t'data-hs-scrollspy-scrollable-parent',\n\t\t);\n\t\tthis.scrollable = this.scrollableId\n\t\t\t? (document.querySelector(this.scrollableId) as HTMLElement)\n\t\t\t: (document as Document);\n\n\t\tthis.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsScrollspyCollection, this);\n\n\t\tthis.links.forEach((el) => {\n\t\t\tthis.sections.push(\n\t\t\t\tthis.scrollable.querySelector(el.getAttribute('href')),\n\t\t\t);\n\t\t});\n\n\t\tArray.from(this.sections).forEach((section: HTMLElement) => {\n\t\t\tif (!section.getAttribute('id')) return false;\n\n\t\t\tthis.scrollable.addEventListener('scroll', (evt) =>\n\t\t\t\tthis.update(evt, section),\n\t\t\t);\n\t\t});\n\n\t\tthis.links.forEach((el) => {\n\t\t\tel.addEventListener('click', (evt) => {\n\t\t\t\tevt.preventDefault();\n\n\t\t\t\tif (el.getAttribute('href') === 'javascript:;') return false;\n\n\t\t\t\tthis.scrollTo(el);\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate update(evt: Event, section: HTMLElement) {\n\t\tconst globalOffset = parseInt(\n\t\t\tgetClassProperty(this.el, '--scrollspy-offset', '0'),\n\t\t);\n\t\tconst userOffset =\n\t\t\tparseInt(getClassProperty(section, '--scrollspy-offset')) || globalOffset;\n\t\tconst scrollableParentOffset =\n\t\t\tevt.target === document\n\t\t\t\t? 0\n\t\t\t\t: parseInt(\n\t\t\t\t\t\tString((evt.target as HTMLElement).getBoundingClientRect().top),\n\t\t\t\t\t);\n\t\tconst topOffset =\n\t\t\tparseInt(String(section.getBoundingClientRect().top)) -\n\t\t\tuserOffset -\n\t\t\tscrollableParentOffset;\n\t\tconst height = section.offsetHeight;\n\n\t\tif (topOffset <= 0 && topOffset + height > 0) {\n\t\t\tif (this.activeSection === section) return false;\n\n\t\t\tthis.links.forEach((el) => {\n\t\t\t\tel.classList.remove('active');\n\t\t\t});\n\n\t\t\tconst current = this.el.querySelector(\n\t\t\t\t`[href=\"#${section.getAttribute('id')}\"]`,\n\t\t\t);\n\n\t\t\tif (current) {\n\t\t\t\tcurrent.classList.add('active');\n\n\t\t\t\tconst group = current.closest('[data-hs-scrollspy-group]');\n\n\t\t\t\tif (group) {\n\t\t\t\t\tconst parentLink = group.querySelector('[href]');\n\n\t\t\t\t\tif (parentLink) parentLink.classList.add('active');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.activeSection = section;\n\t\t}\n\t}\n\n\tprivate scrollTo(link: HTMLAnchorElement) {\n\t\tconst targetId = link.getAttribute('href');\n\t\tconst target: HTMLElement = document.querySelector(targetId);\n\t\tconst globalOffset = parseInt(\n\t\t\tgetClassProperty(this.el, '--scrollspy-offset', '0'),\n\t\t);\n\t\tconst userOffset =\n\t\t\tparseInt(getClassProperty(target, '--scrollspy-offset')) || globalOffset;\n\t\tconst scrollableParentOffset =\n\t\t\tthis.scrollable === document\n\t\t\t\t? 0\n\t\t\t\t: (this.scrollable as HTMLElement).offsetTop;\n\t\tconst topOffset = target.offsetTop - userOffset - scrollableParentOffset;\n\t\tconst view = this.scrollable === document ? window : this.scrollable;\n\t\tconst scrollFn = () => {\n\t\t\twindow.history.replaceState(null, null, link.getAttribute('href'));\n\n\t\t\tif ('scrollTo' in view) {\n\t\t\t\tview.scrollTo({\n\t\t\t\t\ttop: topOffset,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst beforeScroll = this.fireEvent('beforeScroll', this.el);\n\t\tdispatch('beforeScroll.hs.scrollspy', this.el, this.el);\n\n\t\tif (beforeScroll instanceof Promise) beforeScroll.then(() => scrollFn());\n\t\telse scrollFn();\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement, isInstance = false) {\n\t\tconst elInCollection = window.$hsScrollspyCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element.el\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsScrollspyCollection) window.$hsScrollspyCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-scrollspy]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsScrollspyCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSScrollspy(el);\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSScrollspy: Function;\n\t\t$hsScrollspyCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSScrollspy.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Scrollspy collection:', window.$hsScrollspyCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSScrollspy = HSScrollspy;\n}\n\nexport default HSScrollspy;\n","/*\n * HSSelect\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport {\n\tisEnoughSpace,\n\tdebounce,\n\tdispatch,\n\tafterTransition,\n\thtmlToElement,\n\tclassToClassList,\n} from '../../utils';\n\nimport {\n\tISelect,\n\tISelectOptions,\n\tISingleOption,\n\tISingleOptionOptions,\n} from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nimport { SELECT_ACCESSIBILITY_KEY_SET } from '../../constants';\n\nclass HSSelect extends HSBasePlugin implements ISelect {\n\tvalue: string | string[] | null;\n\tprivate readonly placeholder: string | null;\n\tprivate readonly hasSearch: boolean;\n\tprivate readonly preventSearchFocus: boolean;\n\tprivate readonly mode: string | null;\n\tprivate readonly viewport: HTMLElement | null;\n\n\tisOpened: boolean | null;\n\tisMultiple: boolean | null;\n\tisDisabled: boolean | null;\n\tselectedItems: string[];\n\n\tprivate readonly toggleTag: string | null;\n\tprivate readonly toggleClasses: string | null;\n\tprivate readonly toggleCountText: string | null;\n\tprivate readonly toggleCountTextMinItems: number | null;\n\tprivate readonly wrapperClasses: string | null;\n\tprivate readonly tagsItemTemplate: string | null;\n\tprivate readonly tagsItemClasses: string | null;\n\tprivate readonly tagsInputClasses: string | null;\n\tprivate readonly dropdownTag: string | null;\n\tprivate readonly dropdownClasses: string | null;\n\tprivate readonly dropdownDirectionClasses: {\n\t\ttop?: string;\n\t\tbottom?: string;\n\t} | null;\n\tpublic dropdownSpace: number | null;\n\tprivate readonly searchWrapperTemplate: string | null;\n\tprivate readonly searchPlaceholder: string | null;\n\tprivate readonly searchClasses: string | null;\n\tprivate readonly searchWrapperClasses: string | null;\n\tprivate readonly searchNoResultText: string | null;\n\tprivate readonly searchNoResultClasses: string | null;\n\tprivate readonly optionTag: string | null;\n\tprivate readonly optionTemplate: string | null;\n\tprivate readonly optionClasses: string | null;\n\tprivate readonly descriptionClasses: string | null;\n\tprivate readonly iconClasses: string | null;\n\n\tprivate animationInProcess: boolean;\n\n\tprivate wrapper: HTMLElement | null;\n\tprivate toggle: HTMLElement | null;\n\tprivate toggleTextWrapper: HTMLElement | null;\n\tprivate tagsInput: HTMLElement | null;\n\tprivate dropdown: HTMLElement | null;\n\tprivate searchWrapper: HTMLElement | null;\n\tprivate search: HTMLInputElement | null;\n\tprivate searchNoResult: HTMLElement | null;\n\tprivate selectOptions: ISingleOption[] | [];\n\tprivate extraMarkup: string | string[] | null;\n\n\tprivate readonly isAddTagOnEnter: boolean;\n\n\tprivate tagsInputHelper: HTMLElement | null;\n\n\tconstructor(el: HTMLElement, options?: ISelectOptions) {\n\t\tsuper(el, options);\n\n\t\tconst data = el.getAttribute('data-hs-select');\n\t\tconst dataOptions: ISelectOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.value =\n\t\t\tconcatOptions?.value || (this.el as HTMLSelectElement).value || null;\n\t\tthis.placeholder = concatOptions?.placeholder || 'Select...';\n\t\tthis.hasSearch = concatOptions?.hasSearch || false;\n\t\tthis.preventSearchFocus = concatOptions?.preventSearchFocus || false;\n\t\tthis.mode = concatOptions?.mode || 'default';\n\t\tthis.viewport =\n\t\t\ttypeof concatOptions?.viewport !== 'undefined'\n\t\t\t\t? document.querySelector(concatOptions?.viewport)\n\t\t\t\t: null;\n\t\tthis.isOpened = Boolean(concatOptions?.isOpened) || false;\n\t\tthis.isMultiple = this.el.hasAttribute('multiple') || false;\n\t\tthis.isDisabled = this.el.hasAttribute('disabled') || false;\n\t\tthis.selectedItems = [];\n\t\tthis.wrapperClasses = concatOptions?.wrapperClasses || null;\n\t\tthis.toggleTag = concatOptions?.toggleTag || null;\n\t\tthis.toggleClasses = concatOptions?.toggleClasses || null;\n\t\tthis.toggleCountText = concatOptions?.toggleCountText || null;\n\t\tthis.toggleCountTextMinItems = concatOptions?.toggleCountTextMinItems || 1;\n\t\tthis.tagsItemTemplate = concatOptions?.tagsItemTemplate || null;\n\t\tthis.tagsItemClasses = concatOptions?.tagsItemClasses || null;\n\t\tthis.tagsInputClasses = concatOptions?.tagsInputClasses || null;\n\t\tthis.dropdownTag = concatOptions?.dropdownTag || null;\n\t\tthis.dropdownClasses = concatOptions?.dropdownClasses || null;\n\t\tthis.dropdownDirectionClasses =\n\t\t\tconcatOptions?.dropdownDirectionClasses || null;\n\t\tthis.dropdownSpace = concatOptions?.dropdownSpace || 10;\n\t\tthis.searchWrapperTemplate = concatOptions?.searchWrapperTemplate || null;\n\t\tthis.searchWrapperClasses =\n\t\t\tconcatOptions?.searchWrapperClasses || 'bg-white p-2 sticky top-0';\n\t\tthis.searchClasses =\n\t\t\tconcatOptions?.searchClasses ||\n\t\t\t'block w-[calc(100%-2rem)] text-sm border-gray-200 rounded-md focus:border-blue-500 focus:ring-blue-500 dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400 py-2 px-3 my-2 mx-4';\n\t\tthis.searchPlaceholder = concatOptions?.searchPlaceholder || 'Search...';\n\t\tthis.searchNoResultText =\n\t\t\tconcatOptions?.searchNoResultText || 'No results found';\n\t\tthis.searchNoResultClasses =\n\t\t\tconcatOptions?.searchNoResultClasses ||\n\t\t\t'px-4 text-sm text-gray-800 dark:text-neutral-200';\n\t\tthis.optionTemplate = concatOptions?.optionTemplate || null;\n\t\tthis.optionTag = concatOptions?.optionTag || null;\n\t\tthis.optionClasses = concatOptions?.optionClasses || null;\n\t\tthis.extraMarkup = concatOptions?.extraMarkup || null;\n\t\tthis.descriptionClasses = concatOptions?.descriptionClasses || null;\n\t\tthis.iconClasses = concatOptions?.iconClasses || null;\n\t\tthis.isAddTagOnEnter = concatOptions?.isAddTagOnEnter ?? true;\n\n\t\tthis.animationInProcess = false;\n\t\tthis.selectOptions = [];\n\n\t\tthis.tagsInputHelper = null;\n\n\t\tthis.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsSelectCollection, this);\n\n\t\tthis.build();\n\t}\n\n\tprivate build() {\n\t\tthis.el.style.display = 'none';\n\n\t\tif (this.el.children) {\n\t\t\tArray.from(this.el.children)\n\t\t\t\t.filter((el: HTMLOptionElement) => el.value && el.value !== '')\n\t\t\t\t.forEach((el: HTMLOptionElement) => {\n\t\t\t\t\tconst data = el.getAttribute('data-hs-select-option');\n\n\t\t\t\t\tthis.selectOptions = [\n\t\t\t\t\t\t...this.selectOptions,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: el.textContent,\n\t\t\t\t\t\t\tval: el.value,\n\t\t\t\t\t\t\toptions: data !== 'undefined' ? JSON.parse(data) : null,\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t});\n\t\t}\n\n\t\tif (this.isMultiple) {\n\t\t\tconst selectedOptions = Array.from(\n\t\t\t\t(this.el as HTMLSelectElement).options,\n\t\t\t).filter((el) => el.selected);\n\n\t\t\tif (selectedOptions) {\n\t\t\t\tconst values: string[] = [];\n\n\t\t\t\tselectedOptions.forEach((el) => {\n\t\t\t\t\tvalues.push(el.value);\n\t\t\t\t});\n\n\t\t\t\tthis.value = values;\n\t\t\t}\n\t\t}\n\n\t\tthis.buildWrapper();\n\t\tif (this.mode === 'tags') this.buildTags();\n\t\telse this.buildToggle();\n\t\tthis.buildDropdown();\n\t\tif (this.extraMarkup) this.buildExtraMarkup();\n\t}\n\n\tprivate buildWrapper() {\n\t\tthis.wrapper = document.createElement('div');\n\t\tthis.wrapper.classList.add('hs-select', 'relative');\n\n\t\tif (this.mode === 'tags') {\n\t\t\tthis.wrapper.addEventListener('click', (evt) => {\n\t\t\t\tif (\n\t\t\t\t\t!(evt.target as HTMLElement).closest('[data-hs-select-dropdown]') &&\n\t\t\t\t\t!(evt.target as HTMLElement).closest('[data-tag-value]')\n\t\t\t\t) {\n\t\t\t\t\tthis.tagsInput.focus();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (this.wrapperClasses)\n\t\t\tclassToClassList(this.wrapperClasses, this.wrapper);\n\n\t\tthis.el.before(this.wrapper);\n\n\t\tthis.wrapper.append(this.el);\n\t}\n\n\tprivate buildExtraMarkup() {\n\t\tconst appendMarkup = (markup: string) => {\n\t\t\tthis.wrapper.append(htmlToElement(markup));\n\t\t};\n\n\t\tif (Array.isArray(this.extraMarkup))\n\t\t\tthis.extraMarkup.forEach((el) => appendMarkup(el));\n\t\telse appendMarkup(this.extraMarkup);\n\t}\n\n\tprivate buildToggle() {\n\t\tlet icon, title;\n\t\tthis.toggleTextWrapper = document.createElement('span');\n\t\tthis.toggleTextWrapper.classList.add('truncate');\n\t\tthis.toggle = htmlToElement(this.toggleTag || '
');\n\t\ticon = this.toggle.querySelector('[data-icon]');\n\t\ttitle = this.toggle.querySelector('[data-title]');\n\n\t\tif (!this.isMultiple && icon) this.setToggleIcon();\n\t\tif (!this.isMultiple && title) this.setToggleTitle();\n\t\tif (this.isMultiple) {\n\t\t\tthis.toggleTextWrapper.innerHTML = this.value.length\n\t\t\t\t? this.stringFromValue()\n\t\t\t\t: this.placeholder;\n\t\t} else {\n\t\t\tthis.toggleTextWrapper.innerHTML =\n\t\t\t\tthis.getItemByValue(this.value as string)?.title || this.placeholder;\n\t\t}\n\t\tif (!title) this.toggle.append(this.toggleTextWrapper);\n\t\tif (this.toggleClasses) classToClassList(this.toggleClasses, this.toggle);\n\t\tif (this.isDisabled) this.toggle.classList.add('disabled');\n\t\tif (this.wrapper) this.wrapper.append(this.toggle);\n\n\t\tthis.toggle.addEventListener('click', () => {\n\t\t\tif (this.isDisabled) return false;\n\n\t\t\tif (this.isOpened) this.close();\n\t\t\telse this.open();\n\t\t});\n\t}\n\n\tprivate setToggleIcon() {\n\t\tconst icon = this.toggle.querySelector('[data-icon]');\n\t\ticon.innerHTML = '';\n\n\t\tif (icon) {\n\t\t\tconst img = htmlToElement(\n\t\t\t\tthis.getItemByValue(this.value as string)?.options?.icon || '',\n\t\t\t);\n\t\t\ticon.append(img);\n\n\t\t\tif (!img) icon.classList.add('hidden');\n\t\t\telse icon.classList.remove('hidden');\n\t\t}\n\t}\n\n\tprivate setToggleTitle() {\n\t\tconst title = this.toggle.querySelector('[data-title]');\n\t\ttitle.classList.add('truncate');\n\t\ttitle.innerHTML = '';\n\n\t\tif (title) {\n\t\t\tconst titleText =\n\t\t\t\tthis.getItemByValue(this.value as string)?.title || this.placeholder;\n\t\t\ttitle.innerHTML = titleText;\n\n\t\t\tthis.toggle.append(title);\n\t\t}\n\t}\n\n\tprivate buildTags() {\n\t\tthis.buildTagsInput();\n\t\tthis.setTagsItems();\n\t}\n\n\tprivate reassignTagsInputPlaceholder(placeholder: string) {\n\t\t(this.tagsInput as HTMLInputElement).placeholder = placeholder;\n\t\tthis.tagsInputHelper.innerHTML = placeholder;\n\t\tthis.calculateInputWidth();\n\t}\n\n\tprivate buildTagsItem(val: string) {\n\t\tconst item = this.getItemByValue(val);\n\n\t\tlet template, title, remove, icon: null | HTMLElement;\n\n\t\tconst newItem = document.createElement('div');\n\t\tnewItem.setAttribute('data-tag-value', val);\n\t\tif (this.tagsItemClasses) classToClassList(this.tagsItemClasses, newItem);\n\n\t\tif (this.tagsItemTemplate) {\n\t\t\ttemplate = htmlToElement(this.tagsItemTemplate);\n\n\t\t\tnewItem.append(template);\n\t\t}\n\n\t\t// Icon\n\t\tif (item?.options?.icon) {\n\t\t\tconst img = htmlToElement(item?.options?.icon);\n\t\t\ticon = template\n\t\t\t\t? template.querySelector('[data-icon]')\n\t\t\t\t: document.createElement('span');\n\n\t\t\ticon.append(img);\n\n\t\t\tif (!template) newItem.append(icon);\n\t\t}\n\t\tif (\n\t\t\ttemplate &&\n\t\t\ttemplate.querySelector('[data-icon]') &&\n\t\t\t!item?.options?.icon\n\t\t) {\n\t\t\ttemplate.querySelector('[data-icon]').classList.add('hidden');\n\t\t}\n\n\t\t// Title\n\t\ttitle = template\n\t\t\t? template.querySelector('[data-title]')\n\t\t\t: document.createElement('span');\n\t\ttitle.textContent = item.title || '';\n\n\t\tif (!template) newItem.append(title);\n\n\t\t// Remove\n\t\tif (template) {\n\t\t\tremove = template.querySelector('[data-remove]');\n\t\t} else {\n\t\t\tremove = document.createElement('span');\n\t\t\tremove.textContent = 'X';\n\n\t\t\tnewItem.append(remove);\n\t\t}\n\n\t\tremove.addEventListener('click', () => {\n\t\t\tthis.value = (this.value as string[]).filter((el) => el !== val);\n\t\t\tthis.selectedItems = this.selectedItems.filter((el) => el !== val);\n\n\t\t\tif (!this.value.length)\n\t\t\t\tthis.reassignTagsInputPlaceholder(this.placeholder);\n\n\t\t\tthis.unselectMultipleItems();\n\t\t\tthis.selectMultipleItems();\n\n\t\t\tnewItem.remove();\n\t\t});\n\n\t\tthis.wrapper.append(newItem);\n\t}\n\n\tprivate getItemByValue(val: string) {\n\t\treturn this.selectOptions.find((el: ISingleOption) => el.val === val);\n\t}\n\n\tprivate setTagsItems() {\n\t\tif (this.value) {\n\t\t\t(this.value as string[]).forEach((val) => {\n\t\t\t\tif (!this.selectedItems.includes(val)) this.buildTagsItem(val);\n\n\t\t\t\tthis.selectedItems = !this.selectedItems.includes(val)\n\t\t\t\t\t? [...this.selectedItems, val]\n\t\t\t\t\t: this.selectedItems;\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate buildTagsInput() {\n\t\tthis.tagsInput = document.createElement('input');\n\n\t\tif (this.tagsInputClasses)\n\t\t\tclassToClassList(this.tagsInputClasses, this.tagsInput);\n\n\t\tthis.tagsInput.addEventListener('focus', () => this.open());\n\t\tthis.tagsInput.addEventListener('input', () => this.calculateInputWidth());\n\t\tthis.tagsInput.addEventListener(\n\t\t\t'input',\n\t\t\tdebounce((evt: InputEvent) =>\n\t\t\t\tthis.searchOptions((evt.target as HTMLInputElement).value),\n\t\t\t),\n\t\t);\n\t\tthis.tagsInput.addEventListener('keydown', (evt) => {\n\t\t\tif (evt.key === 'Enter' && this.isAddTagOnEnter) {\n\t\t\t\tconst val = (evt.target as HTMLInputElement).value;\n\n\t\t\t\tif (this.selectOptions.find((el: ISingleOption) => el.val === val))\n\t\t\t\t\treturn false;\n\n\t\t\t\tthis.addSelectOption(val, val);\n\t\t\t\tthis.buildOption(val, val);\n\t\t\t\t(\n\t\t\t\t\tthis.dropdown.querySelector(`[data-value=\"${val}\"]`) as HTMLElement\n\t\t\t\t).click();\n\n\t\t\t\tthis.resetTagsInputField();\n\t\t\t\t// this.close();\n\t\t\t}\n\t\t});\n\n\t\tthis.wrapper.append(this.tagsInput);\n\n\t\tsetTimeout(() => {\n\t\t\tthis.adjustInputWidth();\n\t\t\tthis.reassignTagsInputPlaceholder(\n\t\t\t\tthis.value.length ? '' : this.placeholder,\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate buildDropdown() {\n\t\tthis.dropdown = htmlToElement(this.dropdownTag || '
');\n\t\tthis.dropdown.setAttribute('data-hs-select-dropdown', '');\n\n\t\tthis.dropdown.classList.add('absolute', 'top-full');\n\t\tif (!this.isOpened) this.dropdown.classList.add('hidden');\n\n\t\tif (this.dropdownClasses)\n\t\t\tclassToClassList(this.dropdownClasses, this.dropdown);\n\t\tif (this.wrapper) this.wrapper.append(this.dropdown);\n\t\tif (this.dropdown && this.hasSearch) this.buildSearch();\n\t\tif (this.selectOptions)\n\t\t\tthis.selectOptions.forEach((props: ISingleOption, i) =>\n\t\t\t\tthis.buildOption(props.title, props.val, props.options, `${i}`),\n\t\t\t);\n\t}\n\n\tprivate buildSearch() {\n\t\tlet input;\n\t\tthis.searchWrapper = htmlToElement(\n\t\t\tthis.searchWrapperTemplate || '
',\n\t\t);\n\t\tif (this.searchWrapperClasses)\n\t\t\tclassToClassList(this.searchWrapperClasses, this.searchWrapper);\n\t\tinput = this.searchWrapper.querySelector('[data-input]');\n\n\t\tthis.search = htmlToElement('') as HTMLInputElement;\n\t\tthis.search.placeholder = this.searchPlaceholder;\n\t\tif (this.searchClasses) classToClassList(this.searchClasses, this.search);\n\n\t\tthis.search.addEventListener(\n\t\t\t'input',\n\t\t\tdebounce((evt: InputEvent) =>\n\t\t\t\tthis.searchOptions((evt.target as HTMLInputElement).value),\n\t\t\t),\n\t\t);\n\n\t\tif (input) input.append(this.search);\n\t\telse this.searchWrapper.append(this.search);\n\n\t\tthis.dropdown.append(this.searchWrapper);\n\t}\n\n\tprivate buildOption(\n\t\ttitle: string,\n\t\tval: string,\n\t\toptions?: ISingleOptionOptions,\n\t\tindex: string = '1',\n\t) {\n\t\tlet template: HTMLElement | null = null;\n\t\tlet titleWrapper: HTMLElement | null = null;\n\t\tlet iconWrapper: HTMLElement | null = null;\n\t\tlet descriptionWrapper: HTMLElement | null = null;\n\n\t\tconst option = htmlToElement(this.optionTag || '
');\n\t\toption.setAttribute('data-value', val);\n\t\toption.setAttribute('data-title-value', title);\n\t\toption.setAttribute('tabIndex', index);\n\t\toption.classList.add('cursor-pointer');\n\t\tif (this.optionTemplate) {\n\t\t\ttemplate = htmlToElement(this.optionTemplate);\n\n\t\t\toption.append(template);\n\t\t}\n\t\tif (template) {\n\t\t\ttitleWrapper = template.querySelector('[data-title]');\n\t\t\ttitleWrapper.textContent = title || '';\n\t\t} else {\n\t\t\toption.textContent = title || '';\n\t\t}\n\t\tif (options) {\n\t\t\tif (options.icon) {\n\t\t\t\tconst img = htmlToElement(options.icon);\n\t\t\t\timg.classList.add('mw-full');\n\n\t\t\t\tif (template) {\n\t\t\t\t\ticonWrapper = template.querySelector('[data-icon]');\n\t\t\t\t\ticonWrapper.append(img);\n\t\t\t\t} else {\n\t\t\t\t\tconst icon = htmlToElement('
');\n\t\t\t\t\tif (this.iconClasses) classToClassList(this.iconClasses, icon);\n\n\t\t\t\t\ticon.append(img);\n\t\t\t\t\toption.append(icon);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.description) {\n\t\t\t\tif (template) {\n\t\t\t\t\tdescriptionWrapper = template.querySelector('[data-description]');\n\t\t\t\t\tdescriptionWrapper.append(options.description);\n\t\t\t\t} else {\n\t\t\t\t\tconst description = htmlToElement('
');\n\t\t\t\t\tdescription.textContent = options.description;\n\t\t\t\t\tif (this.descriptionClasses)\n\t\t\t\t\t\tclassToClassList(this.descriptionClasses, description);\n\n\t\t\t\t\toption.append(description);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\ttemplate &&\n\t\t\ttemplate.querySelector('[data-icon]') &&\n\t\t\t!options &&\n\t\t\t!options?.icon\n\t\t) {\n\t\t\ttemplate.querySelector('[data-icon]').classList.add('hidden');\n\t\t}\n\t\tif (\n\t\t\tthis.value &&\n\t\t\t(this.isMultiple ? this.value.includes(val) : this.value === val)\n\t\t)\n\t\t\toption.classList.add('selected');\n\n\t\toption.addEventListener('click', () => this.onSelectOption(val));\n\n\t\tif (this.optionClasses) classToClassList(this.optionClasses, option);\n\t\tif (this.dropdown) this.dropdown.append(option);\n\t}\n\n\tprivate destroyOption(val: string) {\n\t\tconst option = this.dropdown.querySelector(`[data-value=\"${val}\"]`);\n\n\t\tif (!option) return false;\n\n\t\toption.remove();\n\t}\n\n\tprivate buildOriginalOption(\n\t\ttitle: string,\n\t\tval: string,\n\t\toptions?: ISingleOptionOptions,\n\t) {\n\t\tconst option = htmlToElement('');\n\t\toption.setAttribute('value', val);\n\t\toption.setAttribute('data-hs-select-option', JSON.stringify(options));\n\t\toption.innerText = title;\n\n\t\tthis.el.append(option);\n\t}\n\n\tprivate destroyOriginalOption(val: string) {\n\t\tconst option = this.el.querySelector(`[value=\"${val}\"]`);\n\n\t\tif (!option) return false;\n\n\t\toption.remove();\n\t}\n\n\tprivate buildTagsInputHelper() {\n\t\tthis.tagsInputHelper = document.createElement('span');\n\t\tthis.tagsInputHelper.style.fontSize = window.getComputedStyle(\n\t\t\tthis.tagsInput,\n\t\t).fontSize;\n\t\tthis.tagsInputHelper.style.fontFamily = window.getComputedStyle(\n\t\t\tthis.tagsInput,\n\t\t).fontFamily;\n\t\tthis.tagsInputHelper.style.fontWeight = window.getComputedStyle(\n\t\t\tthis.tagsInput,\n\t\t).fontWeight;\n\t\tthis.tagsInputHelper.style.letterSpacing = window.getComputedStyle(\n\t\t\tthis.tagsInput,\n\t\t).letterSpacing;\n\t\tthis.tagsInputHelper.style.visibility = 'hidden';\n\t\tthis.tagsInputHelper.style.whiteSpace = 'pre';\n\t\tthis.tagsInputHelper.style.position = 'absolute';\n\n\t\tthis.wrapper.appendChild(this.tagsInputHelper);\n\t}\n\n\tprivate calculateInputWidth() {\n\t\tthis.tagsInputHelper.textContent =\n\t\t\t(this.tagsInput as HTMLInputElement).value ||\n\t\t\t(this.tagsInput as HTMLInputElement).placeholder;\n\n\t\tconst inputPadding =\n\t\t\tparseInt(window.getComputedStyle(this.tagsInput).paddingLeft) +\n\t\t\tparseInt(window.getComputedStyle(this.tagsInput).paddingRight);\n\t\tconst inputBorder =\n\t\t\tparseInt(window.getComputedStyle(this.tagsInput).borderLeftWidth) +\n\t\t\tparseInt(window.getComputedStyle(this.tagsInput).borderRightWidth);\n\t\tconst newWidth =\n\t\t\tthis.tagsInputHelper.offsetWidth + inputPadding + inputBorder;\n\t\tconst maxWidth =\n\t\t\tthis.wrapper.offsetWidth -\n\t\t\t(parseInt(window.getComputedStyle(this.wrapper).paddingLeft) +\n\t\t\t\tparseInt(window.getComputedStyle(this.wrapper).paddingRight));\n\n\t\t(this.tagsInput as HTMLInputElement).style.width = `${\n\t\t\tMath.min(newWidth, maxWidth) + 2\n\t\t}px`;\n\t}\n\n\tprivate adjustInputWidth() {\n\t\tthis.buildTagsInputHelper();\n\t\tthis.calculateInputWidth();\n\t}\n\n\tprivate onSelectOption(val: string) {\n\t\tthis.clearSelections();\n\n\t\tif (this.isMultiple) {\n\t\t\tthis.value = this.value.includes(val)\n\t\t\t\t? Array.from(this.value).filter((el) => el !== val)\n\t\t\t\t: [...Array.from(this.value), val];\n\n\t\t\tthis.selectMultipleItems();\n\t\t\tthis.setNewValue();\n\t\t} else {\n\t\t\tthis.value = val;\n\n\t\t\tthis.selectSingleItem();\n\t\t\tthis.setNewValue();\n\t\t}\n\n\t\tthis.fireEvent('change', this.value);\n\t\tdispatch('change.hs.select', this.el, this.value);\n\n\t\tif (this.mode === 'tags') {\n\t\t\tconst intersection = this.selectedItems.filter(\n\t\t\t\t(x) => !(this.value as string[]).includes(x),\n\t\t\t);\n\t\t\tif (intersection.length) {\n\t\t\t\tintersection.forEach((el) => {\n\t\t\t\t\tthis.selectedItems = this.selectedItems.filter((elI) => elI !== el);\n\t\t\t\t\tthis.wrapper.querySelector(`[data-tag-value=\"${el}\"]`).remove();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.resetTagsInputField();\n\t\t}\n\n\t\tif (!this.isMultiple) {\n\t\t\tif (this.toggle.querySelector('[data-icon]')) this.setToggleIcon();\n\t\t\tif (this.toggle.querySelector('[data-title]')) this.setToggleTitle();\n\t\t\tthis.close();\n\t\t}\n\n\t\tif (!this.value.length && this.mode === 'tags')\n\t\t\tthis.reassignTagsInputPlaceholder(this.placeholder);\n\n\t\tif (this.isOpened && this.mode === 'tags' && this.tagsInput)\n\t\t\tthis.tagsInput.focus();\n\n\t\tthis.triggerChangeEventForNativeSelect();\n\t}\n\n\tprivate triggerChangeEventForNativeSelect() {\n\t\t(this.el as HTMLSelectElement).value = `${this.value}`;\n\t\tconst selectChangeEvent = new Event('change', { bubbles: true });\n\t\t(this.el as HTMLSelectElement).dispatchEvent(selectChangeEvent);\n\t}\n\n\tprivate addSelectOption(\n\t\ttitle: string,\n\t\tval: string,\n\t\toptions?: ISingleOptionOptions,\n\t) {\n\t\tthis.selectOptions = [\n\t\t\t...this.selectOptions,\n\t\t\t{\n\t\t\t\ttitle,\n\t\t\t\tval,\n\t\t\t\toptions,\n\t\t\t},\n\t\t];\n\t}\n\n\tprivate removeSelectOption(val: string) {\n\t\tconst hasOption = !!this.selectOptions.some(\n\t\t\t(el: ISingleOption) => el.val === val,\n\t\t);\n\n\t\tif (!hasOption) return false;\n\n\t\tthis.selectOptions = this.selectOptions.filter(\n\t\t\t(el: ISingleOption) => el.val !== val,\n\t\t);\n\t}\n\n\tprivate resetTagsInputField() {\n\t\t(this.tagsInput as HTMLInputElement).value = '';\n\n\t\tthis.reassignTagsInputPlaceholder('');\n\t\tthis.searchOptions('');\n\t}\n\n\tprivate clearSelections() {\n\t\tArray.from(this.dropdown.children).forEach((el) => {\n\t\t\tif (el.classList.contains('selected')) el.classList.remove('selected');\n\t\t});\n\t\tArray.from(this.el.children).forEach((el) => {\n\t\t\tif ((el as HTMLOptionElement).selected)\n\t\t\t\t(el as HTMLOptionElement).selected = false;\n\t\t});\n\t}\n\n\tprivate setNewValue() {\n\t\tif (this.mode === 'tags') {\n\t\t\tthis.setTagsItems();\n\t\t} else {\n\t\t\tif (this.value.length)\n\t\t\t\tthis.toggleTextWrapper.innerHTML = this.stringFromValue();\n\t\t\telse this.toggleTextWrapper.innerHTML = this.placeholder;\n\t\t}\n\t}\n\n\tprivate stringFromValue() {\n\t\tconst value: string[] = [];\n\n\t\tthis.selectOptions.forEach((el: ISingleOption) => {\n\t\t\tif (this.isMultiple) {\n\t\t\t\tif (this.value.includes(el.val)) value.push(el.title);\n\t\t\t} else {\n\t\t\t\tif (this.value === el.val) value.push(el.title);\n\t\t\t}\n\t\t});\n\n\t\treturn this.toggleCountText &&\n\t\t\tthis.toggleCountText !== '' &&\n\t\t\tvalue.length >= this.toggleCountTextMinItems\n\t\t\t? `${value.length} ${this.toggleCountText}`\n\t\t\t: value.join(', ');\n\t}\n\n\tprivate selectSingleItem() {\n\t\tconst selectedOption = Array.from(this.el.children).find(\n\t\t\t(el) => this.value === (el as HTMLOptionElement).value,\n\t\t);\n\t\t(selectedOption as HTMLOptionElement).selected = true;\n\n\t\tconst selectedItem = Array.from(this.dropdown.children).find(\n\t\t\t(el) =>\n\t\t\t\tthis.value === (el as HTMLOptionElement).getAttribute('data-value'),\n\t\t);\n\t\tselectedItem.classList.add('selected');\n\t}\n\n\tprivate selectMultipleItems() {\n\t\tArray.from(this.dropdown.children)\n\t\t\t.filter((el) => this.value.includes(el.getAttribute('data-value')))\n\t\t\t.forEach((el) => el.classList.add('selected'));\n\n\t\tArray.from(this.el.children)\n\t\t\t.filter((el) => this.value.includes((el as HTMLOptionElement).value))\n\t\t\t.forEach((el) => ((el as HTMLOptionElement).selected = true));\n\t}\n\n\tprivate unselectMultipleItems() {\n\t\tArray.from(this.dropdown.children).forEach((el) =>\n\t\t\tel.classList.remove('selected'),\n\t\t);\n\t\tArray.from(this.el.children).forEach(\n\t\t\t(el) => ((el as HTMLOptionElement).selected = false),\n\t\t);\n\t}\n\n\tprivate searchOptions(val: string) {\n\t\tif (this.searchNoResult) {\n\t\t\tthis.searchNoResult.remove();\n\t\t\tthis.searchNoResult = null;\n\t\t}\n\t\tthis.searchNoResult = htmlToElement('');\n\t\tthis.searchNoResult.innerText = this.searchNoResultText;\n\t\tclassToClassList(this.searchNoResultClasses, this.searchNoResult);\n\n\t\tconst options = this.dropdown.querySelectorAll('[data-value]');\n\t\tlet hasItems = false;\n\n\t\toptions.forEach((el) => {\n\t\t\tconst optionVal = el.getAttribute('data-title-value').toLocaleLowerCase();\n\n\t\t\tif (!optionVal.includes(val.toLocaleLowerCase()))\n\t\t\t\tel.classList.add('hidden');\n\t\t\telse {\n\t\t\t\tel.classList.remove('hidden');\n\t\t\t\thasItems = true;\n\t\t\t}\n\t\t});\n\n\t\tif (!hasItems) this.dropdown.append(this.searchNoResult);\n\t}\n\n\tprivate eraseToggleIcon() {\n\t\tconst icon = this.toggle.querySelector('[data-icon]');\n\n\t\tif (icon) {\n\t\t\ticon.innerHTML = null;\n\t\t\ticon.classList.add('hidden');\n\t\t}\n\t}\n\n\tprivate eraseToggleTitle() {\n\t\tconst title = this.toggle.querySelector('[data-title]');\n\n\t\tif (title) {\n\t\t\ttitle.innerHTML = this.placeholder;\n\t\t} else {\n\t\t\tthis.toggleTextWrapper.innerHTML = this.placeholder;\n\t\t}\n\t}\n\n\t// Public methods\n\tpublic destroy() {\n\t\tconst parent = this.el.parentElement.parentElement;\n\n\t\tthis.el.classList.remove('hidden');\n\t\tthis.el.style.display = '';\n\t\tparent.prepend(this.el);\n\t\tparent.querySelector('.hs-select').remove();\n\t\tthis.wrapper = null;\n\t}\n\n\tpublic open() {\n\t\tif (this.animationInProcess) return false;\n\n\t\tthis.animationInProcess = true;\n\n\t\tthis.dropdown.classList.remove('hidden');\n\n\t\tthis.recalculateDirection();\n\n\t\tsetTimeout(() => {\n\t\t\tthis.wrapper.classList.add('active');\n\t\t\tthis.dropdown.classList.add('opened');\n\t\t\tif (this.hasSearch && !this.preventSearchFocus) this.search.focus();\n\n\t\t\tthis.animationInProcess = false;\n\t\t});\n\n\t\tthis.isOpened = true;\n\t}\n\n\tpublic close() {\n\t\tif (this.animationInProcess) return false;\n\n\t\tthis.animationInProcess = true;\n\n\t\tthis.wrapper.classList.remove('active');\n\t\tthis.dropdown.classList.remove('opened', 'bottom-full', 'top-full');\n\t\tif (this.dropdownDirectionClasses?.bottom)\n\t\t\tthis.dropdown.classList.remove(this.dropdownDirectionClasses.bottom);\n\t\tif (this.dropdownDirectionClasses?.top)\n\t\t\tthis.dropdown.classList.remove(this.dropdownDirectionClasses.top);\n\t\tthis.dropdown.style.marginTop = '';\n\t\tthis.dropdown.style.marginBottom = '';\n\n\t\tafterTransition(this.dropdown, () => {\n\t\t\tthis.dropdown.classList.add('hidden');\n\t\t\tif (this.hasSearch) {\n\t\t\t\tthis.search.value = '';\n\t\t\t\tthis.search.dispatchEvent(new Event('input', { bubbles: true }));\n\t\t\t\tthis.search.blur();\n\t\t\t}\n\n\t\t\tthis.animationInProcess = false;\n\t\t});\n\n\t\tthis.dropdown\n\t\t\t.querySelector('.hs-select-option-highlighted')\n\t\t\t?.classList.remove('hs-select-option-highlighted');\n\t\tthis.isOpened = false;\n\t}\n\n\tpublic addOption(items: ISingleOption | ISingleOption[]) {\n\t\tlet i = `${this.selectOptions.length}`;\n\t\tconst addOption = (option: ISingleOption) => {\n\t\t\tconst { title, val, options } = option;\n\t\t\tconst hasOption = !!this.selectOptions.some(\n\t\t\t\t(el: ISingleOption) => el.val === val,\n\t\t\t);\n\n\t\t\tif (!hasOption) {\n\t\t\t\tthis.addSelectOption(title, val, options);\n\t\t\t\tthis.buildOption(title, val, options, i);\n\t\t\t\tthis.buildOriginalOption(title, val, options);\n\t\t\t}\n\t\t};\n\n\t\tif (Array.isArray(items)) {\n\t\t\titems.forEach((option) => {\n\t\t\t\taddOption(option);\n\t\t\t});\n\t\t} else {\n\t\t\taddOption(items);\n\t\t}\n\t}\n\n\tpublic removeOption(values: string | string[]) {\n\t\tconst removeOption = (val: string) => {\n\t\t\tconst hasOption = !!this.selectOptions.some(\n\t\t\t\t(el: ISingleOption) => el.val === val,\n\t\t\t);\n\n\t\t\tif (hasOption) {\n\t\t\t\tthis.removeSelectOption(val);\n\t\t\t\tthis.destroyOption(val);\n\t\t\t\tthis.destroyOriginalOption(val);\n\n\t\t\t\tif (this.value === val) {\n\t\t\t\t\tthis.value = null;\n\n\t\t\t\t\tthis.eraseToggleTitle();\n\t\t\t\t\tthis.eraseToggleIcon();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tif (Array.isArray(values)) {\n\t\t\tvalues.forEach((val) => {\n\t\t\t\tremoveOption(val);\n\t\t\t});\n\t\t} else {\n\t\t\tremoveOption(values);\n\t\t}\n\t}\n\n\tpublic recalculateDirection() {\n\t\tif (\n\t\t\tisEnoughSpace(\n\t\t\t\tthis.dropdown,\n\t\t\t\tthis.toggle || this.tagsInput,\n\t\t\t\t'bottom',\n\t\t\t\tthis.dropdownSpace,\n\t\t\t\tthis.viewport,\n\t\t\t)\n\t\t) {\n\t\t\tthis.dropdown.classList.remove('bottom-full');\n\t\t\tif (this.dropdownDirectionClasses?.bottom)\n\t\t\t\tthis.dropdown.classList.remove(this.dropdownDirectionClasses.bottom);\n\t\t\tthis.dropdown.style.marginBottom = '';\n\t\t\tthis.dropdown.classList.add('top-full');\n\t\t\tif (this.dropdownDirectionClasses?.top)\n\t\t\t\tthis.dropdown.classList.add(this.dropdownDirectionClasses.top);\n\t\t\tthis.dropdown.style.marginTop = `${this.dropdownSpace}px`;\n\t\t} else {\n\t\t\tthis.dropdown.classList.remove('top-full');\n\t\t\tif (this.dropdownDirectionClasses?.top)\n\t\t\t\tthis.dropdown.classList.remove(this.dropdownDirectionClasses.top);\n\t\t\tthis.dropdown.style.marginTop = '';\n\t\t\tthis.dropdown.classList.add('bottom-full');\n\t\t\tif (this.dropdownDirectionClasses?.bottom)\n\t\t\t\tthis.dropdown.classList.add(this.dropdownDirectionClasses.bottom);\n\t\t\tthis.dropdown.style.marginBottom = `${this.dropdownSpace}px`;\n\t\t}\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsSelectCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsSelectCollection) window.$hsSelectCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-select]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsSelectCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tconst data = el.getAttribute('data-hs-select');\n\t\t\t\t\tconst options: ISelectOptions = data ? JSON.parse(data) : {};\n\n\t\t\t\t\tnew HSSelect(el, options);\n\t\t\t\t}\n\t\t\t});\n\n\t\tif (window.$hsSelectCollection) {\n\t\t\twindow.addEventListener('click', (evt) => {\n\t\t\t\tconst evtTarget = evt.target;\n\n\t\t\t\tHSSelect.closeCurrentlyOpened(evtTarget as HTMLElement);\n\t\t\t});\n\n\t\t\tdocument.addEventListener('keydown', (evt) =>\n\t\t\t\tHSSelect.accessibility(evt),\n\t\t\t);\n\t\t}\n\t}\n\n\tstatic close(target: HTMLElement | string) {\n\t\tconst elInCollection = window.$hsSelectCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (elInCollection && elInCollection.element.isOpened) {\n\t\t\telInCollection.element.close();\n\t\t}\n\t}\n\n\tstatic closeCurrentlyOpened(evtTarget: HTMLElement | null = null) {\n\t\tif (!evtTarget.closest('.hs-select.active')) {\n\t\t\tconst currentlyOpened =\n\t\t\t\twindow.$hsSelectCollection.filter((el) => el.element.isOpened) || null;\n\n\t\t\tif (currentlyOpened) {\n\t\t\t\tcurrentlyOpened.forEach((el) => {\n\t\t\t\t\tel.element.close();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// Accessibility methods\n\tstatic accessibility(evt: KeyboardEvent) {\n\t\tconst target = window.$hsSelectCollection.find((el) => el.element.isOpened);\n\n\t\tif (\n\t\t\ttarget &&\n\t\t\tSELECT_ACCESSIBILITY_KEY_SET.includes(evt.code) &&\n\t\t\t!evt.metaKey\n\t\t) {\n\t\t\tswitch (evt.code) {\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onEscape();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onArrow();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onArrow(false);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Tab':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onTab(evt.shiftKey);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Home':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onStartEnd();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'End':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onStartEnd(false);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Enter':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tthis.onEnter(evt);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic onEscape() {\n\t\tconst target = window.$hsSelectCollection.find((el) => el.element.isOpened);\n\n\t\tif (target) target.element.close();\n\t}\n\n\tstatic onArrow(isArrowUp = true) {\n\t\tconst target = window.$hsSelectCollection.find((el) => el.element.isOpened);\n\n\t\tif (target) {\n\t\t\tconst dropdown = target.element.dropdown;\n\n\t\t\tif (!dropdown) return false;\n\n\t\t\tconst preparedOptions = isArrowUp\n\t\t\t\t? Array.from(\n\t\t\t\t\t\tdropdown.querySelectorAll(':scope > *:not(.hidden)'),\n\t\t\t\t\t).reverse()\n\t\t\t\t: Array.from(dropdown.querySelectorAll(':scope > *:not(.hidden)'));\n\t\t\tconst options = preparedOptions.filter(\n\t\t\t\t(el: any) => !el.classList.contains('disabled'),\n\t\t\t);\n\t\t\tconst current = dropdown.querySelector('.hs-select-option-highlighted');\n\t\t\tif (!current) options[0].classList.add('hs-select-option-highlighted');\n\t\t\tlet currentInd = options.findIndex((el: any) => el === current);\n\n\t\t\tif (currentInd + 1 < options.length) {\n\t\t\t\tcurrentInd++;\n\t\t\t}\n\n\t\t\t(options[currentInd] as HTMLButtonElement).focus();\n\t\t\tif (current) current.classList.remove('hs-select-option-highlighted');\n\t\t\toptions[currentInd].classList.add('hs-select-option-highlighted');\n\t\t}\n\t}\n\n\tstatic onTab(isArrowUp = true) {\n\t\tconst target = window.$hsSelectCollection.find((el) => el.element.isOpened);\n\n\t\tif (target) {\n\t\t\tconst dropdown = target.element.dropdown;\n\n\t\t\tif (!dropdown) return false;\n\n\t\t\tconst preparedOptions = isArrowUp\n\t\t\t\t? Array.from(\n\t\t\t\t\t\tdropdown.querySelectorAll(':scope > *:not(.hidden)'),\n\t\t\t\t\t).reverse()\n\t\t\t\t: Array.from(dropdown.querySelectorAll(':scope > *:not(.hidden)'));\n\t\t\tconst options = preparedOptions.filter(\n\t\t\t\t(el: any) => !el.classList.contains('disabled'),\n\t\t\t);\n\t\t\tconst current = dropdown.querySelector('.hs-select-option-highlighted');\n\t\t\tif (!current) options[0].classList.add('hs-select-option-highlighted');\n\t\t\tlet currentInd = options.findIndex((el: any) => el === current);\n\n\t\t\tif (currentInd + 1 < options.length) {\n\t\t\t\tcurrentInd++;\n\t\t\t} else {\n\t\t\t\tif (current) current.classList.remove('hs-select-option-highlighted');\n\t\t\t\ttarget.element.close();\n\t\t\t\ttarget.element.toggle.focus();\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t(options[currentInd] as HTMLButtonElement).focus();\n\t\t\tif (current) current.classList.remove('hs-select-option-highlighted');\n\t\t\toptions[currentInd].classList.add('hs-select-option-highlighted');\n\t\t}\n\t}\n\n\tstatic onStartEnd(isStart = true) {\n\t\tconst target = window.$hsSelectCollection.find((el) => el.element.isOpened);\n\n\t\tif (target) {\n\t\t\tconst dropdown = target.element.dropdown;\n\n\t\t\tif (!dropdown) return false;\n\n\t\t\tconst preparedOptions = isStart\n\t\t\t\t? Array.from(dropdown.querySelectorAll(':scope > *:not(.hidden)'))\n\t\t\t\t: Array.from(\n\t\t\t\t\t\tdropdown.querySelectorAll(':scope > *:not(.hidden)'),\n\t\t\t\t\t).reverse();\n\t\t\tconst options = preparedOptions.filter(\n\t\t\t\t(el: any) => !el.classList.contains('disabled'),\n\t\t\t);\n\t\t\tconst current = dropdown.querySelector('.hs-select-option-highlighted');\n\n\t\t\tif (options.length) {\n\t\t\t\t(options[0] as HTMLButtonElement).focus();\n\t\t\t\tif (current) current.classList.remove('hs-select-option-highlighted');\n\t\t\t\toptions[0].classList.add('hs-select-option-highlighted');\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic onEnter(evt: Event) {\n\t\tconst select = (evt.target as HTMLElement).previousSibling;\n\n\t\tif (window.$hsSelectCollection.find((el) => el.element.el === select)) {\n\t\t\tconst opened = window.$hsSelectCollection.find(\n\t\t\t\t(el) => el.element.isOpened,\n\t\t\t);\n\t\t\tconst target = window.$hsSelectCollection.find(\n\t\t\t\t(el) => el.element.el === select,\n\t\t\t);\n\n\t\t\topened.element.close();\n\t\t\ttarget.element.open();\n\t\t} else {\n\t\t\tconst target = window.$hsSelectCollection.find(\n\t\t\t\t(el) => el.element.isOpened,\n\t\t\t);\n\n\t\t\tif (target)\n\t\t\t\ttarget.element.onSelectOption(\n\t\t\t\t\t(evt.target as HTMLElement).dataset.value || '',\n\t\t\t\t);\n\t\t}\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSSelect: Function;\n\t\t$hsSelectCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSSelect.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Select collection:', window.$hsSelectCollection);\n});\n\ndocument.addEventListener('scroll', () => {\n\tif (!window.$hsSelectCollection) return false;\n\n\tconst target = window.$hsSelectCollection.find((el) => el.element.isOpened);\n\n\tif (target) target.element.recalculateDirection();\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSSelect = HSSelect;\n}\n\nexport default HSSelect;\n","/*\n * HSStepper\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { dispatch } from '../../utils';\n\nimport { IStepperOptions, IStepper, IStepperItem } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSStepper extends HSBasePlugin<{}> implements IStepper {\n\tprivate currentIndex: number | null;\n\tprivate readonly mode: string | null;\n\tprivate isCompleted: boolean | null;\n\n\tprivate totalSteps: number | null;\n\n\tprivate navItems: IStepperItem[] | null;\n\tprivate contentItems: IStepperItem[] | null;\n\tprivate backBtn: HTMLElement | null;\n\tprivate nextBtn: HTMLElement | null;\n\tprivate skipBtn: HTMLElement | null;\n\tprivate completeStepBtn: HTMLElement | null;\n\tprivate completeStepBtnDefaultText: string | null;\n\tprivate finishBtn: HTMLElement | null;\n\tprivate resetBtn: HTMLElement | null;\n\n\tconstructor(el: HTMLElement, options?: IStepperOptions) {\n\t\tsuper(el, options);\n\n\t\tconst data = el.getAttribute('data-hs-stepper');\n\t\tconst dataOptions: IStepperOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.currentIndex = concatOptions?.currentIndex || 1;\n\t\tthis.mode = concatOptions?.mode || 'linear';\n\t\tthis.isCompleted =\n\t\t\ttypeof concatOptions?.isCompleted !== 'undefined'\n\t\t\t\t? concatOptions?.isCompleted\n\t\t\t\t: false;\n\n\t\tthis.totalSteps = 1;\n\n\t\tthis.navItems = [];\n\t\tthis.contentItems = [];\n\n\t\tthis.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsStepperCollection, this);\n\n\t\tthis.buildNav();\n\t\tthis.buildContent();\n\t\tthis.buildButtons();\n\t\tthis.setTotalSteps();\n\t}\n\n\tprivate getUncompletedSteps(inIncludedSkipped: boolean = false) {\n\t\treturn this.navItems.filter(({ isCompleted, isSkip }) =>\n\t\t\tinIncludedSkipped ? !isCompleted || isSkip : !isCompleted && !isSkip,\n\t\t);\n\t}\n\n\tprivate setTotalSteps() {\n\t\tthis.navItems.forEach((item) => {\n\t\t\tconst { index } = item;\n\n\t\t\tif (index > this.totalSteps) this.totalSteps = index;\n\t\t});\n\t}\n\n\t// Nav\n\tprivate buildNav() {\n\t\tthis.el\n\t\t\t.querySelectorAll('[data-hs-stepper-nav-item]')\n\t\t\t.forEach((el) => this.addNavItem(el as HTMLElement));\n\n\t\tthis.navItems.forEach((item) => this.buildNavItem(item));\n\t}\n\n\tprivate buildNavItem(item: IStepperItem) {\n\t\tconst { index, isDisabled, el } = item;\n\n\t\tif (index === this.currentIndex) this.setCurrentNavItem();\n\n\t\tif (this.mode !== 'linear' || isDisabled) {\n\t\t\tel.addEventListener('click', () => this.handleNavItemClick(item));\n\t\t}\n\t}\n\n\tprivate addNavItem(el: HTMLElement) {\n\t\tconst {\n\t\t\tindex,\n\t\t\tisFinal = false,\n\t\t\tisCompleted = false,\n\t\t\tisSkip = false,\n\t\t\tisOptional = false,\n\t\t\tisDisabled = false,\n\t\t\tisProcessed = false,\n\t\t\thasError = false,\n\t\t} = JSON.parse(el.getAttribute('data-hs-stepper-nav-item'));\n\n\t\tif (isCompleted) el.classList.add('success');\n\t\tif (isSkip) el.classList.add('skipped');\n\t\tif (isDisabled) {\n\t\t\tif (el.tagName === 'BUTTON' || el.tagName === 'INPUT')\n\t\t\t\tel.setAttribute('disabled', 'disabled');\n\n\t\t\tel.classList.add('disabled');\n\t\t}\n\t\tif (hasError) el.classList.add('error');\n\n\t\tthis.navItems.push({\n\t\t\tindex,\n\t\t\tisFinal,\n\t\t\tisCompleted,\n\t\t\tisSkip,\n\t\t\tisOptional,\n\t\t\tisDisabled,\n\t\t\tisProcessed,\n\t\t\thasError,\n\t\t\tel: el as HTMLElement,\n\t\t});\n\t}\n\n\tprivate setCurrentNavItem() {\n\t\tthis.navItems.forEach((item) => {\n\t\t\tconst { index, el } = item;\n\n\t\t\tif (index === this.currentIndex) this.setCurrentNavItemActions(el);\n\t\t\telse this.unsetCurrentNavItemActions(el);\n\t\t});\n\t}\n\n\tprivate setCurrentNavItemActions(el: HTMLElement) {\n\t\tel.classList.add('active');\n\n\t\tthis.fireEvent('active', this.currentIndex);\n\t\tdispatch('active.hs.stepper', this.el, this.currentIndex);\n\t}\n\n\tprivate getNavItem(n = this.currentIndex) {\n\t\treturn this.navItems.find(({ index }) => index === n);\n\t}\n\n\tprivate setProcessedNavItemActions(item: IStepperItem) {\n\t\titem.isProcessed = true;\n\n\t\titem.el.classList.add('processed');\n\t}\n\n\tprivate setErrorNavItemActions(item: IStepperItem) {\n\t\titem.hasError = true;\n\n\t\titem.el.classList.add('error');\n\t}\n\n\tprivate unsetCurrentNavItemActions(el: HTMLElement) {\n\t\tel.classList.remove('active');\n\t}\n\n\tprivate handleNavItemClick(item: IStepperItem) {\n\t\tconst { index } = item;\n\n\t\tthis.currentIndex = index;\n\n\t\tthis.setCurrentNavItem();\n\t\tthis.setCurrentContentItem();\n\n\t\tthis.checkForTheFirstStep();\n\t}\n\n\t// Content\n\tprivate buildContent() {\n\t\tthis.el\n\t\t\t.querySelectorAll('[data-hs-stepper-content-item]')\n\t\t\t.forEach((el) => this.addContentItem(el as HTMLElement));\n\n\t\tthis.navItems.forEach((item) => this.buildContentItem(item));\n\t}\n\n\tprivate buildContentItem(item: IStepperItem) {\n\t\tconst { index } = item;\n\n\t\tif (index === this.currentIndex) this.setCurrentContentItem();\n\t}\n\n\tprivate addContentItem(el: HTMLElement) {\n\t\tconst {\n\t\t\tindex,\n\t\t\tisFinal = false,\n\t\t\tisCompleted = false,\n\t\t\tisSkip = false,\n\t\t} = JSON.parse(el.getAttribute('data-hs-stepper-content-item'));\n\n\t\tif (isCompleted) el.classList.add('success');\n\t\tif (isSkip) el.classList.add('skipped');\n\n\t\tthis.contentItems.push({\n\t\t\tindex,\n\t\t\tisFinal,\n\t\t\tisCompleted,\n\t\t\tisSkip,\n\t\t\tel: el as HTMLElement,\n\t\t});\n\t}\n\n\tprivate setCurrentContentItem() {\n\t\tif (this.isCompleted) {\n\t\t\tconst finalContentItem = this.contentItems.find(({ isFinal }) => isFinal);\n\t\t\tconst otherContentItems = this.contentItems.filter(\n\t\t\t\t({ isFinal }) => !isFinal,\n\t\t\t);\n\t\t\tfinalContentItem.el.style.display = '';\n\t\t\totherContentItems.forEach(({ el }) => (el.style.display = 'none'));\n\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.contentItems.forEach((item) => {\n\t\t\tconst { index, el } = item;\n\n\t\t\tif (index === this.currentIndex) this.setCurrentContentItemActions(el);\n\t\t\telse this.unsetCurrentContentItemActions(el);\n\t\t});\n\t}\n\n\tprivate hideAllContentItems() {\n\t\tthis.contentItems.forEach(({ el }) => (el.style.display = 'none'));\n\t}\n\n\tprivate setCurrentContentItemActions(el: HTMLElement) {\n\t\tel.style.display = '';\n\t}\n\n\tprivate unsetCurrentContentItemActions(el: HTMLElement) {\n\t\tel.style.display = 'none';\n\t}\n\n\tprivate disableAll() {\n\t\tconst currentNavItem = this.getNavItem(this.currentIndex);\n\t\tcurrentNavItem.hasError = false;\n\t\tcurrentNavItem.isCompleted = false;\n\t\tcurrentNavItem.isDisabled = false;\n\t\tcurrentNavItem.el.classList.remove('error', 'success');\n\n\t\tthis.disableButtons();\n\t}\n\n\tprivate disableNavItemActions(item: IStepperItem) {\n\t\titem.isDisabled = true;\n\t\titem.el.classList.add('disabled');\n\t}\n\n\tprivate enableNavItemActions(item: IStepperItem) {\n\t\titem.isDisabled = false;\n\t\titem.el.classList.remove('disabled');\n\t}\n\n\t// Buttons\n\tprivate buildButtons() {\n\t\tthis.backBtn = this.el.querySelector('[data-hs-stepper-back-btn]');\n\t\tthis.nextBtn = this.el.querySelector('[data-hs-stepper-next-btn]');\n\t\tthis.skipBtn = this.el.querySelector('[data-hs-stepper-skip-btn]');\n\t\tthis.completeStepBtn = this.el.querySelector(\n\t\t\t'[data-hs-stepper-complete-step-btn]',\n\t\t);\n\t\tthis.finishBtn = this.el.querySelector('[data-hs-stepper-finish-btn]');\n\t\tthis.resetBtn = this.el.querySelector('[data-hs-stepper-reset-btn]');\n\n\t\tthis.buildBackButton();\n\t\tthis.buildNextButton();\n\t\tthis.buildSkipButton();\n\t\tthis.buildCompleteStepButton();\n\t\tthis.buildFinishButton();\n\t\tthis.buildResetButton();\n\t}\n\n\t// back\n\tprivate buildBackButton() {\n\t\tif (!this.backBtn) return;\n\n\t\tthis.checkForTheFirstStep();\n\n\t\tthis.backBtn.addEventListener('click', () => {\n\t\t\tthis.handleBackButtonClick();\n\n\t\t\tif (this.mode === 'linear') {\n\t\t\t\tconst currentNavItem = this.navItems.find(\n\t\t\t\t\t({ index }) => index === this.currentIndex,\n\t\t\t\t);\n\t\t\t\tconst currentContentItem = this.contentItems.find(\n\t\t\t\t\t({ index }) => index === this.currentIndex,\n\t\t\t\t);\n\n\t\t\t\tif (!currentNavItem || !currentContentItem) return;\n\n\t\t\t\tif (currentNavItem.isCompleted) {\n\t\t\t\t\tcurrentNavItem.isCompleted = false;\n\t\t\t\t\tcurrentNavItem.isSkip = false;\n\n\t\t\t\t\tcurrentNavItem.el.classList.remove('success', 'skipped');\n\t\t\t\t}\n\n\t\t\t\tif (currentContentItem.isCompleted) {\n\t\t\t\t\tcurrentContentItem.isCompleted = false;\n\t\t\t\t\tcurrentContentItem.isSkip = false;\n\n\t\t\t\t\tcurrentContentItem.el.classList.remove('success', 'skipped');\n\t\t\t\t}\n\n\t\t\t\tif (this.mode === 'linear' && this.currentIndex !== this.totalSteps) {\n\t\t\t\t\tif (this.nextBtn) this.nextBtn.style.display = '';\n\t\t\t\t\tif (this.completeStepBtn) this.completeStepBtn.style.display = '';\n\t\t\t\t}\n\n\t\t\t\tthis.showSkipButton();\n\t\t\t\tthis.showFinishButton();\n\t\t\t\tthis.showCompleteStepButton();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate handleBackButtonClick() {\n\t\tif (this.currentIndex === 1) return;\n\n\t\tif (this.mode === 'linear') {\n\t\t\tthis.removeOptionalClasses();\n\t\t}\n\n\t\tthis.currentIndex--;\n\n\t\tif (this.mode === 'linear') {\n\t\t\tthis.removeOptionalClasses();\n\t\t}\n\n\t\tthis.setCurrentNavItem();\n\t\tthis.setCurrentContentItem();\n\n\t\tthis.checkForTheFirstStep();\n\t\tif (this.completeStepBtn)\n\t\t\tthis.changeTextAndDisableCompleteButtonIfStepCompleted();\n\n\t\tthis.fireEvent('back', this.currentIndex);\n\t\tdispatch('back.hs.stepper', this.el, this.currentIndex);\n\t}\n\n\tprivate checkForTheFirstStep() {\n\t\tif (this.currentIndex === 1) {\n\t\t\tthis.setToDisabled(this.backBtn);\n\t\t} else {\n\t\t\tthis.setToNonDisabled(this.backBtn);\n\t\t}\n\t}\n\n\tprivate setToDisabled(el: HTMLElement) {\n\t\tif (el.tagName === 'BUTTON' || el.tagName === 'INPUT')\n\t\t\tel.setAttribute('disabled', 'disabled');\n\n\t\tel.classList.add('disabled');\n\t}\n\n\tprivate setToNonDisabled(el: HTMLElement) {\n\t\tif (el.tagName === 'BUTTON' || el.tagName === 'INPUT')\n\t\t\tel.removeAttribute('disabled');\n\n\t\tel.classList.remove('disabled');\n\t}\n\n\t// next\n\tprivate buildNextButton() {\n\t\tif (!this.nextBtn) return;\n\n\t\tthis.nextBtn.addEventListener('click', () => {\n\t\t\tthis.fireEvent('beforeNext', this.currentIndex);\n\t\t\tdispatch('beforeNext.hs.stepper', this.el, this.currentIndex);\n\n\t\t\tif (this.getNavItem(this.currentIndex)?.isProcessed) {\n\t\t\t\tthis.disableAll();\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.goToNext();\n\t\t});\n\t}\n\n\tprivate unsetProcessedNavItemActions(item: IStepperItem) {\n\t\titem.isProcessed = false;\n\n\t\titem.el.classList.remove('processed');\n\t}\n\n\tprivate handleNextButtonClick(infinite = true) {\n\t\tif (infinite) {\n\t\t\tif (this.currentIndex === this.totalSteps) this.currentIndex = 1;\n\t\t\telse this.currentIndex++;\n\t\t} else {\n\t\t\tconst nonCompletedSteps = this.getUncompletedSteps();\n\n\t\t\tif (nonCompletedSteps.length === 1) {\n\t\t\t\tconst { index } = nonCompletedSteps[0];\n\n\t\t\t\tthis.currentIndex = index;\n\t\t\t} else {\n\t\t\t\tif (this.currentIndex === this.totalSteps) return;\n\n\t\t\t\tthis.currentIndex++;\n\t\t\t}\n\t\t}\n\n\t\tif (this.mode === 'linear') {\n\t\t\tthis.removeOptionalClasses();\n\t\t}\n\n\t\tthis.setCurrentNavItem();\n\t\tthis.setCurrentContentItem();\n\n\t\tthis.checkForTheFirstStep();\n\t\tif (this.completeStepBtn)\n\t\t\tthis.changeTextAndDisableCompleteButtonIfStepCompleted();\n\n\t\tthis.showSkipButton();\n\t\tthis.showFinishButton();\n\t\tthis.showCompleteStepButton();\n\n\t\tthis.fireEvent('next', this.currentIndex);\n\t\tdispatch('next.hs.stepper', this.el, this.currentIndex);\n\t}\n\n\tprivate removeOptionalClasses() {\n\t\tconst currentNavItem = this.navItems.find(\n\t\t\t({ index }) => index === this.currentIndex,\n\t\t);\n\t\tconst currentContentItem = this.contentItems.find(\n\t\t\t({ index }) => index === this.currentIndex,\n\t\t);\n\n\t\tcurrentNavItem.isSkip = false;\n\t\tcurrentNavItem.hasError = false;\n\t\tcurrentNavItem.isDisabled = false;\n\t\tcurrentContentItem.isSkip = false;\n\n\t\tcurrentNavItem.el.classList.remove('skipped', 'success', 'error');\n\t\tcurrentContentItem.el.classList.remove('skipped', 'success', 'error');\n\t}\n\n\t// skip\n\tprivate buildSkipButton() {\n\t\tif (!this.skipBtn) return;\n\n\t\tthis.showSkipButton();\n\n\t\tthis.skipBtn.addEventListener('click', () => {\n\t\t\tthis.handleSkipButtonClick();\n\n\t\t\tif (this.mode === 'linear' && this.currentIndex === this.totalSteps) {\n\t\t\t\tif (this.nextBtn) this.nextBtn.style.display = 'none';\n\t\t\t\tif (this.completeStepBtn) this.completeStepBtn.style.display = 'none';\n\t\t\t\tif (this.finishBtn) this.finishBtn.style.display = '';\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate setSkipItem(n?: number) {\n\t\tconst targetNavItem = this.navItems.find(\n\t\t\t({ index }) => index === (n || this.currentIndex),\n\t\t);\n\t\tconst targetContentItem = this.contentItems.find(\n\t\t\t({ index }) => index === (n || this.currentIndex),\n\t\t);\n\n\t\tif (!targetNavItem || !targetContentItem) return;\n\n\t\tthis.setSkipItemActions(targetNavItem);\n\t\tthis.setSkipItemActions(targetContentItem);\n\t}\n\n\tprivate setSkipItemActions(item: IStepperItem) {\n\t\titem.isSkip = true;\n\n\t\titem.el.classList.add('skipped');\n\t}\n\n\tprivate showSkipButton() {\n\t\tif (!this.skipBtn) return;\n\n\t\tconst { isOptional } = this.navItems.find(\n\t\t\t({ index }) => index === this.currentIndex,\n\t\t);\n\n\t\tif (isOptional) this.skipBtn.style.display = '';\n\t\telse this.skipBtn.style.display = 'none';\n\t}\n\n\tprivate handleSkipButtonClick() {\n\t\tthis.setSkipItem();\n\t\tthis.handleNextButtonClick();\n\n\t\tthis.fireEvent('skip', this.currentIndex);\n\t\tdispatch('skip.hs.stepper', this.el, this.currentIndex);\n\t}\n\n\t// complete\n\tprivate buildCompleteStepButton() {\n\t\tif (!this.completeStepBtn) return;\n\n\t\tthis.completeStepBtnDefaultText = this.completeStepBtn.innerText;\n\n\t\tthis.completeStepBtn.addEventListener('click', () =>\n\t\t\tthis.handleCompleteStepButtonClick(),\n\t\t);\n\t}\n\n\tprivate changeTextAndDisableCompleteButtonIfStepCompleted() {\n\t\tconst currentNavItem = this.navItems.find(\n\t\t\t({ index }) => index === this.currentIndex,\n\t\t);\n\t\tconst { completedText } = JSON.parse(\n\t\t\tthis.completeStepBtn.getAttribute('data-hs-stepper-complete-step-btn'),\n\t\t);\n\n\t\tif (!currentNavItem) return;\n\n\t\tif (currentNavItem.isCompleted) {\n\t\t\tthis.completeStepBtn.innerText =\n\t\t\t\tcompletedText || this.completeStepBtnDefaultText;\n\t\t\tthis.completeStepBtn.setAttribute('disabled', 'disabled');\n\t\t\tthis.completeStepBtn.classList.add('disabled');\n\t\t} else {\n\t\t\tthis.completeStepBtn.innerText = this.completeStepBtnDefaultText;\n\t\t\tthis.completeStepBtn.removeAttribute('disabled');\n\t\t\tthis.completeStepBtn.classList.remove('disabled');\n\t\t}\n\t}\n\n\tprivate setCompleteItem(n?: number) {\n\t\tconst targetNavItem = this.navItems.find(\n\t\t\t({ index }) => index === (n || this.currentIndex),\n\t\t);\n\t\tconst targetContentItem = this.contentItems.find(\n\t\t\t({ index }) => index === (n || this.currentIndex),\n\t\t);\n\n\t\tif (!targetNavItem || !targetContentItem) return;\n\n\t\tthis.setCompleteItemActions(targetNavItem);\n\t\tthis.setCompleteItemActions(targetContentItem);\n\t}\n\n\tprivate setCompleteItemActions(item: IStepperItem) {\n\t\titem.isCompleted = true;\n\n\t\titem.el.classList.add('success');\n\t}\n\n\tprivate showCompleteStepButton() {\n\t\tif (!this.completeStepBtn) return;\n\n\t\tconst nonCompletedSteps = this.getUncompletedSteps();\n\n\t\tif (nonCompletedSteps.length === 1)\n\t\t\tthis.completeStepBtn.style.display = 'none';\n\t\telse this.completeStepBtn.style.display = '';\n\t}\n\n\tprivate handleCompleteStepButtonClick() {\n\t\tthis.setCompleteItem();\n\n\t\tthis.fireEvent('complete', this.currentIndex);\n\t\tdispatch('complete.hs.stepper', this.el, this.currentIndex);\n\n\t\tthis.handleNextButtonClick(false);\n\t\tthis.showFinishButton();\n\t\tthis.showCompleteStepButton();\n\t\tthis.checkForTheFirstStep();\n\t\tif (this.completeStepBtn)\n\t\t\tthis.changeTextAndDisableCompleteButtonIfStepCompleted();\n\t\tthis.showSkipButton();\n\t}\n\n\t// finish\n\tprivate buildFinishButton() {\n\t\tif (!this.finishBtn) return;\n\n\t\tif (this.isCompleted) {\n\t\t\tthis.setCompleted();\n\t\t}\n\n\t\tthis.finishBtn.addEventListener('click', () =>\n\t\t\tthis.handleFinishButtonClick(),\n\t\t);\n\t}\n\n\tprivate setCompleted() {\n\t\tthis.el.classList.add('completed');\n\t}\n\n\tprivate unsetCompleted() {\n\t\tthis.el.classList.remove('completed');\n\t}\n\n\tprivate showFinishButton() {\n\t\tif (!this.finishBtn) return;\n\n\t\tconst nonCompletedSteps = this.getUncompletedSteps();\n\n\t\tif (nonCompletedSteps.length === 1) this.finishBtn.style.display = '';\n\t\telse this.finishBtn.style.display = 'none';\n\t}\n\n\tprivate handleFinishButtonClick() {\n\t\tconst uncompletedSteps = this.getUncompletedSteps();\n\t\tconst uncompletedOrSkipSteps = this.getUncompletedSteps(true);\n\t\tconst { el } = this.contentItems.find(({ isFinal }) => isFinal);\n\n\t\tif (uncompletedSteps.length)\n\t\t\tuncompletedSteps.forEach(({ index }) => this.setCompleteItem(index));\n\n\t\tthis.currentIndex = this.totalSteps;\n\n\t\tthis.setCurrentNavItem();\n\t\tthis.hideAllContentItems();\n\n\t\tconst currentNavItem = this.navItems.find(\n\t\t\t({ index }) => index === this.currentIndex,\n\t\t);\n\t\tconst currentNavItemEl = currentNavItem ? currentNavItem.el : null;\n\n\t\tcurrentNavItemEl.classList.remove('active');\n\n\t\tel.style.display = 'block';\n\t\tif (this.backBtn) this.backBtn.style.display = 'none';\n\t\tif (this.nextBtn) this.nextBtn.style.display = 'none';\n\t\tif (this.skipBtn) this.skipBtn.style.display = 'none';\n\t\tif (this.completeStepBtn) this.completeStepBtn.style.display = 'none';\n\t\tif (this.finishBtn) this.finishBtn.style.display = 'none';\n\t\tif (this.resetBtn) this.resetBtn.style.display = '';\n\n\t\tif (uncompletedOrSkipSteps.length <= 1) {\n\t\t\tthis.isCompleted = true;\n\t\t\tthis.setCompleted();\n\t\t}\n\n\t\tthis.fireEvent('finish', this.currentIndex);\n\t\tdispatch('finish.hs.stepper', this.el, this.currentIndex);\n\t}\n\n\t// reset\n\tprivate buildResetButton() {\n\t\tif (!this.resetBtn) return;\n\n\t\tthis.resetBtn.addEventListener('click', () =>\n\t\t\tthis.handleResetButtonClick(),\n\t\t);\n\t}\n\n\tprivate handleResetButtonClick() {\n\t\tif (this.backBtn) this.backBtn.style.display = '';\n\t\tif (this.nextBtn) this.nextBtn.style.display = '';\n\t\tif (this.completeStepBtn) {\n\t\t\tthis.completeStepBtn.style.display = '';\n\t\t\tthis.completeStepBtn.innerText = this.completeStepBtnDefaultText;\n\t\t\tthis.completeStepBtn.removeAttribute('disabled');\n\t\t\tthis.completeStepBtn.classList.remove('disabled');\n\t\t}\n\t\tif (this.resetBtn) this.resetBtn.style.display = 'none';\n\n\t\tthis.navItems.forEach((item) => {\n\t\t\tconst { el } = item;\n\t\t\titem.isSkip = false;\n\t\t\titem.isCompleted = false;\n\n\t\t\tthis.unsetCurrentNavItemActions(el);\n\t\t\tel.classList.remove('success', 'skipped');\n\t\t});\n\n\t\tthis.contentItems.forEach((item) => {\n\t\t\tconst { el } = item;\n\t\t\titem.isSkip = false;\n\t\t\titem.isCompleted = false;\n\n\t\t\tthis.unsetCurrentContentItemActions(el);\n\t\t\tel.classList.remove('success', 'skipped');\n\t\t});\n\n\t\tthis.currentIndex = 1;\n\n\t\tthis.setCurrentNavItem();\n\t\tthis.setCurrentContentItem();\n\t\tthis.showFinishButton();\n\t\tthis.showCompleteStepButton();\n\t\tthis.checkForTheFirstStep();\n\n\t\tthis.unsetCompleted();\n\t\tthis.isCompleted = false;\n\n\t\tthis.fireEvent('reset', this.currentIndex);\n\t\tdispatch('reset.hs.stepper', this.el, this.currentIndex);\n\t}\n\n\t// Public methods\n\tpublic setProcessedNavItem(n?: number) {\n\t\tconst targetNavItem = this.getNavItem(n);\n\n\t\tif (!targetNavItem) return;\n\n\t\tthis.setProcessedNavItemActions(targetNavItem);\n\t}\n\n\tpublic unsetProcessedNavItem(n?: number) {\n\t\tconst targetNavItem = this.getNavItem(n);\n\n\t\tif (!targetNavItem) return;\n\n\t\tthis.unsetProcessedNavItemActions(targetNavItem);\n\t}\n\n\tpublic goToNext() {\n\t\tif (this.mode === 'linear') this.setCompleteItem();\n\n\t\tthis.handleNextButtonClick(this.mode !== 'linear');\n\n\t\tif (this.mode === 'linear' && this.currentIndex === this.totalSteps) {\n\t\t\tif (this.nextBtn) this.nextBtn.style.display = 'none';\n\t\t\tif (this.completeStepBtn) this.completeStepBtn.style.display = 'none';\n\t\t}\n\t}\n\n\tpublic disableButtons() {\n\t\tif (this.backBtn) this.setToDisabled(this.backBtn);\n\t\tif (this.nextBtn) this.setToDisabled(this.nextBtn);\n\t}\n\n\tpublic enableButtons() {\n\t\tif (this.backBtn) this.setToNonDisabled(this.backBtn);\n\t\tif (this.nextBtn) this.setToNonDisabled(this.nextBtn);\n\t}\n\n\tpublic setErrorNavItem(n?: number) {\n\t\tconst targetNavItem = this.getNavItem(n);\n\n\t\tif (!targetNavItem) return;\n\n\t\tthis.setErrorNavItemActions(targetNavItem);\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsStepperCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsStepperCollection) window.$hsStepperCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-stepper]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsStepperCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSStepper(el);\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSStepper: Function;\n\t\t$hsStepperCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSStepper.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Stepper collection:', window.$hsStepperCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSStepper = HSStepper;\n}\n\nexport default HSStepper;\n","/*\n * HSStrongPassword\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport {\n\tisEnoughSpace,\n\tdispatch,\n\thtmlToElement,\n\tclassToClassList,\n} from '../../utils';\n\nimport { IStrongPasswordOptions, IStrongPassword } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSStrongPassword\n\textends HSBasePlugin\n\timplements IStrongPassword\n{\n\tprivate readonly target: string | HTMLInputElement | null;\n\tprivate readonly hints: string | HTMLElement | null;\n\tprivate readonly stripClasses: string | null;\n\tprivate readonly minLength: number;\n\tprivate readonly mode: string;\n\tprivate readonly popoverSpace: number;\n\tprivate readonly checksExclude: string[] | null;\n\tprivate readonly specialCharactersSet: string | null;\n\n\tpublic isOpened: boolean = false;\n\tprivate strength: number = 0;\n\tprivate passedRules: Set = new Set();\n\tprivate weakness: HTMLElement | null;\n\tprivate rules: HTMLElement[] | null;\n\tprivate availableChecks: string[] | null;\n\n\tconstructor(el: HTMLElement, options?: IStrongPasswordOptions) {\n\t\tsuper(el, options);\n\n\t\tconst data = el.getAttribute('data-hs-strong-password');\n\t\tconst dataOptions: IStrongPasswordOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.target = concatOptions?.target\n\t\t\t? typeof concatOptions?.target === 'string'\n\t\t\t\t? (document.querySelector(concatOptions.target) as HTMLInputElement)\n\t\t\t\t: concatOptions.target\n\t\t\t: null;\n\t\tthis.hints = concatOptions?.hints\n\t\t\t? typeof concatOptions?.hints === 'string'\n\t\t\t\t? (document.querySelector(concatOptions.hints) as HTMLElement)\n\t\t\t\t: concatOptions.hints\n\t\t\t: null;\n\t\tthis.stripClasses = concatOptions?.stripClasses || null;\n\t\tthis.minLength = concatOptions?.minLength || 6;\n\t\tthis.mode = concatOptions?.mode || 'default';\n\t\tthis.popoverSpace = concatOptions?.popoverSpace || 10;\n\t\tthis.checksExclude = concatOptions?.checksExclude || [];\n\t\tthis.availableChecks = [\n\t\t\t'lowercase',\n\t\t\t'uppercase',\n\t\t\t'numbers',\n\t\t\t'special-characters',\n\t\t\t'min-length',\n\t\t].filter((el) => !this.checksExclude.includes(el));\n\t\tthis.specialCharactersSet =\n\t\t\tconcatOptions?.specialCharactersSet ||\n\t\t\t'!\"#$%&\\'()*+,-./:;<=>?@[\\\\\\\\\\\\]^_`{|}~';\n\n\t\tif (this.target) this.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsStrongPasswordCollection, this);\n\n\t\tif (this.availableChecks.length) this.build();\n\t}\n\n\tprivate build() {\n\t\tthis.buildStrips();\n\t\tif (this.hints) this.buildHints();\n\n\t\tthis.setStrength((this.target as HTMLInputElement).value);\n\n\t\t(this.target as HTMLInputElement).addEventListener(\n\t\t\t'input',\n\t\t\t(evt: InputEvent) => {\n\t\t\t\tthis.setStrength((evt.target as HTMLInputElement).value);\n\t\t\t},\n\t\t);\n\t}\n\n\tprivate buildStrips() {\n\t\tthis.el.innerHTML = '';\n\n\t\tif (this.stripClasses) {\n\t\t\tfor (let i = 0; i < this.availableChecks.length; i++) {\n\t\t\t\tconst newStrip = htmlToElement('
');\n\t\t\t\tclassToClassList(this.stripClasses, newStrip);\n\n\t\t\t\tthis.el.append(newStrip);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate buildHints() {\n\t\tthis.weakness =\n\t\t\t(this.hints as HTMLElement).querySelector(\n\t\t\t\t'[data-hs-strong-password-hints-weakness-text]',\n\t\t\t) || null;\n\t\tthis.rules =\n\t\t\tArray.from(\n\t\t\t\t(this.hints as HTMLElement).querySelectorAll(\n\t\t\t\t\t'[data-hs-strong-password-hints-rule-text]',\n\t\t\t\t),\n\t\t\t) || null;\n\n\t\tthis.rules.forEach((rule) => {\n\t\t\tconst ruleValue = rule.getAttribute(\n\t\t\t\t'data-hs-strong-password-hints-rule-text',\n\t\t\t);\n\n\t\t\tif (this.checksExclude?.includes(ruleValue)) rule.remove();\n\t\t});\n\n\t\tif (this.weakness) this.buildWeakness();\n\t\tif (this.rules) this.buildRules();\n\t\tif (this.mode === 'popover') {\n\t\t\t(this.target as HTMLInputElement).addEventListener('focus', () => {\n\t\t\t\tthis.isOpened = true;\n\t\t\t\t(this.hints as HTMLElement).classList.remove('hidden');\n\t\t\t\t(this.hints as HTMLElement).classList.add('block');\n\n\t\t\t\tthis.recalculateDirection();\n\t\t\t});\n\n\t\t\t(this.target as HTMLInputElement).addEventListener('blur', () => {\n\t\t\t\tthis.isOpened = false;\n\t\t\t\t(this.hints as HTMLElement).classList.remove(\n\t\t\t\t\t'block',\n\t\t\t\t\t'bottom-full',\n\t\t\t\t\t'top-full',\n\t\t\t\t);\n\t\t\t\t(this.hints as HTMLElement).classList.add('hidden');\n\t\t\t\t(this.hints as HTMLElement).style.marginTop = '';\n\t\t\t\t(this.hints as HTMLElement).style.marginBottom = '';\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate buildWeakness() {\n\t\tthis.checkStrength((this.target as HTMLInputElement).value);\n\t\tthis.setWeaknessText();\n\n\t\t(this.target as HTMLInputElement).addEventListener('input', () =>\n\t\t\tsetTimeout(() => this.setWeaknessText()),\n\t\t);\n\t}\n\n\tprivate buildRules() {\n\t\tthis.setRulesText();\n\n\t\t(this.target as HTMLInputElement).addEventListener('input', () =>\n\t\t\tsetTimeout(() => this.setRulesText()),\n\t\t);\n\t}\n\n\tprivate setWeaknessText() {\n\t\tconst weaknessText = this.weakness.getAttribute(\n\t\t\t'data-hs-strong-password-hints-weakness-text',\n\t\t);\n\t\tconst weaknessTextToJson = JSON.parse(weaknessText as string);\n\n\t\tthis.weakness.textContent = weaknessTextToJson[this.strength];\n\t}\n\n\tprivate setRulesText() {\n\t\tthis.rules.forEach((rule) => {\n\t\t\tconst ruleValue = rule.getAttribute(\n\t\t\t\t'data-hs-strong-password-hints-rule-text',\n\t\t\t);\n\n\t\t\tthis.checkIfPassed(rule, this.passedRules.has(ruleValue));\n\t\t});\n\t}\n\n\tprivate togglePopover() {\n\t\tconst popover = this.el.querySelector('.popover');\n\n\t\tif (popover) popover.classList.toggle('show');\n\t}\n\n\tprivate checkStrength(val: string): { strength: number; rules: Set } {\n\t\tconst passedRules = new Set();\n\t\tconst regexps = {\n\t\t\tlowercase: /[a-z]+/,\n\t\t\tuppercase: /[A-Z]+/,\n\t\t\tnumbers: /[0-9]+/,\n\t\t\t'special-characters': new RegExp(`[${this.specialCharactersSet}]`),\n\t\t};\n\t\tlet strength = 0;\n\n\t\tif (\n\t\t\tthis.availableChecks.includes('lowercase') &&\n\t\t\tval.match(regexps['lowercase'])\n\t\t) {\n\t\t\tstrength += 1;\n\t\t\tpassedRules.add('lowercase');\n\t\t}\n\t\tif (\n\t\t\tthis.availableChecks.includes('uppercase') &&\n\t\t\tval.match(regexps['uppercase'])\n\t\t) {\n\t\t\tstrength += 1;\n\t\t\tpassedRules.add('uppercase');\n\t\t}\n\t\tif (\n\t\t\tthis.availableChecks.includes('numbers') &&\n\t\t\tval.match(regexps['numbers'])\n\t\t) {\n\t\t\tstrength += 1;\n\t\t\tpassedRules.add('numbers');\n\t\t}\n\t\tif (\n\t\t\tthis.availableChecks.includes('special-characters') &&\n\t\t\tval.match(regexps['special-characters'])\n\t\t) {\n\t\t\tstrength += 1;\n\t\t\tpassedRules.add('special-characters');\n\t\t}\n\t\tif (\n\t\t\tthis.availableChecks.includes('min-length') &&\n\t\t\tval.length >= this.minLength\n\t\t) {\n\t\t\tstrength += 1;\n\t\t\tpassedRules.add('min-length');\n\t\t}\n\t\tif (!val.length) {\n\t\t\tstrength = 0;\n\t\t}\n\n\t\tif (strength === this.availableChecks.length)\n\t\t\tthis.el.classList.add('accepted');\n\t\telse this.el.classList.remove('accepted');\n\n\t\tthis.strength = strength;\n\t\tthis.passedRules = passedRules;\n\n\t\treturn {\n\t\t\tstrength: this.strength,\n\t\t\trules: this.passedRules,\n\t\t};\n\t}\n\n\tprivate checkIfPassed(el: HTMLElement, isRulePassed = false) {\n\t\tconst check = el.querySelector('[data-check]');\n\t\tconst uncheck = el.querySelector('[data-uncheck]');\n\n\t\tif (isRulePassed) {\n\t\t\tel.classList.add('active');\n\t\t\tcheck.classList.remove('hidden');\n\t\t\tuncheck.classList.add('hidden');\n\t\t} else {\n\t\t\tel.classList.remove('active');\n\t\t\tcheck.classList.add('hidden');\n\t\t\tuncheck.classList.remove('hidden');\n\t\t}\n\t}\n\n\tprivate setStrength(val: string) {\n\t\tconst { strength, rules } = this.checkStrength(val);\n\t\tconst payload = {\n\t\t\tstrength,\n\t\t\trules,\n\t\t};\n\n\t\tthis.hideStrips(strength);\n\n\t\tthis.fireEvent('change', payload);\n\t\tdispatch('change.hs.strongPassword', this.el, payload);\n\t}\n\n\tprivate hideStrips(qty: number) {\n\t\tArray.from(this.el.children).forEach((el: HTMLElement, i: number) => {\n\t\t\tif (i < qty) el.classList.add('passed');\n\t\t\telse el.classList.remove('passed');\n\t\t});\n\t}\n\n\t// Public methods\n\tpublic recalculateDirection() {\n\t\tif (\n\t\t\tisEnoughSpace(\n\t\t\t\tthis.hints as HTMLElement,\n\t\t\t\tthis.target as HTMLInputElement,\n\t\t\t\t'bottom',\n\t\t\t\tthis.popoverSpace,\n\t\t\t)\n\t\t) {\n\t\t\t(this.hints as HTMLElement).classList.remove('bottom-full');\n\t\t\t(this.hints as HTMLElement).classList.add('top-full');\n\t\t\t(this.hints as HTMLElement).style.marginBottom = '';\n\t\t\t(this.hints as HTMLElement).style.marginTop = `${this.popoverSpace}px`;\n\t\t} else {\n\t\t\t(this.hints as HTMLElement).classList.remove('top-full');\n\t\t\t(this.hints as HTMLElement).classList.add('bottom-full');\n\t\t\t(this.hints as HTMLElement).style.marginTop = '';\n\t\t\t(this.hints as HTMLElement).style.marginBottom = `${this.popoverSpace}px`;\n\t\t}\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string) {\n\t\tconst elInCollection = window.$hsStrongPasswordCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection ? elInCollection.element : null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsStrongPasswordCollection)\n\t\t\twindow.$hsStrongPasswordCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll(\n\t\t\t\t'[data-hs-strong-password]:not(.--prevent-on-load-init)',\n\t\t\t)\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsStrongPasswordCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tconst data = el.getAttribute('data-hs-strong-password');\n\t\t\t\t\tconst options: IStrongPasswordOptions = data ? JSON.parse(data) : {};\n\n\t\t\t\t\tnew HSStrongPassword(el, options);\n\t\t\t\t}\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSStrongPassword: Function;\n\t\t$hsStrongPasswordCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSStrongPassword.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Strong password collection:', window.$hsStrongPasswordCollection);\n});\n\ndocument.addEventListener('scroll', () => {\n\tif (!window.$hsStrongPasswordCollection) return false;\n\n\tconst target = window.$hsStrongPasswordCollection.find(\n\t\t(el) => el.element.isOpened,\n\t);\n\n\tif (target) target.element.recalculateDirection();\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSStrongPassword = HSStrongPassword;\n}\n\nexport default HSStrongPassword;\n","/*\n * HSTabs\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { dispatch } from '../../utils';\n\nimport { ITabs } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nimport { TABS_ACCESSIBILITY_KEY_SET } from '../../constants';\n\nclass HSTabs extends HSBasePlugin<{}> implements ITabs {\n\tpublic toggles: NodeListOf | null;\n\tprivate readonly extraToggleId: string | null;\n\tprivate readonly extraToggle: HTMLSelectElement | null;\n\tprivate current: HTMLElement | null;\n\tprivate currentContentId: string | null;\n\tpublic currentContent: HTMLElement | null;\n\tprivate prev: HTMLElement | null;\n\tprivate prevContentId: string | null;\n\tprivate prevContent: HTMLElement | null;\n\n\tconstructor(el: HTMLElement, options?: {}, events?: {}) {\n\t\tsuper(el, options, events);\n\n\t\tthis.toggles = this.el.querySelectorAll('[data-hs-tab]');\n\t\tthis.extraToggleId = this.el.getAttribute('hs-data-tab-select');\n\t\tthis.extraToggle = document.querySelector(this.extraToggleId);\n\t\tthis.current = Array.from(this.toggles).find((el) =>\n\t\t\tel.classList.contains('active'),\n\t\t);\n\t\tthis.currentContentId = this.current.getAttribute('data-hs-tab');\n\t\tthis.currentContent = document.querySelector(this.currentContentId);\n\t\tthis.prev = null;\n\t\tthis.prevContentId = null;\n\t\tthis.prevContent = null;\n\n\t\tthis.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsTabsCollection, this);\n\n\t\tthis.toggles.forEach((el) => {\n\t\t\tel.addEventListener('click', () => this.open(el));\n\t\t});\n\n\t\tif (this.extraToggle) {\n\t\t\tthis.extraToggle.addEventListener('change', (evt) => this.change(evt));\n\t\t}\n\t}\n\n\tprivate open(el: HTMLElement) {\n\t\tthis.prev = this.current;\n\t\tthis.prevContentId = this.currentContentId;\n\t\tthis.prevContent = this.currentContent;\n\n\t\tthis.current = el;\n\t\tthis.currentContentId = this.current.getAttribute('data-hs-tab');\n\t\tthis.currentContent = document.querySelector(this.currentContentId);\n\n\t\tthis.prev.classList.remove('active');\n\t\tthis.prevContent.classList.add('hidden');\n\n\t\tthis.current.classList.add('active');\n\t\tthis.currentContent.classList.remove('hidden');\n\n\t\tthis.fireEvent('change', {\n\t\t\tel,\n\t\t\tprev: this.prevContentId,\n\t\t\tcurrent: this.currentContentId,\n\t\t});\n\t\tdispatch('change.hs.tab', el, {\n\t\t\tel,\n\t\t\tprev: this.prevContentId,\n\t\t\tcurrent: this.currentContentId,\n\t\t});\n\t}\n\n\tprivate change(evt: Event) {\n\t\tconst toggle: HTMLElement = document.querySelector(\n\t\t\t`[data-hs-tab=\"${(evt.target as HTMLSelectElement).value}\"]`,\n\t\t);\n\n\t\tif (toggle) toggle.click();\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsTabsCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsTabsCollection) window.$hsTabsCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll(\n\t\t\t\t'[role=\"tablist\"]:not(select):not(.--prevent-on-load-init)',\n\t\t\t)\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsTabsCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSTabs(el);\n\t\t\t});\n\n\t\tif (window.$hsTabsCollection)\n\t\t\tdocument.addEventListener('keydown', (evt) => HSTabs.accessibility(evt));\n\t}\n\n\tstatic open(target: HTMLElement) {\n\t\tconst elInCollection = window.$hsTabsCollection.find((el) =>\n\t\t\tArray.from(el.element.toggles).includes(\n\t\t\t\ttypeof target === 'string' ? document.querySelector(target) : target,\n\t\t\t),\n\t\t);\n\t\tconst targetInCollection = Array.from(elInCollection.element.toggles).find(\n\t\t\t(el) =>\n\t\t\t\tel ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (targetInCollection && !targetInCollection.classList.contains('active'))\n\t\t\telInCollection.element.open(targetInCollection);\n\t}\n\n\t// Accessibility methods\n\tstatic accessibility(evt: KeyboardEvent) {\n\t\tconst target = document.querySelector('[data-hs-tab]:focus');\n\n\t\tif (\n\t\t\ttarget &&\n\t\t\tTABS_ACCESSIBILITY_KEY_SET.includes(evt.code) &&\n\t\t\t!evt.metaKey\n\t\t) {\n\t\t\tconst isVertical = target\n\t\t\t\t.closest('[role=\"tablist\"]')\n\t\t\t\t.getAttribute('data-hs-tabs-vertical');\n\n\t\t\tevt.preventDefault();\n\n\t\t\tswitch (evt.code) {\n\t\t\t\tcase isVertical === 'true' ? 'ArrowUp' : 'ArrowLeft':\n\t\t\t\t\tthis.onArrow();\n\t\t\t\t\tbreak;\n\t\t\t\tcase isVertical === 'true' ? 'ArrowDown' : 'ArrowRight':\n\t\t\t\t\tthis.onArrow(false);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Home':\n\t\t\t\t\tthis.onStartEnd();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'End':\n\t\t\t\t\tthis.onStartEnd(false);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic onArrow(isOpposite = true) {\n\t\tconst target = document\n\t\t\t.querySelector('[data-hs-tab]:focus')\n\t\t\t.closest('[role=\"tablist\"]');\n\t\tconst targetInCollection = window.$hsTabsCollection.find(\n\t\t\t(el) => el.element.el === target,\n\t\t);\n\n\t\tif (targetInCollection) {\n\t\t\tconst toggles = isOpposite\n\t\t\t\t? Array.from(targetInCollection.element.toggles).reverse()\n\t\t\t\t: Array.from(targetInCollection.element.toggles);\n\t\t\tconst focused = toggles.find((el) => document.activeElement === el);\n\t\t\tlet focusedInd = toggles.findIndex((el: any) => el === focused);\n\t\t\tfocusedInd = focusedInd + 1 < toggles.length ? focusedInd + 1 : 0;\n\n\t\t\ttoggles[focusedInd].focus();\n\t\t\ttoggles[focusedInd].click();\n\t\t}\n\t}\n\n\tstatic onStartEnd(isOpposite = true) {\n\t\tconst target = document\n\t\t\t.querySelector('[data-hs-tab]:focus')\n\t\t\t.closest('[role=\"tablist\"]');\n\t\tconst targetInCollection = window.$hsTabsCollection.find(\n\t\t\t(el) => el.element.el === target,\n\t\t);\n\n\t\tif (targetInCollection) {\n\t\t\tconst toggles = isOpposite\n\t\t\t\t? Array.from(targetInCollection.element.toggles)\n\t\t\t\t: Array.from(targetInCollection.element.toggles).reverse();\n\n\t\t\tif (toggles.length) {\n\t\t\t\ttoggles[0].focus();\n\t\t\t\ttoggles[0].click();\n\t\t\t}\n\t\t}\n\t}\n\n\t// Backward compatibility\n\tstatic on(evt: string, target: HTMLElement, cb: Function) {\n\t\tconst elInCollection = window.$hsTabsCollection.find((el) =>\n\t\t\tArray.from(el.element.toggles).includes(\n\t\t\t\ttypeof target === 'string' ? document.querySelector(target) : target,\n\t\t\t),\n\t\t);\n\n\t\tif (elInCollection) elInCollection.element.events[evt] = cb;\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSTabs: Function;\n\t\t$hsTabsCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSTabs.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Tabs collection:', window.$hsTabsCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSTabs = HSTabs;\n}\n\nexport default HSTabs;\n","/*\n * HSThemeSwitch\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\nimport { IThemeSwitchOptions, IThemeSwitch } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSThemeSwitch\n\textends HSBasePlugin\n\timplements IThemeSwitch\n{\n\tpublic theme: string;\n\tprivate readonly themeSet: string[];\n\n\tconstructor(el: HTMLElement, options?: IThemeSwitchOptions) {\n\t\tsuper(el, options);\n\n\t\tconst data = el.getAttribute('data-hs-theme-switch');\n\t\tconst dataOptions: IThemeSwitchOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.theme =\n\t\t\tconcatOptions?.theme || localStorage.getItem('hs_theme') || 'default';\n\t\tthis.themeSet = ['light', 'dark', 'default'];\n\n\t\tthis.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsThemeSwitchCollection, this);\n\n\t\tif (this.theme !== 'default') this.setAppearance();\n\t}\n\n\tprivate setResetStyles() {\n\t\tconst style = document.createElement('style');\n\n\t\tstyle.innerText = `*{transition: unset !important;}`;\n\t\tstyle.setAttribute('data-hs-appearance-onload-styles', '');\n\n\t\tdocument.head.appendChild(style);\n\n\t\treturn style;\n\t}\n\n\tprivate addSystemThemeObserver() {\n\t\twindow\n\t\t\t.matchMedia('(prefers-color-scheme: dark)')\n\t\t\t.addEventListener('change', ({ matches }) => {\n\t\t\t\tif (matches) this.setAppearance('dark', false);\n\t\t\t\telse this.setAppearance('default', false);\n\t\t\t});\n\t}\n\n\tprivate removeSystemThemeObserver() {\n\t\twindow.matchMedia('(prefers-color-scheme: dark)').removeEventListener;\n\t}\n\n\t// Public methods\n\tpublic setAppearance(\n\t\ttheme = this.theme,\n\t\tisSaveToLocalStorage = true,\n\t\tisSetDispatchEvent = true,\n\t) {\n\t\tconst html = document.querySelector('html');\n\t\tconst resetStyles = this.setResetStyles();\n\n\t\tif (isSaveToLocalStorage) localStorage.setItem('hs_theme', theme);\n\t\tif (theme === 'auto')\n\t\t\ttheme = window.matchMedia('(prefers-color-scheme: dark)').matches\n\t\t\t\t? 'dark'\n\t\t\t\t: 'default';\n\n\t\thtml.classList.remove('light', 'dark', 'default', 'auto');\n\t\thtml.classList.add(theme);\n\n\t\tsetTimeout(() => resetStyles.remove());\n\n\t\tif (isSetDispatchEvent)\n\t\t\twindow.dispatchEvent(\n\t\t\t\tnew CustomEvent('on-hs-appearance-change', { detail: theme }),\n\t\t\t);\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string) {\n\t\tconst elInCollection = window.$hsThemeSwitchCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection ? elInCollection.element : null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsThemeSwitchCollection) window.$hsThemeSwitchCollection = [];\n\n\t\tconst toggleObserveSystemTheme = (el: HSThemeSwitch) => {\n\t\t\tif (localStorage.getItem('hs_theme') === 'auto')\n\t\t\t\tel.addSystemThemeObserver();\n\t\t\telse el.removeSystemThemeObserver();\n\t\t};\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-theme-switch]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsThemeSwitchCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tconst switchTheme = new HSThemeSwitch(el);\n\t\t\t\t\t(switchTheme.el as HTMLInputElement).checked =\n\t\t\t\t\t\tswitchTheme.theme === 'dark';\n\n\t\t\t\t\ttoggleObserveSystemTheme(switchTheme);\n\n\t\t\t\t\tswitchTheme.el.addEventListener('change', (evt) => {\n\t\t\t\t\t\tconst theme = (evt.target as HTMLInputElement).checked\n\t\t\t\t\t\t\t? 'dark'\n\t\t\t\t\t\t\t: 'default';\n\t\t\t\t\t\tswitchTheme.setAppearance(theme);\n\n\t\t\t\t\t\ttoggleObserveSystemTheme(switchTheme);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\tdocument\n\t\t\t.querySelectorAll(\n\t\t\t\t'[data-hs-theme-click-value]:not(.--prevent-on-load-init)',\n\t\t\t)\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tconst theme = el.getAttribute('data-hs-theme-click-value');\n\t\t\t\tconst switchTheme = new HSThemeSwitch(el);\n\n\t\t\t\ttoggleObserveSystemTheme(switchTheme);\n\n\t\t\t\tswitchTheme.el.addEventListener('click', () => {\n\t\t\t\t\tswitchTheme.setAppearance(theme);\n\n\t\t\t\t\ttoggleObserveSystemTheme(switchTheme);\n\t\t\t\t});\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSThemeSwitch: Function;\n\t\t$hsThemeSwitchCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSThemeSwitch.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Theme switch collection:', window.$hsThemeSwitchCollection);\n});\n\nif (window.$hsThemeSwitchCollection) {\n\twindow.addEventListener(\n\t\t'on-hs-appearance-change',\n\t\t(evt: Event & { detail: string }) => {\n\t\t\twindow.$hsThemeSwitchCollection.forEach((el) => {\n\t\t\t\t(el.element.el as HTMLInputElement).checked = evt.detail === 'dark';\n\t\t\t});\n\t\t},\n\t);\n}\n\nif (typeof window !== 'undefined') {\n\twindow.HSThemeSwitch = HSThemeSwitch;\n}\n\nexport default HSThemeSwitch;\n","/*\n * HSToggleCount\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { IToggleCountOptions, IToggleCount } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSToggleCount\n\textends HSBasePlugin\n\timplements IToggleCount\n{\n\tprivate readonly target: HTMLInputElement | null;\n\tprivate readonly min: number | null;\n\tprivate readonly max: number | null;\n\tprivate readonly duration: number | null;\n\tprivate isChecked: boolean;\n\n\tconstructor(el: HTMLElement, options?: IToggleCountOptions) {\n\t\tsuper(el, options);\n\n\t\tconst data = el.getAttribute('data-hs-toggle-count');\n\t\tconst dataOptions: IToggleCountOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.target = concatOptions?.target\n\t\t\t? typeof concatOptions?.target === 'string'\n\t\t\t\t? (document.querySelector(concatOptions.target) as HTMLInputElement)\n\t\t\t\t: concatOptions.target\n\t\t\t: null;\n\t\tthis.min = concatOptions?.min || 0;\n\t\tthis.max = concatOptions?.max || 0;\n\t\tthis.duration = concatOptions?.duration || 700;\n\n\t\tthis.isChecked = (this.target as HTMLInputElement).checked || false;\n\n\t\tif (this.target) this.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsToggleCountCollection, this);\n\n\t\tif (this.isChecked) this.el.innerText = String(this.max);\n\n\t\tthis.target.addEventListener('change', () => {\n\t\t\tthis.isChecked = !this.isChecked;\n\n\t\t\tthis.toggle();\n\t\t});\n\t}\n\n\tprivate toggle() {\n\t\tif (this.isChecked) this.countUp();\n\t\telse this.countDown();\n\t}\n\n\tprivate animate(from: number, to: number) {\n\t\tlet startTimestamp = 0;\n\n\t\tconst step = (timestamp: number) => {\n\t\t\tif (!startTimestamp) startTimestamp = timestamp;\n\t\t\tconst progress = Math.min(\n\t\t\t\t(timestamp - startTimestamp) / this.duration,\n\t\t\t\t1,\n\t\t\t);\n\n\t\t\tthis.el.innerText = String(Math.floor(progress * (to - from) + from));\n\n\t\t\tif (progress < 1) window.requestAnimationFrame(step);\n\t\t};\n\n\t\twindow.requestAnimationFrame(step);\n\t}\n\n\t// Public methods\n\tpublic countUp() {\n\t\tthis.animate(this.min, this.max);\n\t}\n\n\tpublic countDown() {\n\t\tthis.animate(this.max, this.min);\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsToggleCountCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsToggleCountCollection) window.$hsToggleCountCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll('[data-hs-toggle-count]:not(.--prevent-on-load-init)')\n\t\t\t.forEach((el: HTMLElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsToggleCountCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSToggleCount(el);\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSToggleCount: Function;\n\t\t$hsToggleCountCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSToggleCount.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Toggle count collection:', window.$hsToggleCountCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSToggleCount = HSToggleCount;\n}\n\nexport default HSToggleCount;\n","/*\n * HSTogglePassword\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { isFormElement, dispatch } from '../../utils';\n\nimport { ITogglePasswordOptions, ITogglePassword } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nclass HSTogglePassword\n\textends HSBasePlugin\n\timplements ITogglePassword\n{\n\tprivate readonly target:\n\t\t| string\n\t\t| string[]\n\t\t| HTMLInputElement\n\t\t| HTMLInputElement[]\n\t\t| null;\n\tprivate isShown: boolean;\n\tprivate isMultiple: boolean;\n\tprivate eventType: string;\n\n\tconstructor(el: HTMLElement, options?: ITogglePasswordOptions) {\n\t\tsuper(el, options);\n\n\t\tconst data = el.getAttribute('data-hs-toggle-password');\n\t\tconst dataOptions: ITogglePasswordOptions = data ? JSON.parse(data) : {};\n\t\tconst concatOptions = {\n\t\t\t...dataOptions,\n\t\t\t...options,\n\t\t};\n\t\tconst targets: HTMLInputElement[] = [];\n\t\tif (concatOptions?.target && typeof concatOptions?.target === 'string') {\n\t\t\tconst ids = concatOptions?.target.split(',');\n\t\t\tids.forEach((id) => {\n\t\t\t\ttargets.push(document.querySelector(id) as HTMLInputElement);\n\t\t\t});\n\t\t} else if (\n\t\t\tconcatOptions?.target &&\n\t\t\ttypeof concatOptions?.target === 'object'\n\t\t) {\n\t\t\t(concatOptions.target as string[]).forEach((el) =>\n\t\t\t\ttargets.push(document.querySelector(el)),\n\t\t\t);\n\t\t} else {\n\t\t\t(concatOptions.target as HTMLInputElement[]).forEach((el) =>\n\t\t\t\ttargets.push(el),\n\t\t\t);\n\t\t}\n\n\t\tthis.target = targets;\n\t\tthis.isShown = this.el.hasAttribute('type')\n\t\t\t? (this.el as HTMLInputElement).checked\n\t\t\t: false;\n\t\tthis.eventType = isFormElement(this.el) ? 'change' : 'click';\n\t\tthis.isMultiple =\n\t\t\tthis.target.length > 1 &&\n\t\t\t!!this.el.closest('[data-hs-toggle-password-group]');\n\n\t\tif (this.target) this.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsTogglePasswordCollection, this);\n\n\t\tif (!this.isShown) {\n\t\t\tthis.hide();\n\t\t} else {\n\t\t\tthis.show();\n\t\t}\n\n\t\tthis.el.addEventListener(this.eventType, () => {\n\t\t\tif (this.isShown) {\n\t\t\t\tthis.hide();\n\t\t\t} else {\n\t\t\t\tthis.show();\n\t\t\t}\n\n\t\t\tthis.fireEvent('toggle', this.target);\n\t\t\tdispatch('toggle.hs.toggle-select', this.el, this.target);\n\t\t});\n\t}\n\n\tprivate getMultipleToggles(): HSTogglePassword[] {\n\t\tconst group = this.el.closest('[data-hs-toggle-password-group]');\n\t\tconst toggles = group.querySelectorAll('[data-hs-toggle-password]');\n\t\tconst togglesInCollection: HSTogglePassword[] = [];\n\n\t\ttoggles.forEach((el: HTMLElement) => {\n\t\t\ttogglesInCollection.push(\n\t\t\t\tHSTogglePassword.getInstance(el) as HSTogglePassword,\n\t\t\t);\n\t\t});\n\n\t\treturn togglesInCollection;\n\t}\n\n\t// Public methods\n\tpublic show() {\n\t\tif (this.isMultiple) {\n\t\t\tconst toggles = this.getMultipleToggles();\n\n\t\t\ttoggles.forEach((el: HSTogglePassword) =>\n\t\t\t\tel ? (el.isShown = true) : false,\n\t\t\t);\n\n\t\t\tthis.el\n\t\t\t\t.closest('[data-hs-toggle-password-group]')\n\t\t\t\t.classList.add('active');\n\t\t} else {\n\t\t\tthis.isShown = true;\n\n\t\t\tthis.el.classList.add('active');\n\t\t}\n\t\t(this.target as HTMLInputElement[]).forEach((el) => {\n\t\t\t(el as HTMLInputElement).type = 'text';\n\t\t});\n\t}\n\n\tpublic hide() {\n\t\tif (this.isMultiple) {\n\t\t\tconst toggles = this.getMultipleToggles();\n\n\t\t\ttoggles.forEach((el: HSTogglePassword) =>\n\t\t\t\tel ? (el.isShown = false) : false,\n\t\t\t);\n\n\t\t\tthis.el\n\t\t\t\t.closest('[data-hs-toggle-password-group]')\n\t\t\t\t.classList.remove('active');\n\t\t} else {\n\t\t\tthis.isShown = false;\n\n\t\t\tthis.el.classList.remove('active');\n\t\t}\n\t\t(this.target as HTMLInputElement[]).forEach((el) => {\n\t\t\t(el as HTMLInputElement).type = 'password';\n\t\t});\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string, isInstance?: boolean) {\n\t\tconst elInCollection = window.$hsTogglePasswordCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsTogglePasswordCollection)\n\t\t\twindow.$hsTogglePasswordCollection = [];\n\n\t\tdocument\n\t\t\t.querySelectorAll(\n\t\t\t\t'[data-hs-toggle-password]:not(.--prevent-on-load-init)',\n\t\t\t)\n\t\t\t.forEach((el: HTMLInputElement) => {\n\t\t\t\tif (\n\t\t\t\t\t!window.$hsTogglePasswordCollection.find(\n\t\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tnew HSTogglePassword(el);\n\t\t\t});\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSTogglePassword: Function;\n\t\t$hsTogglePasswordCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSTogglePassword.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Toggle password collection:', window.$hsTogglePasswordCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSTogglePassword = HSTogglePassword;\n}\n\nexport default HSTogglePassword;\n","/*\n * HSTooltip\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { createPopper, PositioningStrategy, Instance } from '@popperjs/core';\nimport { getClassProperty, dispatch, afterTransition } from '../../utils';\n\nimport { ITooltip } from './interfaces';\n\nimport HSBasePlugin from '../base-plugin';\nimport { ICollectionItem } from '../../interfaces';\n\nimport { POSITIONS } from '../../constants';\n\nclass HSTooltip extends HSBasePlugin<{}> implements ITooltip {\n\tprivate readonly toggle: HTMLElement | null;\n\tpublic content: HTMLElement | null;\n\treadonly eventMode: string;\n\tprivate readonly preventPopper: string;\n\tprivate popperInstance: Instance;\n\tprivate readonly placement: string;\n\tprivate readonly strategy: PositioningStrategy;\n\n\tconstructor(el: HTMLElement, options?: {}, events?: {}) {\n\t\tsuper(el, options, events);\n\n\t\tif (this.el) {\n\t\t\tthis.toggle = this.el.querySelector('.hs-tooltip-toggle') || this.el;\n\t\t\tthis.content = this.el.querySelector('.hs-tooltip-content');\n\t\t\tthis.eventMode = getClassProperty(this.el, '--trigger') || 'hover';\n\t\t\tthis.preventPopper = getClassProperty(\n\t\t\t\tthis.el,\n\t\t\t\t'--prevent-popper',\n\t\t\t\t'false',\n\t\t\t);\n\t\t\tthis.placement = getClassProperty(this.el, '--placement');\n\t\t\tthis.strategy = getClassProperty(\n\t\t\t\tthis.el,\n\t\t\t\t'--strategy',\n\t\t\t) as PositioningStrategy;\n\t\t}\n\n\t\tif (this.el && this.toggle && this.content) this.init();\n\t}\n\n\tprivate init() {\n\t\tthis.createCollection(window.$hsTooltipCollection, this);\n\n\t\tif (this.eventMode === 'click') {\n\t\t\tthis.toggle.addEventListener('click', () => this.click());\n\t\t} else if (this.eventMode === 'focus') {\n\t\t\tthis.toggle.addEventListener('click', () => this.focus());\n\t\t} else if (this.eventMode === 'hover') {\n\t\t\tthis.toggle.addEventListener('mouseenter', () => this.enter());\n\t\t\tthis.toggle.addEventListener('mouseleave', () => this.leave());\n\t\t}\n\n\t\tif (this.preventPopper === 'false') this.buildPopper();\n\t}\n\n\tprivate enter() {\n\t\tthis.show();\n\t}\n\n\tprivate leave() {\n\t\tthis.hide();\n\t}\n\n\tprivate click() {\n\t\tif (this.el.classList.contains('show')) return false;\n\n\t\tthis.show();\n\n\t\tconst handle = () => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.hide();\n\n\t\t\t\tthis.toggle.removeEventListener('click', handle, true);\n\t\t\t\tthis.toggle.removeEventListener('blur', handle, true);\n\t\t\t});\n\t\t};\n\n\t\tthis.toggle.addEventListener('click', handle, true);\n\t\tthis.toggle.addEventListener('blur', handle, true);\n\t}\n\n\tprivate focus() {\n\t\tthis.show();\n\n\t\tconst handle = () => {\n\t\t\tthis.hide();\n\n\t\t\tthis.toggle.removeEventListener('blur', handle, true);\n\t\t};\n\n\t\tthis.toggle.addEventListener('blur', handle, true);\n\t}\n\n\tprivate buildPopper() {\n\t\tthis.popperInstance = createPopper(this.toggle, this.content, {\n\t\t\tplacement: POSITIONS[this.placement] || 'top',\n\t\t\tstrategy: this.strategy || 'fixed',\n\t\t\tmodifiers: [\n\t\t\t\t{\n\t\t\t\t\tname: 'offset',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\toffset: [0, 5],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t}\n\n\t// Public methods\n\tpublic show() {\n\t\tthis.content.classList.remove('hidden');\n\n\t\tif (this.preventPopper === 'false') {\n\t\t\tthis.popperInstance.setOptions((options) => ({\n\t\t\t\t...options,\n\t\t\t\tmodifiers: [\n\t\t\t\t\t...options.modifiers,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'eventListeners',\n\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}));\n\n\t\t\tthis.popperInstance.update();\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tthis.el.classList.add('show');\n\n\t\t\tthis.fireEvent('show', this.el);\n\t\t\tdispatch('show.hs.tooltip', this.el, this.el);\n\t\t});\n\t}\n\n\tpublic hide() {\n\t\tthis.el.classList.remove('show');\n\n\t\tif (this.preventPopper === 'false') {\n\t\t\tthis.popperInstance.setOptions((options) => ({\n\t\t\t\t...options,\n\t\t\t\tmodifiers: [\n\t\t\t\t\t...options.modifiers,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'eventListeners',\n\t\t\t\t\t\tenabled: false,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}));\n\t\t}\n\n\t\tthis.fireEvent('hide', this.el);\n\t\tdispatch('hide.hs.tooltip', this.el, this.el);\n\n\t\tafterTransition(this.content, () => {\n\t\t\tif (this.el.classList.contains('show')) return false;\n\n\t\t\tthis.content.classList.add('hidden');\n\t\t});\n\t}\n\n\t// Static methods\n\tstatic getInstance(target: HTMLElement | string, isInstance = false) {\n\t\tconst elInCollection = window.$hsTooltipCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\treturn elInCollection\n\t\t\t? isInstance\n\t\t\t\t? elInCollection\n\t\t\t\t: elInCollection.element.el\n\t\t\t: null;\n\t}\n\n\tstatic autoInit() {\n\t\tif (!window.$hsTooltipCollection) window.$hsTooltipCollection = [];\n\n\t\tdocument.querySelectorAll('.hs-tooltip').forEach((el: HTMLElement) => {\n\t\t\tif (\n\t\t\t\t!window.$hsTooltipCollection.find(\n\t\t\t\t\t(elC) => (elC?.element?.el as HTMLElement) === el,\n\t\t\t\t)\n\t\t\t)\n\t\t\t\tnew HSTooltip(el);\n\t\t});\n\t}\n\n\tstatic show(target: HTMLElement) {\n\t\tconst elInCollection = window.$hsTooltipCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (elInCollection) {\n\t\t\tswitch (elInCollection.element.eventMode) {\n\t\t\t\tcase 'click':\n\t\t\t\t\telInCollection.element.click();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'focus':\n\t\t\t\t\telInCollection.element.focus();\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\telInCollection.element.enter();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic hide(target: HTMLElement) {\n\t\tconst elInCollection = window.$hsTooltipCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (elInCollection) elInCollection.element.hide();\n\t}\n\n\t// Backward compatibility\n\tstatic on(evt: string, target: HTMLElement, cb: Function) {\n\t\tconst elInCollection = window.$hsTooltipCollection.find(\n\t\t\t(el) =>\n\t\t\t\tel.element.el ===\n\t\t\t\t(typeof target === 'string' ? document.querySelector(target) : target),\n\t\t);\n\n\t\tif (elInCollection) elInCollection.element.events[evt] = cb;\n\t}\n}\n\ndeclare global {\n\tinterface Window {\n\t\tHSTooltip: Function;\n\t\t$hsTooltipCollection: ICollectionItem[];\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\tHSTooltip.autoInit();\n\n\t// Uncomment for debug\n\t// console.log('Tooltip collection:', window.$hsTooltipCollection);\n});\n\nif (typeof window !== 'undefined') {\n\twindow.HSTooltip = HSTooltip;\n}\n\nexport default HSTooltip;\n","import { ISpaCollectionItem } from './interfaces';\n\nimport HSCopyMarkup from '../plugins/copy-markup';\nimport HSAccordion from '../plugins/accordion';\nimport HSCarousel from '../plugins/carousel';\nimport HSCollapse from '../plugins/collapse';\nimport HSComboBox from '../plugins/combobox';\nimport HSDropdown from '../plugins/dropdown';\nimport HSInputNumber from '../plugins/input-number';\nimport HSOverlay from '../plugins/overlay';\nimport HSPinInput from '../plugins/pin-input';\nimport HSRemoveElement from '../plugins/remove-element';\nimport HSScrollspy from '../plugins/scrollspy';\nimport HSSelect from '../plugins/select';\nimport HSStepper from '../plugins/stepper';\nimport HSStrongPassword from '../plugins/strong-password';\nimport HSTabs from '../plugins/tabs';\nimport HSToggleCount from '../plugins/toggle-count';\nimport HSTogglePassword from '../plugins/toggle-password';\nimport HSTooltip from '../plugins/tooltip';\n\nexport const COLLECTIONS: ISpaCollectionItem[] = [\n\t{ key: 'copy-markup', fn: HSCopyMarkup },\n\t{ key: 'accordion', fn: HSAccordion },\n\t{ key: 'carousel', fn: HSCarousel },\n\t{ key: 'collapse', fn: HSCollapse },\n\t{ key: 'combobox', fn: HSComboBox },\n\t{ key: 'dropdown', fn: HSDropdown },\n\t{ key: 'input-number', fn: HSInputNumber },\n\t{ key: 'overlay', fn: HSOverlay },\n\t{ key: 'pin-input', fn: HSPinInput },\n\t{ key: 'remove-element', fn: HSRemoveElement },\n\t{ key: 'scrollspy', fn: HSScrollspy },\n\t{ key: 'select', fn: HSSelect },\n\t{ key: 'stepper', fn: HSStepper },\n\t{ key: 'strong-password', fn: HSStrongPassword },\n\t{ key: 'tabs', fn: HSTabs },\n\t{ key: 'toggle-count', fn: HSToggleCount },\n\t{ key: 'toggle-password', fn: HSTogglePassword },\n\t{ key: 'tooltip', fn: HSTooltip },\n];\n","/*\n * HSStaticMethods\n * @version: 2.1.0\n * @author: HTMLStream\n * @license: Licensed under MIT (https://preline.co/docs/license.html)\n * Copyright 2023 HTMLStream\n */\n\nimport { getClassProperty, afterTransition } from '../utils';\nimport { COLLECTIONS } from '../spa';\nimport { IStaticMethods } from './interfaces';\n\ndeclare global {\n\tinterface Window {\n\t\tHSStaticMethods: IStaticMethods;\n\t}\n}\n\nconst HSStaticMethods: IStaticMethods = {\n\tgetClassProperty,\n\tafterTransition,\n\tautoInit(collection: string | string[] = 'all') {\n\t\tif (collection === 'all') {\n\t\t\tCOLLECTIONS.forEach(({ fn }) => {\n\t\t\t\tfn?.autoInit();\n\t\t\t});\n\t\t} else {\n\t\t\tCOLLECTIONS.forEach(({ key, fn }) => {\n\t\t\t\tif (collection.includes(key)) fn?.autoInit();\n\t\t\t});\n\t\t}\n\t},\n};\n\nif (typeof window !== 'undefined') {\n\twindow.HSStaticMethods = HSStaticMethods;\n}\n\nexport default HSStaticMethods;\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, extend as v, deleteProps as w };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, d as now, v as extend, h as elementIndex, w as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n"],"names":["bind","fn","thisArg","apply","arguments","toString","Object","prototype","getPrototypeOf","kindOf","thing","str","call","cache","slice","toLowerCase","create","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","map","forEach","obj","allOwnKeys","i","l","length","keys","getOwnPropertyNames","len","key","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","hasOwnProperty","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","Math","random","callbacks","addEventListener","source","data","shift","cb","push","setTimeout","asap","queueMicrotask","process","nextTick","utils$1","isBuffer","constructor","isFormData","kind","FormData","append","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","this","assignValue","targetKey","extend","a","b","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","defineProperty","value","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","toUpperCase","noop","toFiniteNumber","defaultValue","Number","isFinite","isSpecCompliantForm","toJSONObject","stack","visit","target","reducedValue","isThenable","then","catch","AxiosError","message","code","config","request","response","captureStackTrace","status","utils","toJSON","description","number","fileName","lineNumber","columnNumber","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","join","predicates","test","toFormData","formData","options","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","buildURL","url","_encode","serialize","serializeFn","serializedParams","hashmarkIndex","encoder","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","h","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","platform$1","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","platform","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","e","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","defaults$1","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","get","tokens","tokensRE","parseTokens","has","matcher","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","targets","asStrings","first","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","configurable","buildAccessors","transformData","fns","AxiosHeaders","isCancel","__CANCEL__","CanceledError","AxiosError$1","ERR_CANCELED","settle","resolve","reject","ERR_BAD_REQUEST","floor","mapped","headerValue","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","speedometer","lastArgs","timer","timestamp","threshold","invoke","args","clearTimeout","throttle","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","progressEventDecorator","throttled","asyncDecorator","isURLSameOrigin","isMSIE","URL","protocol","host","port","userAgent","cookies","write","expires","domain","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","btoa","username","password","unescape","Boolean","xsrfValue","xhrAdapter","XMLHttpRequest","Promise","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","err","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","subscribe","aborted","parseProtocol","send","composeSignals","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","end","pos","readStream","async","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","body","duplex","supportsResponseStream","resolvers","res","_","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","size","_request","getBodyLength","knownAdapters","http","xhr","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","flush","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","opt","opts","desc","formatMessage","ERR_DEPRECATED","spelling","correctSpelling","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios$1","instanceConfig","interceptors","configOrUrl","dummy","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","Axios","generateHTTPMethod","isForm","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","instance","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","c","Cancel","all","promises","spread","callback","isAxiosError","payload","formToJSON","getAdapter","default","stringToBoolean","string","getClassProperty","getComputedStyle","getPropertyValue","isEnoughSpace","toggle","preferredPosition","space","wrapper","referenceRect","getBoundingClientRect","wrapperRect","viewportHeight","innerHeight","spaceAbove","top","spaceBelow","bottom","minimumSpaceRequired","clientHeight","isParentOrElementHidden","element","display","parentElement","debounce","func","dispatch","evt","CustomEvent","detail","bubbles","cancelable","composed","dispatchEvent","afterTransition","handleEvent","includes","htmlToElement","html","template","createElement","innerHTML","firstChild","classToClassList","splitter","action","cl","classList","add","menuSearchHistory","historyIndex","addHistory","existsInHistory","clearHistory","HSBasePlugin","events","createCollection","collection","_a","fireEvent","on","HSCopyMarkup","super","getAttribute","concatOptions","targetSelector","wrapperSelector","limit","items","init","$hsCopyMarkupCollection","setTarget","setWrapper","addPredefinedItems","copy","hasAttribute","setAttribute","copiedElement","cloneNode","addToItems","children","contains","querySelector","removeAttribute","item","deleteItemButton","before","delete","getInstance","isInstance","elInCollection","find","autoInit","querySelectorAll","elC","HSAccordion","group","closest","isAlwaysOpened","$hsAccordionCollection","stopPropagation","hide","show","style","height","scrollHeight","treeView","selectable","_el","toggleSelected","root","HSCarousel","_b","_c","currentIndex","loadingClasses","loadingClassesRemove","loadingClassesAdd","afterLoadingClassesAdd","isAutoPlay","speed","isInfiniteLoop","inner","slides","prev","sliderWidth","clientWidth","touchX","start","$hsCarouselCollection","calculateWidth","goToPrev","resetTimer","setTimer","goToNext","goTo","addCurrentClass","addDisabledClass","autoPlay","changedTouches","screenX","detectDirection","observeResize","ResizeObserver","recalculateWidth","observe","width","transform","setInterval","clearInterval","HSCollapse","contentId","dataset","hsCollapse","animationInProcess","$hsCollapseCollection","hideAllMegaMenuItems","POSITIONS","auto","right","left","DROPDOWN_ACCESSIBILITY_KEY_SET","TABS_ACCESSIBILITY_KEY_SET","SELECT_ACCESSIBILITY_KEY_SET","COMBO_BOX_ACCESSIBILITY_KEY_SET","BREAKPOINTS","sm","md","lg","xl","HSComboBox","gap","viewport","preventVisibility","apiUrl","apiDataPart","apiQuery","apiSearchQuery","apiHeaders","apiGroupField","outputItemTemplate","outputEmptyTemplate","outputLoaderTemplate","groupingType","groupingTitleTemplate","tabsWrapperTemplate","preventSelection","preventAutoPosition","isOpenOnFocus","input","output","itemsWrapper","tabs","toggleClose","toggleOpen","outputPlaceholder","selected","isOpened","isCurrent","selectedGroup","$hsComboBoxCollection","buildInput","setGroups","buildItems","recalculateDirection","buildToggle","buildToggleClose","buildToggleOpen","setResultAndRender","setResults","itemsFromJson","itemsFromHtml","resultItems","hasVisibleItems","destroyOutputPlaceholder","buildOutputPlaceholder","isItemExists","elI","isTextExists","lowerCased","v","isTextExistsAny","valuesBySelector","reduce","acc","cur","buildOutputLoader","outputLoader","zIndex","destroyOutputLoader","query","searchQuery","json","setApiGroups","groupTabsRender","jsonItemsRender","groups","title","innerText","newItems","newItem","textContent","attr","valueFrom","setSelectedByValue","appendItemsToWrapper","setCurrent","sortItems","sort","i1","i2","itemRender","plainRender","tabsScroll","tabsWrapper","insertBefore","tabDef","selectedTab","setItemsVisibility","tab","groupDefaultRender","f","setValue","g","setValueAndOpen","setValueAndClear","marginTop","marginBottom","evtTarget","closeCurrentlyOpened","accessibility","currentlyOpened","getPreparedItems","isReversed","reverse","setHighlighted","current","focus","metaKey","preventDefault","onEscape","onArrow","onStartEnd","onEnter","blur","isArrowUp","currentItem","currentInd","findIndex","isStart","opened","link","basePlacements","popper","variationPlacements","placement","placements","modifierPhases","getNodeName","nodeName","getWindow","node","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","applyStyles$1","enabled","phase","_ref","elements","styles","attributes","effect","_ref2","initialStyles","strategy","margin","arrow","reference","property","attribute","requires","getBasePlacement","max","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","offsetHeight","visualViewport","addVisualOffsets","x","offsetLeft","y","offsetTop","getLayoutRect","abs","parent","child","rootNode","getRootNode","isSameNode","parentNode","isTableElement","getDocumentElement","documentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mathMax","mathMin","mergePaddingObject","paddingObject","expandToHashMap","hashMap","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","passive","hash","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","pageXOffset","scrollTop","pageYOffset","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","listScrollParents","list","_element$ownerDocumen","scrollParent","isBody","updatedList","rectToClientRect","rect","getClientRectFromMixedType","clippingParent","layoutViewport","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","basePlacement","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","rects","clippingClientRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","offset","multiply","axis","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","order","modifiers","Map","visited","Set","modifier","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","areValidElements","_len","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","orderModifiers","existing","_ref$options","cleanupFn","noopFn","update","forceUpdate","_state$elements","reset","_state$orderedModifie","_state$orderedModifie2","destroy","onFirstUpdate","createPopper","_options$scroll","_options$resize","resize","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","applyStyles","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","HSDropdown","closers","menu","eventMode","closeMode","$hsDropdownCollection","disabled","onClickHandler","buildClosers","maxTouchPoints","onMouseEnterHandler","onMouseLeaveHandler","resizeHandler","_popper","forceClearState","destroyPopper","inset","absoluteStrategyModifiers","flip","parseInt","isAnimated","prevWidth","innerWidth","history","onFirstLetter","dropdown","links","getCurrentInd","charAt","targetClass","getClassPropertyAlt","HSInputNumber","increment","decrement","inputValue","isNaN","hsInputNumber","step","minInputValue","maxInputValue","$hsInputNumberCollection","buildIncrement","buildDecrement","changeValue","disableButtons","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","incrementedResult","decrementedResult","defaultResult","enableButtons","mode","tagName","HSOverlay","hiddenClass","isClosePrev","backdropClasses","backdropExtraClasses","openNextOverlay","autoHide","overlayId","overlay","isCloseWhenClickInside","isTabAccessibilityLimited","isLayoutAffect","hasAutofocus","hasAbilityToCloseOnBackdropClick","autoCloseBreakpoint","autoClose","openedBreakpoint","$hsOverlayCollection","setOpened","hideAuto","time","checkTimer","buildBackdrop","overlayClasses","overlayZIndex","backdropId","backdrop","closeOnBackdrop","disableBackdrop","startsWith","appendChild","destroyBackdrop","transitionDuration","parseFloat","focusElement","openedOverlays","disabledScroll","forceClose","closeFn","breakpoint","focusableElements","notHiddenFocusableElements","basicCheck","onTab","focused","focusedIndex","autoCloseResizeFn","setOpenedResizeFn","HSPinInput","currentValue","fill","placeholders","availableCharsRE","$hsPinInputCollection","buildInputItems","onFocusIn","onInput","onPaste","onKeydown","onFocusOut","checkIfNumber","autoFillAll","text","n","Event","setCurrentValue","toggleCompleted","originalValue","activeElement","clipboardData","getData","HSRemoveElement","removeTargetId","removeTarget","removeTargetAnimationClass","$hsRemoveElementCollection","HSSearchByJson","jsonUrl","minChars","dropdownTemplate","dropdownClasses","dropdownItemTemplate","dropdownItemTemplatesByType","dropdownItemClasses","highlightedTextTagName","highlightedTextClasses","fetchData","$hsSearchByJsonCollection","buildDropdown","searchData","after","itemTemplate","re","newTitle","newDescription","templateByType","markup","br","HSScrollspy","activeSection","sections","scrollableId","scrollable","$hsScrollspyCollection","section","scrollTo","globalOffset","userOffset","scrollableParentOffset","topOffset","parentLink","targetId","view","scrollFn","replaceState","behavior","beforeScroll","HSSelect","placeholder","hasSearch","preventSearchFocus","isMultiple","isDisabled","selectedItems","wrapperClasses","toggleTag","toggleClasses","toggleCountText","toggleCountTextMinItems","tagsItemTemplate","tagsItemClasses","tagsInputClasses","dropdownTag","dropdownDirectionClasses","dropdownSpace","searchWrapperTemplate","searchWrapperClasses","searchClasses","searchPlaceholder","searchNoResultText","searchNoResultClasses","optionTemplate","optionTag","optionClasses","extraMarkup","descriptionClasses","iconClasses","isAddTagOnEnter","selectOptions","tagsInputHelper","$hsSelectCollection","selectedOptions","values","buildWrapper","buildTags","buildExtraMarkup","tagsInput","appendMarkup","icon","toggleTextWrapper","setToggleIcon","setToggleTitle","stringFromValue","getItemByValue","img","titleText","buildTagsInput","setTagsItems","reassignTagsInputPlaceholder","calculateInputWidth","buildTagsItem","unselectMultipleItems","selectMultipleItems","searchOptions","addSelectOption","buildOption","click","resetTagsInputField","adjustInputWidth","buildSearch","searchWrapper","search","titleWrapper","iconWrapper","descriptionWrapper","onSelectOption","destroyOption","buildOriginalOption","destroyOriginalOption","buildTagsInputHelper","fontSize","fontFamily","fontWeight","letterSpacing","visibility","whiteSpace","inputPadding","paddingLeft","paddingRight","inputBorder","borderLeftWidth","borderRightWidth","newWidth","maxWidth","clearSelections","setNewValue","selectSingleItem","intersection","triggerChangeEventForNativeSelect","selectChangeEvent","removeSelectOption","searchNoResult","hasItems","toLocaleLowerCase","eraseToggleIcon","eraseToggleTitle","prepend","addOption","removeOption","_d","shiftKey","select","previousSibling","HSStepper","isCompleted","totalSteps","navItems","contentItems","$hsStepperCollection","buildNav","buildContent","buildButtons","setTotalSteps","getUncompletedSteps","inIncludedSkipped","isSkip","addNavItem","buildNavItem","setCurrentNavItem","handleNavItemClick","isFinal","isOptional","isProcessed","hasError","setCurrentNavItemActions","unsetCurrentNavItemActions","getNavItem","setProcessedNavItemActions","setErrorNavItemActions","setCurrentContentItem","checkForTheFirstStep","addContentItem","buildContentItem","finalContentItem","otherContentItems","setCurrentContentItemActions","unsetCurrentContentItemActions","hideAllContentItems","disableAll","currentNavItem","disableNavItemActions","enableNavItemActions","backBtn","nextBtn","skipBtn","completeStepBtn","finishBtn","resetBtn","buildBackButton","buildNextButton","buildSkipButton","buildCompleteStepButton","buildFinishButton","buildResetButton","handleBackButtonClick","currentContentItem","showSkipButton","showFinishButton","showCompleteStepButton","removeOptionalClasses","changeTextAndDisableCompleteButtonIfStepCompleted","setToDisabled","setToNonDisabled","unsetProcessedNavItemActions","handleNextButtonClick","infinite","nonCompletedSteps","handleSkipButtonClick","setSkipItem","targetNavItem","targetContentItem","setSkipItemActions","completeStepBtnDefaultText","handleCompleteStepButtonClick","completedText","setCompleteItem","setCompleteItemActions","setCompleted","handleFinishButtonClick","unsetCompleted","uncompletedSteps","uncompletedOrSkipSteps","handleResetButtonClick","setProcessedNavItem","unsetProcessedNavItem","setErrorNavItem","HSStrongPassword","strength","passedRules","hints","stripClasses","minLength","popoverSpace","checksExclude","availableChecks","specialCharactersSet","$hsStrongPasswordCollection","buildStrips","buildHints","setStrength","newStrip","weakness","rules","rule","ruleValue","buildWeakness","buildRules","checkStrength","setWeaknessText","setRulesText","weaknessText","weaknessTextToJson","checkIfPassed","togglePopover","popover","regexps","lowercase","uppercase","numbers","isRulePassed","uncheck","hideStrips","qty","HSTabs","toggles","extraToggleId","extraToggle","currentContentId","currentContent","prevContentId","prevContent","$hsTabsCollection","change","targetInCollection","isOpposite","focusedInd","HSThemeSwitch","theme","localStorage","getItem","themeSet","$hsThemeSwitchCollection","setAppearance","setResetStyles","addSystemThemeObserver","matchMedia","removeSystemThemeObserver","isSaveToLocalStorage","isSetDispatchEvent","resetStyles","setItem","toggleObserveSystemTheme","switchTheme","checked","HSToggleCount","duration","isChecked","$hsToggleCountCollection","countUp","countDown","animate","to","startTimestamp","requestAnimationFrame","HSTogglePassword","isShown","eventType","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","$hsTogglePasswordCollection","getMultipleToggles","togglesInCollection","HSTooltip","preventPopper","$hsTooltipCollection","enter","leave","buildPopper","handle","popperInstance","COLLECTIONS","HSStaticMethods","src","ssrDocument","getElementById","createEvent","initEvent","childNodes","getElementsByTagName","createElementNS","importNode","hostname","pathname","getDocument","doc","ssrWindow","pushState","go","back","Image","screen","cancelAnimationFrame","delay","getTranslate","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","o","noExtend","nextSource","nodeType","keysArray","nextIndex","nextKey","getOwnPropertyDescriptor","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","startPosition","translate","startTime","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","getTime","easeProgress","cos","PI","currentPosition","elementChildren","selector","showWarning","tag","classesToTokens","elementStyle","elementIndex","elementOuterSize","includeMargins","support","deviceCached","browser","getSupport","smoothScroll","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","major","minor","num","isWebView","isSafariBrowser","need3dFix","calcBrowser","toggleSlideClasses$1","slideEl","condition","className","toggleSlideClasses","processLazyPreloader","imageEl","destroyed","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","unlazy","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","column","slideIndexLastInView","rewind","loop","realIndex","transitionEmit","runCallbacks","previousIndex","emit","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","onTouchStart","originalEvent","touchEventsData","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","pointerType","animating","preventInteractionOnTransition","cssMode","loopFix","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","found","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","allowThresholdMove","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","rtlTranslate","rtl","targetTouch","t","preventedByNestedSwiper","touchReleaseOnEdges","maxTranslate","minTranslate","previousX","previousY","diffX","diffY","sqrt","touchAngle","isHorizontal","atan2","preventTouchMoveFromPointerMove","touchMoveStopPropagation","nested","diff","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","allowSlideNext","allowSlidePrev","startTranslate","setTransition","bySwiperTouchMove","allowMomentumBounce","grabCursor","setGrabCursor","currentTranslate","loopSwapReset","disableParentSwiper","resistanceRatio","centeredSlides","slidesSizesGrid","setTranslate","activeSlideIndex","resistance","followFinger","watchSlidesProgress","updateActiveIndex","updateSlidesClasses","updateProgress","onTouchEnd","slidesGrid","touchEndTime","timeDiff","pathTree","updateClickedSlide","lastClickTime","currentPos","swipeToLast","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","rewindFirstIndex","rewindLastIndex","isBeginning","virtual","isEnd","ratio","longSwipesMs","longSwipes","slideTo","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","snapGrid","isVirtual","updateSlides","isVirtualLoop","slideToLoop","autoplay","running","paused","resizeTimeout","resume","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","newProgress","previousTranslate","translatesDiff","onLoad","autoHeight","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","updateOnWindowResize","isGridEnabled","swiperElementNodeName","initialSlide","resizeObserver","createElements","eventsPrefix","setWrapperSize","virtualTranslate","breakpointsBase","spaceBetween","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","uniqueNavElements","slideToClickedSlide","loopAddBlankSlides","loopAdditionalSlides","loopPreventsSliding","passiveListeners","maxBackfaceHiddenSlides","containerModifierClass","slideBlankClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","eventsEmitter","handler","priority","eventsListeners","once","onceHandler","off","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","_len2","_key2","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","wrongRTL","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","boxSizing","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slidesBefore","slidesAfter","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","getSlideIndexByData","visibleSlides","minusOffset","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","originalProgress","multiplier","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","getFilteredSlide","activeSlide","prevSlide","nextSlide","nextEls","nextElementSibling","elementNextAll","prevEls","previousElementSibling","elementPrevAll","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","initialized","pathEl","slideFound","clickedSlide","clickedIndex","byController","translateTo","translateBounds","internal","newTranslate","isH","onTranslateToWrapperTransitionEnd","transition","transitionDelay","transitionStart","transitionEnd","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","_immediateVirtual","_cssModeVirtualInitialSet","onSlideToWrapperTransitionEnd","newIndex","targetSlideIndex","cols","needLoopFix","slideRealIndex","slideNext","perGroup","_clientLeft","slidePrev","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","recalcSlides","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","currentSlideTranslate","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","moving","isLocked","cursor","unsetGrabCursor","attachEvents","detachEvents","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","points","point","minRatio","substr","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","prefix","resultClasses","prepareClasses","autoheight","centered","removeClasses","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","cls","getSlideClasses","updates","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","getWrapper","slideSlots","hostEl","lazyElements","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","module","prototypeGroup","protoMethod","observer","animationFrame","orientationChangeHandler","contentBoxSize","contentRect","inlineSize","blockSize","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observeParents","observeSlideChildren","containerParents","parents","elementParents","disconnect"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131]}