{"version":3,"file":"js/containers/advancedHotspots.js","mappings":"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","sources":["webpack://Worthington/webpack/bootstrap","webpack://Worthington/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://Worthington/webpack/runtime/global","webpack://Worthington/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://Worthington/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://Worthington/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://Worthington/./js/vue/components/hotspotComponents/Hotspot.vue?bbef","webpack://Worthington/./js/vue/components/hotspotComponents/Hotspot.vue","webpack://Worthington/./js/vue/components/hotspotComponents/Hotspot.vue?5124","webpack://Worthington/./js/vue/components/hotspotComponents/HotspotScene.vue?ef79","webpack://Worthington/./js/vue/components/hotspotComponents/HotspotScene.vue","webpack://Worthington/./js/vue/components/hotspotComponents/HotspotScene.vue?c8ff","webpack://Worthington/./js/vue/components/hotspotComponents/SceneTab.vue?7ebd","webpack://Worthington/./js/vue/components/hotspotComponents/SceneTab.vue","webpack://Worthington/./js/vue/components/hotspotComponents/SceneTab.vue?8446","webpack://Worthington/./node_modules/ssr-window/ssr-window.esm.js","webpack://Worthington/./node_modules/dom7/dom7.esm.js","webpack://Worthington/./node_modules/swiper/shared/dom.js","webpack://Worthington/./node_modules/swiper/shared/utils.js","webpack://Worthington/./node_modules/swiper/shared/get-support.js","webpack://Worthington/./node_modules/swiper/shared/get-device.js","webpack://Worthington/./node_modules/swiper/shared/get-browser.js","webpack://Worthington/./node_modules/swiper/core/events-emitter.js","webpack://Worthington/./node_modules/swiper/core/update/index.js","webpack://Worthington/./node_modules/swiper/core/update/updateSize.js","webpack://Worthington/./node_modules/swiper/core/update/updateSlides.js","webpack://Worthington/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://Worthington/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://Worthington/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://Worthington/./node_modules/swiper/core/update/updateProgress.js","webpack://Worthington/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://Worthington/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://Worthington/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://Worthington/./node_modules/swiper/core/transition/transitionEmit.js","webpack://Worthington/./node_modules/swiper/core/slide/index.js","webpack://Worthington/./node_modules/swiper/core/slide/slideTo.js","webpack://Worthington/./node_modules/swiper/core/slide/slideToLoop.js","webpack://Worthington/./node_modules/swiper/core/slide/slideNext.js","webpack://Worthington/./node_modules/swiper/core/slide/slidePrev.js","webpack://Worthington/./node_modules/swiper/core/slide/slideReset.js","webpack://Worthington/./node_modules/swiper/core/slide/slideToClosest.js","webpack://Worthington/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://Worthington/./node_modules/swiper/core/loop/index.js","webpack://Worthington/./node_modules/swiper/core/loop/loopCreate.js","webpack://Worthington/./node_modules/swiper/core/loop/loopFix.js","webpack://Worthington/./node_modules/swiper/core/loop/loopDestroy.js","webpack://Worthington/./node_modules/swiper/core/events/onTouchStart.js","webpack://Worthington/./node_modules/swiper/core/events/onTouchMove.js","webpack://Worthington/./node_modules/swiper/core/events/onTouchEnd.js","webpack://Worthington/./node_modules/swiper/core/events/onResize.js","webpack://Worthington/./node_modules/swiper/core/events/onClick.js","webpack://Worthington/./node_modules/swiper/core/events/onScroll.js","webpack://Worthington/./node_modules/swiper/core/events/index.js","webpack://Worthington/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://Worthington/./node_modules/swiper/core/classes/index.js","webpack://Worthington/./node_modules/swiper/core/classes/addClasses.js","webpack://Worthington/./node_modules/swiper/core/classes/removeClasses.js","webpack://Worthington/./node_modules/swiper/core/defaults.js","webpack://Worthington/./node_modules/swiper/core/moduleExtendParams.js","webpack://Worthington/./node_modules/swiper/core/core.js","webpack://Worthington/./node_modules/swiper/core/translate/index.js","webpack://Worthington/./node_modules/swiper/core/translate/getTranslate.js","webpack://Worthington/./node_modules/swiper/core/translate/setTranslate.js","webpack://Worthington/./node_modules/swiper/core/translate/minTranslate.js","webpack://Worthington/./node_modules/swiper/core/translate/maxTranslate.js","webpack://Worthington/./node_modules/swiper/core/translate/translateTo.js","webpack://Worthington/./node_modules/swiper/core/transition/index.js","webpack://Worthington/./node_modules/swiper/core/transition/setTransition.js","webpack://Worthington/./node_modules/swiper/core/transition/transitionStart.js","webpack://Worthington/./node_modules/swiper/core/transition/transitionEnd.js","webpack://Worthington/./node_modules/swiper/core/grab-cursor/index.js","webpack://Worthington/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://Worthington/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://Worthington/./node_modules/swiper/core/breakpoints/index.js","webpack://Worthington/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://Worthington/./node_modules/swiper/core/check-overflow/index.js","webpack://Worthington/./node_modules/swiper/core/images/index.js","webpack://Worthington/./node_modules/swiper/core/images/loadImage.js","webpack://Worthington/./node_modules/swiper/core/images/preloadImages.js","webpack://Worthington/./node_modules/swiper/core/modules/resize/resize.js","webpack://Worthington/./node_modules/swiper/core/modules/observer/observer.js","webpack://Worthington/./node_modules/swiper/modules/navigation/navigation.js","webpack://Worthington/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://Worthington/./node_modules/swiper/vue/utils.js","webpack://Worthington/./node_modules/swiper/vue/params-list.js","webpack://Worthington/./node_modules/swiper/vue/get-params.js","webpack://Worthington/./node_modules/swiper/vue/loop.js","webpack://Worthington/./node_modules/swiper/vue/get-children.js","webpack://Worthington/./node_modules/swiper/vue/swiper.js","webpack://Worthington/./node_modules/swiper/vue/init-swiper.js","webpack://Worthington/./node_modules/swiper/vue/virtual.js","webpack://Worthington/./node_modules/swiper/vue/get-changed-params.js","webpack://Worthington/./node_modules/swiper/vue/update-swiper.js","webpack://Worthington/./node_modules/swiper/vue/swiper-slide.js","webpack://Worthington/./node_modules/uuid/dist/esm-browser/native.js","webpack://Worthington/./node_modules/uuid/dist/esm-browser/rng.js","webpack://Worthington/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://Worthington/./node_modules/uuid/dist/esm-browser/v4.js","webpack://Worthington/./js/vue/components/hotspotComponents/ModalHotspot.vue?acb9","webpack://Worthington/./js/vue/components/hotspotComponents/ModalHotspot.vue","webpack://Worthington/./js/vue/components/hotspotComponents/ModalHotspot.vue?4e22","webpack://Worthington/./js/vue/components/hotspotComponents/HotspotContent.vue?074e","webpack://Worthington/./js/vue/components/hotspotComponents/HotspotContent.vue","webpack://Worthington/./js/vue/components/hotspotComponents/HotspotContent.vue?92fa","webpack://Worthington/./js/vue/components/hotspotComponents/HotspotsModal.vue?64c6","webpack://Worthington/./js/vue/components/hotspotComponents/HotspotsModal.vue","webpack://Worthington/./js/vue/components/hotspotComponents/HotspotsModal.vue?a261","webpack://Worthington/./js/vue/containers/AdvancedHotspots.vue?dac8","webpack://Worthington/./js/vue/containers/AdvancedHotspots.vue?3fbc","webpack://Worthington/./js/vue/containers/AdvancedHotspots.vue","webpack://Worthington/./js/containers/advancedHotspots.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","/**\n* @vue/reactivity v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst deferredComputed = computed;\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\"\n};\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","/**\n* @vue/runtime-core v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, isShallow, isReactive, ReactiveEffect, getCurrentScope, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, customRef, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.effect.dirty = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.effect.dirty = true;\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \r\n","import script from \"./Hotspot.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./Hotspot.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"hotspot-scene__caption\"\n}\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = [\"innerHTML\"]\nconst _hoisted_4 = { class: \"hotspot-scene__wrap\" }\nconst _hoisted_5 = { class: \"hotspot-scene__image-container\" }\nconst _hoisted_6 = { class: \"hotspot-scene__image-wrap\" }\nconst _hoisted_7 = [\"src\"]\n\nimport { computed, ref, watch } from 'vue';\r\n\r\nimport Hotspot from 'Vue/components/hotspotComponents/Hotspot.vue';\r\nimport { HotspotPlacement } from 'Interfaces/interfaces';\r\nconst componentName = 'HotspotScene';\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'HotspotScene',\n props: {\r\n\tbackgroundImage: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\tcaption: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\tcaptionTitle: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\tdisplayTitle: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\tactiveIndex: {\r\n\t\ttype: Number,\r\n\t\tdefault: 0\r\n\t},\r\n\thotspotPlacements: {\r\n\t\ttype: Array as () => HotspotPlacement[],\r\n\t\tdefault: []\r\n\t},\r\n\ttitle: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\tmodalVisible: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\tid: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\tsceneAssociatedColor: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t}\r\n},\n emits: ['modalVisibilityUpdated','updateActiveHotspotIndex'],\n setup(__props, { emit: __emit }) {\n\r\nconst emit = __emit;\r\nconst activeHotspotIndex = ref(0);\r\nconst primaryImage = ref(null);\r\nconst props = __props;\r\n\r\n\r\nconst hotspotPlacements = computed(() => {\r\n\tlet hotspotsArray = [];\r\n\tprops.hotspotPlacements.forEach((hotspotPlacement) => {\r\n\t\thotspotsArray.push(hotspotPlacement);\r\n\t})\r\n\r\n\treturn hotspotsArray;\r\n});\r\n\r\nwatch(() => props.activeIndex, (newValue) => {\r\n\tprimaryImage.value.classList.remove('animate__fadeInRight');\r\n\tprimaryImage.value.classList.add('animate__fadeInRight');\r\n});\r\n\r\n\r\nconst updateActiveHotspotIndex = (indexValue) => {\r\n\temit('updateActiveHotspotIndex', indexValue);\r\n}\r\n\r\nconst openFirstHotspot = () => {\r\n\temit('updateActiveHotspotIndex', 0);\r\n\temit('modalVisibilityUpdated', true);\r\n}\r\n\r\nconst modalVisibilityUpdated = (value) => {\r\n\temit('modalVisibilityUpdated', value);\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (__props.captionTitle || __props.caption)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (__props.captionTitle)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"hotspot-scene__caption-title\",\n innerHTML: __props.captionTitle\n }, null, 8 /* PROPS */, _hoisted_2))\n : _createCommentVNode(\"v-if\", true),\n (__props.caption)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"hotspot-scene__caption-body\",\n innerHTML: __props.caption\n }, null, 8 /* PROPS */, _hoisted_3))\n : _createCommentVNode(\"v-if\", true)\n ]))\n : _createCommentVNode(\"v-if\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"img\", {\n src: __props.backgroundImage,\n alt: \"scene background\",\n class: \"hotspot-scene__image animate__animated\",\n ref_key: \"primaryImage\",\n ref: primaryImage,\n onClick: openFirstHotspot\n }, null, 8 /* PROPS */, _hoisted_7),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(hotspotPlacements.value, (hotspot, index) => {\n return (_openBlock(), _createBlock(Hotspot, {\n key: hotspot.Title,\n topPositionY: hotspot.TopPosition,\n leftPositionX: hotspot.LeftPosition,\n index: index,\n displayTitle: __props.displayTitle,\n modalVisible: __props.modalVisible,\n hotspotPlacementsLength: hotspotPlacements.value?.length,\n color: hotspot.HotspotColorOverride ? hotspot.HotspotColorOverride : __props.sceneAssociatedColor,\n onModalVisibilityUpdated: modalVisibilityUpdated,\n onUpdateActiveHotspotIndex: updateActiveHotspotIndex,\n hotspots: hotspot.SelectHotspot\n }, null, 8 /* PROPS */, [\"topPositionY\", \"leftPositionX\", \"index\", \"displayTitle\", \"modalVisible\", \"hotspotPlacementsLength\", \"color\", \"hotspots\"]))\n }), 128 /* KEYED_FRAGMENT */))\n ])\n ])\n ])\n ], 64 /* STABLE_FRAGMENT */))\n}\n}\n\n})","\r\n\r\n\r\n","import script from \"./HotspotScene.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./HotspotScene.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { withModifiers as _withModifiers, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"innerHTML\"]\n\nimport {computed, watch, ref} from 'vue';\r\n\r\nimport {Scene} from 'Interfaces/interfaces';\r\nconst componentName = 'SceneTab';\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SceneTab',\n props: {\r\n\ttabName: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\tscene: {\r\n\t\ttype: Object as () => Scene,\r\n\t\tdefault: () => ({})\r\n\t},\r\n\tindex: {\r\n\t\ttype: Number,\r\n\t\tdefault: 0\r\n\t},\r\n\tsceneAssociatedColor: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t},\r\n\tactiveIndex: {\r\n\t\ttype: Number,\r\n\t\tdefault: 0\r\n\t}\r\n},\n emits: ['updateVisibleSceneIndex', 'updateChosenScene', 'scrollUpdate'],\n setup(__props, { emit: __emit }) {\n\r\nconst emit = __emit;\r\nconst hovering = ref(false);\r\nconst props = __props;\r\n\r\nconst isDarkColor = (hexColor) => {\r\n\t// Remove the '#' if it's present\r\n\thexColor = hexColor.replace('#', '');\r\n\r\n\t// Convert hex to RGB\r\n\tconst r = parseInt(hexColor.substr(0, 2), 16);\r\n\tconst g = parseInt(hexColor.substr(2, 2), 16);\r\n\tconst b = parseInt(hexColor.substr(4, 2), 16);\r\n\tconst brightness = (r * 0.299 + g * 0.587 + b * 0.114) / 255;\r\n\r\n\t// If brightness is less than or equal to 0.5, color is considered dark\r\n\treturn brightness <= 0.5;\r\n}\r\n\r\nconst isDark = computed(() => {\r\n\treturn isDarkColor(props.sceneAssociatedColor);\r\n})\r\n\r\nconst updateVisibleSceneIndex = () => {\r\n\temit('scrollUpdate');\r\n\temit('updateChosenScene', props.scene);\r\n\temit('updateVisibleSceneIndex', props.index);\r\n}\r\n\r\nconst style = computed(() => {\r\n\tlet backgroundColor = hovering.value || buttonIsActive.value ? props.sceneAssociatedColor : 'white';\r\n\tlet color = hovering.value && isDark.value ? 'white' : 'black';\r\n\r\n\t// If buttonIsActive is true, check isDark value for color\r\n\tif (buttonIsActive.value) {\r\n\t\tcolor = isDark.value ? 'white' : 'black';\r\n\t}\r\n\r\n\treturn `background-color: ${backgroundColor}; color: ${color};`;\r\n});\r\n\r\nconst mouseenter = () => {\r\n\thovering.value = true;\r\n};\r\n\r\nconst buttonIsActive = computed(() => {\r\n\treturn props.index === props.activeIndex;\r\n});\r\n\r\nconst mouseleave = () => {\r\n\thovering.value = false;\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n class: \"hotspot-scene__tab\",\n type: \"button\",\n onClick: _withModifiers(updateVisibleSceneIndex, [\"prevent\"]),\n style: _normalizeStyle(style.value),\n onMouseenter: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (mouseenter()), [\"prevent\"])),\n onMouseleave: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (mouseleave()), [\"prevent\"])),\n innerHTML: __props.tabName\n }, null, 44 /* STYLE, PROPS, NEED_HYDRATION */, _hoisted_1))\n}\n}\n\n})","\r\n\r\n\r\n","import script from \"./SceneTab.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SceneTab.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","/**\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 &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\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}\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 { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionStart(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\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 }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, transitionStart, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\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\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\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\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\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\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\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\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\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\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\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\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\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\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\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\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'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\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 } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\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\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\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\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\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\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\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\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\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};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('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}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\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\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\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 = $wrapperEl.children(`.${swiper.params.slideClass}`);\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\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\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\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\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\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(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\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\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\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\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\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.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\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 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\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.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\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n}","export default function 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\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(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 } // Find new height from highest slide in view\n\n\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 } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\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; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\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 } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\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\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\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\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('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\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\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\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\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\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\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\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 } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = 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\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\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\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\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\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\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\n if (params.rewind && swiper.isBeginning) {\n return swiper.slideTo(swiper.slides.length - 1, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\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\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\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\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\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}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\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 = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\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 return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\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\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function 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 let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\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\n return;\n }\n\n if (data.isTouchEvent && 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\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\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\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\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\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\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\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\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\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 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 swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function 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\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\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\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\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\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\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 wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function 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}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\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 }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default {\n init: true,\n direction: 'horizontal',\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 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 // 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: 0,\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 // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: 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 // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\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\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\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\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\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 }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\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\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\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\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\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 // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\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: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\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'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\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\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\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(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\n slidesPerViewDynamic(view = 'current', exact = false) {\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\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\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\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\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\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\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(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\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\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'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\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]);\nexport default Swiper;","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\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; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\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\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\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\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\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}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\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\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\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\n return breakpoint || 'max';\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\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\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\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\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\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}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\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 (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\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: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n Object.assign(swiper.navigation, {\n update,\n init,\n destroy\n });\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).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 if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(props = {}) {\n return props.navigation && typeof props.navigation.nextEl === 'undefined' && typeof props.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(props = {}) {\n return props.pagination && typeof props.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(props = {}) {\n return props.scrollbar && typeof props.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj = {}) {\n const params = {\n on: {}\n };\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, '')); // Prevent empty Object.keys(obj) array on ios.\n\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest\n };\n}\n\nexport { getParams };","import { h } from 'vue';\nimport Swiper from 'swiper';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiperRef, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n if (!child.props) child.props = {};\n child.props.swiperRef = swiperRef;\n child.props['data-swiper-slide-index'] = index;\n return child;\n });\n\n function duplicateSlide(child, index, position) {\n if (!child.props) child.props = {};\n return h(child.type, { ...child.props,\n key: `${child.key}-duplicate-${index}-${position}`,\n class: `${child.props.className || ''} ${swiperParams.slideDuplicateClass} ${child.props.class || ''}`\n }, child.children);\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = h('div', {\n class: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n modifiedSlides.forEach((child, index) => {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiperRef.value) {\n swiperRef.value.loopedSlides = loopedSlides;\n }\n\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","function getChildren(originalSlots = {}, slidesRef, oldSlidesRef) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n\n const getSlidesFromElements = (els, slotName) => {\n if (!Array.isArray(els)) {\n return;\n }\n\n els.forEach(vnode => {\n const isFragment = typeof vnode.type === 'symbol';\n if (slotName === 'default') slotName = 'container-end';\n\n if (isFragment && vnode.children) {\n getSlidesFromElements(vnode.children, 'default');\n } else if (vnode.type && (vnode.type.name === 'SwiperSlide' || vnode.type.name === 'AsyncComponentWrapper')) {\n slides.push(vnode);\n } else if (slots[slotName]) {\n slots[slotName].push(vnode);\n }\n });\n };\n\n Object.keys(originalSlots).forEach(slotName => {\n const els = originalSlots[slotName]();\n getSlidesFromElements(els, slotName);\n });\n oldSlidesRef.value = slidesRef.value;\n slidesRef.value = slides;\n return {\n slides,\n slots\n };\n}\n\nexport { getChildren };","import { h, ref, onMounted, onUpdated, onBeforeUnmount, watch, nextTick } from 'vue';\nimport { getParams } from './get-params.js';\nimport { initSwiper, mountSwiper } from './init-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from './get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from './update-swiper.js';\nimport { renderVirtual, updateOnVirtualData } from './virtual.js';\nconst Swiper = {\n name: 'Swiper',\n props: {\n tag: {\n type: String,\n default: 'div'\n },\n wrapperTag: {\n type: String,\n default: 'div'\n },\n modules: {\n type: Array,\n default: undefined\n },\n init: {\n type: Boolean,\n default: undefined\n },\n direction: {\n type: String,\n default: undefined\n },\n touchEventsTarget: {\n type: String,\n default: undefined\n },\n initialSlide: {\n type: Number,\n default: undefined\n },\n speed: {\n type: Number,\n default: undefined\n },\n cssMode: {\n type: Boolean,\n default: undefined\n },\n updateOnWindowResize: {\n type: Boolean,\n default: undefined\n },\n resizeObserver: {\n type: Boolean,\n default: undefined\n },\n nested: {\n type: Boolean,\n default: undefined\n },\n focusableElements: {\n type: String,\n default: undefined\n },\n width: {\n type: Number,\n default: undefined\n },\n height: {\n type: Number,\n default: undefined\n },\n preventInteractionOnTransition: {\n type: Boolean,\n default: undefined\n },\n userAgent: {\n type: String,\n default: undefined\n },\n url: {\n type: String,\n default: undefined\n },\n edgeSwipeDetection: {\n type: [Boolean, String],\n default: undefined\n },\n edgeSwipeThreshold: {\n type: Number,\n default: undefined\n },\n autoHeight: {\n type: Boolean,\n default: undefined\n },\n setWrapperSize: {\n type: Boolean,\n default: undefined\n },\n virtualTranslate: {\n type: Boolean,\n default: undefined\n },\n effect: {\n type: String,\n default: undefined\n },\n breakpoints: {\n type: Object,\n default: undefined\n },\n spaceBetween: {\n type: Number,\n default: undefined\n },\n slidesPerView: {\n type: [Number, String],\n default: undefined\n },\n slidesPerGroup: {\n type: Number,\n default: undefined\n },\n slidesPerGroupSkip: {\n type: Number,\n default: undefined\n },\n slidesPerGroupAuto: {\n type: Boolean,\n default: undefined\n },\n centeredSlides: {\n type: Boolean,\n default: undefined\n },\n centeredSlidesBounds: {\n type: Boolean,\n default: undefined\n },\n slidesOffsetBefore: {\n type: Number,\n default: undefined\n },\n slidesOffsetAfter: {\n type: Number,\n default: undefined\n },\n normalizeSlideIndex: {\n type: Boolean,\n default: undefined\n },\n centerInsufficientSlides: {\n type: Boolean,\n default: undefined\n },\n watchOverflow: {\n type: Boolean,\n default: undefined\n },\n roundLengths: {\n type: Boolean,\n default: undefined\n },\n touchRatio: {\n type: Number,\n default: undefined\n },\n touchAngle: {\n type: Number,\n default: undefined\n },\n simulateTouch: {\n type: Boolean,\n default: undefined\n },\n shortSwipes: {\n type: Boolean,\n default: undefined\n },\n longSwipes: {\n type: Boolean,\n default: undefined\n },\n longSwipesRatio: {\n type: Number,\n default: undefined\n },\n longSwipesMs: {\n type: Number,\n default: undefined\n },\n followFinger: {\n type: Boolean,\n default: undefined\n },\n allowTouchMove: {\n type: Boolean,\n default: undefined\n },\n threshold: {\n type: Number,\n default: undefined\n },\n touchMoveStopPropagation: {\n type: Boolean,\n default: undefined\n },\n touchStartPreventDefault: {\n type: Boolean,\n default: undefined\n },\n touchStartForcePreventDefault: {\n type: Boolean,\n default: undefined\n },\n touchReleaseOnEdges: {\n type: Boolean,\n default: undefined\n },\n uniqueNavElements: {\n type: Boolean,\n default: undefined\n },\n resistance: {\n type: Boolean,\n default: undefined\n },\n resistanceRatio: {\n type: Number,\n default: undefined\n },\n watchSlidesProgress: {\n type: Boolean,\n default: undefined\n },\n grabCursor: {\n type: Boolean,\n default: undefined\n },\n preventClicks: {\n type: Boolean,\n default: undefined\n },\n preventClicksPropagation: {\n type: Boolean,\n default: undefined\n },\n slideToClickedSlide: {\n type: Boolean,\n default: undefined\n },\n preloadImages: {\n type: Boolean,\n default: undefined\n },\n updateOnImagesReady: {\n type: Boolean,\n default: undefined\n },\n loop: {\n type: Boolean,\n default: undefined\n },\n loopAdditionalSlides: {\n type: Number,\n default: undefined\n },\n loopedSlides: {\n type: Number,\n default: undefined\n },\n loopFillGroupWithBlank: {\n type: Boolean,\n default: undefined\n },\n loopPreventsSlide: {\n type: Boolean,\n default: undefined\n },\n rewind: {\n type: Boolean,\n default: undefined\n },\n allowSlidePrev: {\n type: Boolean,\n default: undefined\n },\n allowSlideNext: {\n type: Boolean,\n default: undefined\n },\n swipeHandler: {\n type: Boolean,\n default: undefined\n },\n noSwiping: {\n type: Boolean,\n default: undefined\n },\n noSwipingClass: {\n type: String,\n default: undefined\n },\n noSwipingSelector: {\n type: String,\n default: undefined\n },\n passiveListeners: {\n type: Boolean,\n default: undefined\n },\n containerModifierClass: {\n type: String,\n default: undefined\n },\n slideClass: {\n type: String,\n default: undefined\n },\n slideBlankClass: {\n type: String,\n default: undefined\n },\n slideActiveClass: {\n type: String,\n default: undefined\n },\n slideDuplicateActiveClass: {\n type: String,\n default: undefined\n },\n slideVisibleClass: {\n type: String,\n default: undefined\n },\n slideDuplicateClass: {\n type: String,\n default: undefined\n },\n slideNextClass: {\n type: String,\n default: undefined\n },\n slideDuplicateNextClass: {\n type: String,\n default: undefined\n },\n slidePrevClass: {\n type: String,\n default: undefined\n },\n slideDuplicatePrevClass: {\n type: String,\n default: undefined\n },\n wrapperClass: {\n type: String,\n default: undefined\n },\n runCallbacksOnInit: {\n type: Boolean,\n default: undefined\n },\n observer: {\n type: Boolean,\n default: undefined\n },\n observeParents: {\n type: Boolean,\n default: undefined\n },\n observeSlideChildren: {\n type: Boolean,\n default: undefined\n },\n a11y: {\n type: [Boolean, Object],\n default: undefined\n },\n autoplay: {\n type: [Boolean, Object],\n default: undefined\n },\n controller: {\n type: Object,\n default: undefined\n },\n coverflowEffect: {\n type: Object,\n default: undefined\n },\n cubeEffect: {\n type: Object,\n default: undefined\n },\n fadeEffect: {\n type: Object,\n default: undefined\n },\n flipEffect: {\n type: Object,\n default: undefined\n },\n creativeEffect: {\n type: Object,\n default: undefined\n },\n cardsEffect: {\n type: Object,\n default: undefined\n },\n hashNavigation: {\n type: [Boolean, Object],\n default: undefined\n },\n history: {\n type: [Boolean, Object],\n default: undefined\n },\n keyboard: {\n type: [Boolean, Object],\n default: undefined\n },\n lazy: {\n type: [Boolean, Object],\n default: undefined\n },\n mousewheel: {\n type: [Boolean, Object],\n default: undefined\n },\n navigation: {\n type: [Boolean, Object],\n default: undefined\n },\n pagination: {\n type: [Boolean, Object],\n default: undefined\n },\n parallax: {\n type: [Boolean, Object],\n default: undefined\n },\n scrollbar: {\n type: [Boolean, Object],\n default: undefined\n },\n thumbs: {\n type: Object,\n default: undefined\n },\n virtual: {\n type: [Boolean, Object],\n default: undefined\n },\n zoom: {\n type: [Boolean, Object],\n default: undefined\n },\n grid: {\n type: [Object],\n default: undefined\n },\n freeMode: {\n type: [Boolean, Object],\n default: undefined\n }\n },\n emits: ['_beforeBreakpoint', '_containerClasses', '_slideClass', '_slideClasses', '_swiper', 'activeIndexChange', 'afterInit', 'autoplay', 'autoplayStart', 'autoplayStop', 'beforeDestroy', 'beforeInit', 'beforeLoopFix', 'beforeResize', 'beforeSlideChangeStart', 'beforeTransitionStart', 'breakpoint', 'changeDirection', 'click', 'disable', 'doubleTap', 'doubleClick', 'destroy', 'enable', 'fromEdge', 'hashChange', 'hashSet', 'imagesReady', 'init', 'keyPress', 'lazyImageLoad', 'lazyImageReady', 'lock', 'loopFix', 'momentumBounce', 'navigationHide', 'navigationShow', 'observerUpdate', 'orientationchange', 'paginationHide', 'paginationRender', 'paginationShow', 'paginationUpdate', 'progress', 'reachBeginning', 'reachEnd', 'realIndexChange', 'resize', 'scroll', 'scrollbarDragEnd', 'scrollbarDragMove', 'scrollbarDragStart', 'setTransition', 'setTranslate', 'slideChange', 'slideChangeTransitionEnd', 'slideChangeTransitionStart', 'slideNextTransitionEnd', 'slideNextTransitionStart', 'slidePrevTransitionEnd', 'slidePrevTransitionStart', 'slideResetTransitionStart', 'slideResetTransitionEnd', 'sliderMove', 'sliderFirstMove', 'slidesLengthChange', 'slidesGridLengthChange', 'snapGridLengthChange', 'snapIndexChange', 'swiper', 'tap', 'toEdge', 'touchEnd', 'touchMove', 'touchMoveOpposite', 'touchStart', 'transitionEnd', 'transitionStart', 'unlock', 'update', 'zoomChange'],\n\n setup(props, {\n slots: originalSlots,\n emit\n }) {\n const {\n tag: Tag,\n wrapperTag: WrapperTag\n } = props;\n const containerClasses = ref('swiper');\n const virtualData = ref(null);\n const breakpointChanged = ref(false);\n const initializedRef = ref(false);\n const swiperElRef = ref(null);\n const swiperRef = ref(null);\n const oldPassedParamsRef = ref(null);\n const slidesRef = {\n value: []\n };\n const oldSlidesRef = {\n value: []\n };\n const nextElRef = ref(null);\n const prevElRef = ref(null);\n const paginationElRef = ref(null);\n const scrollbarElRef = ref(null);\n const {\n params: swiperParams,\n passedParams\n } = getParams(props);\n getChildren(originalSlots, slidesRef, oldSlidesRef);\n oldPassedParamsRef.value = passedParams;\n oldSlidesRef.value = slidesRef.value;\n\n const onBeforeBreakpoint = () => {\n getChildren(originalSlots, slidesRef, oldSlidesRef);\n breakpointChanged.value = true;\n };\n\n swiperParams.onAny = (event, ...args) => {\n emit(event, ...args);\n };\n\n Object.assign(swiperParams.on, {\n _beforeBreakpoint: onBeforeBreakpoint,\n\n _containerClasses(swiper, classes) {\n containerClasses.value = classes;\n }\n\n }); // init Swiper\n\n swiperRef.value = initSwiper(swiperParams);\n\n swiperRef.value.loopCreate = () => {};\n\n swiperRef.value.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.value.loopedSlides = calcLoopedSlides(slidesRef.value, swiperParams);\n }\n\n if (swiperRef.value.virtual && swiperRef.value.params.virtual.enabled) {\n swiperRef.value.virtual.slides = slidesRef.value;\n const extendWith = {\n cache: false,\n slides: slidesRef.value,\n renderExternal: data => {\n virtualData.value = data;\n },\n renderExternalUpdate: false\n };\n extend(swiperRef.value.params.virtual, extendWith);\n extend(swiperRef.value.originalParams.virtual, extendWith);\n }\n\n onUpdated(() => {\n // set initialized flag\n if (!initializedRef.value && swiperRef.value) {\n swiperRef.value.emitSlidesClasses();\n initializedRef.value = true;\n } // watch for params change\n\n\n const {\n passedParams: newPassedParams\n } = getParams(props);\n const changedParams = getChangedParams(newPassedParams, oldPassedParamsRef.value, slidesRef.value, oldSlidesRef.value);\n oldPassedParamsRef.value = newPassedParams;\n\n if ((changedParams.length || breakpointChanged.value) && swiperRef.value && !swiperRef.value.destroyed) {\n updateSwiper({\n swiper: swiperRef.value,\n slides: slidesRef.value,\n passedParams: newPassedParams,\n changedParams,\n nextEl: nextElRef.value,\n prevEl: prevElRef.value,\n scrollbarEl: scrollbarElRef.value,\n paginationEl: paginationElRef.value\n });\n }\n\n breakpointChanged.value = false;\n }); // update on virtual update\n\n watch(virtualData, () => {\n nextTick(() => {\n updateOnVirtualData(swiperRef.value);\n });\n }); // mount swiper\n\n onMounted(() => {\n if (!swiperElRef.value) return;\n mountSwiper({\n el: swiperElRef.value,\n nextEl: nextElRef.value,\n prevEl: prevElRef.value,\n paginationEl: paginationElRef.value,\n scrollbarEl: scrollbarElRef.value,\n swiper: swiperRef.value\n }, swiperParams);\n emit('swiper', swiperRef.value);\n });\n onBeforeUnmount(() => {\n if (swiperRef.value && !swiperRef.value.destroyed) {\n swiperRef.value.destroy(true, false);\n }\n }); // bypass swiper instance to slides\n\n function renderSlides(slides) {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef, slides, virtualData.value);\n }\n\n if (!swiperParams.loop || swiperRef.value && swiperRef.value.destroyed) {\n slides.forEach(slide => {\n if (!slide.props) slide.props = {};\n slide.props.swiperRef = swiperRef;\n });\n return slides;\n }\n\n return renderLoop(swiperRef, slides, swiperParams);\n }\n\n return () => {\n const {\n slides,\n slots\n } = getChildren(originalSlots, slidesRef, oldSlidesRef);\n return h(Tag, {\n ref: swiperElRef,\n class: uniqueClasses(containerClasses.value)\n }, [slots['container-start'], needsNavigation(props) && [h('div', {\n ref: prevElRef,\n class: 'swiper-button-prev'\n }), h('div', {\n ref: nextElRef,\n class: 'swiper-button-next'\n })], needsScrollbar(props) && h('div', {\n ref: scrollbarElRef,\n class: 'swiper-scrollbar'\n }), needsPagination(props) && h('div', {\n ref: paginationElRef,\n class: 'swiper-pagination'\n }), h(WrapperTag, {\n class: 'swiper-wrapper'\n }, [slots['wrapper-start'], renderSlides(slides), slots['wrapper-end']]), slots['container-end']]);\n };\n }\n\n};\nexport { Swiper };","import Swiper from 'swiper';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction initSwiper(swiperParams) {\n return new Swiper(swiperParams);\n}\n\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { initSwiper, mountSwiper };","import { h } from 'vue';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\n\nfunction renderVirtual(swiperRef, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiperRef.value.isHorizontal() ? {\n [swiperRef.value.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((slide, index) => index >= virtualData.from && index <= virtualData.to).map(slide => {\n if (!slide.props) slide.props = {};\n if (!slide.props.style) slide.props.style = {};\n slide.props.swiperRef = swiperRef;\n slide.props.style = style;\n return h(slide.type, { ...slide.props\n }, slide.children);\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n const oldChildrenKeys = oldChildren.map(child => child.props && child.props.key);\n const childrenKeys = children.map(child => child.props && child.props.key);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) keys.push('children');\n if (oldChildren.length !== children.length) keys.push('children');\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import { h, ref, onMounted, onUpdated, onBeforeUpdate, computed, onBeforeUnmount } from 'vue';\nimport { uniqueClasses } from './utils.js';\nconst SwiperSlide = {\n name: 'SwiperSlide',\n props: {\n tag: {\n type: String,\n default: 'div'\n },\n swiperRef: {\n type: Object,\n required: false\n },\n zoom: {\n type: Boolean,\n default: undefined\n },\n virtualIndex: {\n type: [String, Number],\n default: undefined\n }\n },\n\n setup(props, {\n slots\n }) {\n let eventAttached = false;\n const {\n swiperRef\n } = props;\n const slideElRef = ref(null);\n const slideClasses = ref('swiper-slide');\n\n function updateClasses(swiper, el, classNames) {\n if (el === slideElRef.value) {\n slideClasses.value = classNames;\n }\n }\n\n onMounted(() => {\n if (!swiperRef.value) return;\n swiperRef.value.on('_slideClass', updateClasses);\n eventAttached = true;\n });\n onBeforeUpdate(() => {\n if (eventAttached || !swiperRef || !swiperRef.value) return;\n swiperRef.value.on('_slideClass', updateClasses);\n eventAttached = true;\n });\n onUpdated(() => {\n if (!slideElRef.value || !swiperRef || !swiperRef.value) return;\n\n if (swiperRef.value.destroyed) {\n if (slideClasses.value !== 'swiper-slide') {\n slideClasses.value = 'swiper-slide';\n }\n }\n });\n onBeforeUnmount(() => {\n if (!swiperRef || !swiperRef.value) return;\n swiperRef.value.off('_slideClass', updateClasses);\n });\n const slideData = computed(() => ({\n isActive: slideClasses.value.indexOf('swiper-slide-active') >= 0 || slideClasses.value.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.value.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.value.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.value.indexOf('swiper-slide-prev') >= 0 || slideClasses.value.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.value.indexOf('swiper-slide-next') >= 0 || slideClasses.value.indexOf('swiper-slide-duplicate-next') >= 0\n }));\n return () => {\n return h(props.tag, {\n class: uniqueClasses(`${slideClasses.value}`),\n ref: slideElRef,\n 'data-swiper-slide-index': props.virtualIndex\n }, props.zoom ? h('div', {\n class: 'swiper-zoom-container',\n 'data-swiper-zoom': typeof props.zoom === 'number' ? props.zoom : undefined\n }, slots.default && slots.default(slideData.value)) : slots.default && slots.default(slideData.value));\n };\n }\n\n};\nexport { SwiperSlide };","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, unref as _unref, withCtx as _withCtx, createBlock as _createBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { class: \"hotspot-content__container\" }\nconst _hoisted_2 = { class: \"hotspot-content__left-col\" }\nconst _hoisted_3 = { class: \"hotspot-content__media-container\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"embed-responsive embed-responsive-16by9\"\n}\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"div\", {\n id: \"player\",\n class: \"embed-responsive-item\"\n}, null, -1 /* HOISTED */)\nconst _hoisted_6 = [\n _hoisted_5\n]\nconst _hoisted_7 = [\"src\", \"alt\"]\nconst _hoisted_8 = { class: \"hotspot-content__media-thumbs\" }\nconst _hoisted_9 = [\"onClick\"]\nconst _hoisted_10 = [\"src\", \"alt\", \"onClick\"]\nconst _hoisted_11 = {\n key: 1,\n class: \"embed-responsive embed-responsive-16by9\"\n}\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"div\", {\n id: \"mobileplayer\",\n class: \"embed-responsive-item\"\n}, null, -1 /* HOISTED */)\nconst _hoisted_13 = [\n _hoisted_12\n]\nconst _hoisted_14 = [\"src\", \"alt\", \"onClick\"]\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"fa-solid fa-chevron-left\" }, null, -1 /* HOISTED */)\nconst _hoisted_16 = [\n _hoisted_15\n]\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"fa-solid fa-chevron-right\" }, null, -1 /* HOISTED */)\nconst _hoisted_18 = [\n _hoisted_17\n]\nconst _hoisted_19 = { class: \"hotspot-content__right-col\" }\nconst _hoisted_20 = [\"innerHTML\"]\nconst _hoisted_21 = {\n key: 1,\n class: \"hotspot-content__logos-container animate__animated animate__fadeIn\"\n}\nconst _hoisted_22 = { class: \"hotspot-content__logos-col\" }\nconst _hoisted_23 = [\"src\", \"alt\"]\nconst _hoisted_24 = [\"innerHTML\"]\nconst _hoisted_25 = {\n key: 3,\n class: \"mt-4 animate__animated animate__fadeIn\"\n}\nconst _hoisted_26 = {\n key: 0,\n class: \"fas fa-external-link ml-1\"\n}\nconst _hoisted_27 = { class: \"hotspot-content__pager\" }\n\nimport {onMounted, reactive, computed, ref, watch, nextTick} from 'vue';\r\nimport {Hotspot, HotspotPlacement} from \"Interfaces/Interfaces\";\r\nimport { Navigation } from 'swiper';\r\nimport { Swiper, SwiperSlide } from 'swiper/vue';\r\n\r\nimport { v4 as uuidv4 } from 'uuid';\r\ndeclare let YT: any;\r\ndeclare global {\r\n\tinterface Window {\r\n\t\tonYouTubeIframeAPIReady?: () => void;\r\n\t}\r\n}\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ModalHotspot',\n props: {\r\n\tplacement: {\r\n\t\ttype: Object as () => HotspotPlacement,\r\n\t\tdefault: () => ({})\r\n\t},\r\n\thotspotItem: {\r\n\t\ttype: Object as () => Hotspot,\r\n\t\tdefault: () => ({})\r\n\t},\r\n\tactiveHotspotIndex: {\r\n\t\ttype: Number,\r\n\t\tdefault: 0\r\n\t},\r\n\tplacementsLength: {\r\n\t\ttype: Number,\r\n\t\tdefault: 0\r\n\t},\r\n\tindex: {\r\n\t\ttype: Number,\r\n\t\tdefault: 0\r\n\t}\r\n},\n emits: ['updateActiveHotspotIndex'],\n setup(__props, { emit: __emit }) {\n\r\nconst activeElement = reactive({\r\n\ttype: '',\r\n\tpassedValue: '',\r\n\talt: ''\r\n});\r\n\r\nconst modules = [Navigation];\r\nconst isDesktop = ref(false);\r\nconst uniqueId = uuidv4();\r\nconst swiperOptions = {\r\n\t0: {\r\n\t\tslidesPerView: 1,\r\n\t\tspaceBetween: 10\r\n\t},\r\n\t768: {\r\n\t\tslidesPerView: 3,\r\n\t\tspaceBetween: 10\r\n\t},\r\n};\r\nconst activeSwiperSlideIndex = ref(0);\r\nconst swiperInstance = ref(null);\r\nconst swiperLeft = ref(null);\r\nconst youtubePlayer = ref(null);\r\nconst swiperRight = ref(null);\r\nconst player = ref(null);\r\nconst swiperKey = ref(0);\r\nconst swiperInit = (swiper) => {\r\n\tswiperInstance.value = swiper;\r\n};\r\n\r\nconst isDesktopBreakpoint = computed(() => {\r\n\treturn isDesktop.value || matchMedia('(min-width: 768px)').matches;\r\n});\r\n\r\nconst emit = __emit;\r\nconst props = __props;\r\n\r\n//Comps show a 0 in front of single digit numbers, this adds the zero if less than 10\r\nconst zeroInFront = (number) => {\r\n\tif (number < 10) {\r\n\t\treturn '0' + number;\r\n\t}\r\n\treturn number.toString(); // Convert to string if it's not a single digit\r\n}\r\n\r\n// This runs when pager previous button is clicked and sets it back 1 hotspot\r\nconst goToPreviousIndex = (index) => {\r\n\tif (index !== 0) {\r\n\t\temit('updateActiveHotspotIndex', index - 1);\r\n\t}\r\n};\r\n\r\nconst breakpointChange = (swiper) => {\r\n\tlet windowWidth = window.innerWidth;\r\n\tisDesktop.value = windowWidth > 767;\r\n\r\n\tif(isDesktopBreakpoint.value) {\r\n\t\tsetActiveElement(combinedHotspotImagesAndVideos.value[0], 0);\r\n\t} else {\r\n\t\tslideChange(swiper);\r\n\t}\r\n}\r\n\r\n// This runs when the page next button is clicked and sets the index forward one\r\nconst goToNextIndex = (index) => {\r\n\tif ((index + 1) < props.placementsLength) {\r\n\t\temit('updateActiveHotspotIndex', index + 1);\r\n\t}\r\n};\r\n\r\n//combines videos and images into one array\r\nconst combinedHotspotImagesAndVideos = computed(() => {\r\n\tlet combinedMediaElements = [];\r\n\tif(props?.hotspotItem?.HotspotVideos?.length) {\r\n\t\tcombinedMediaElements = [ ...combinedMediaElements, ...props.hotspotItem?.HotspotVideos];\r\n\t}\r\n\tif(props?.hotspotItem?.HotspotImages?.length) {\r\n\t\tcombinedMediaElements = [ ...combinedMediaElements, ...props.hotspotItem?.HotspotImages];\r\n\t}\r\n\r\n\treturn combinedMediaElements;\r\n});\r\n\r\n//This function sets the active element when the swiper slide is changed at mobile\r\nconst slideChange = (swiper) => {\r\n\tif (!isDesktopBreakpoint.value) {\r\n\t\tlet el = combinedHotspotImagesAndVideos.value[swiper.activeIndex];\r\n\t\tif (player.value) {\r\n\t\t\t// If there is an existing player instance, stop and destroy it\r\n\t\t\tplayer.value.destroy();\r\n\t\t\tplayer.value = null; // Ensure player is nullified\r\n\t\t}\r\n\t\tif(el.hasOwnProperty('YouTubeID')) {\r\n\t\t\tactiveElement.type = 'video';\r\n\t\t\tactiveElement.passedValue = el.YouTubeID;\r\n\t\t\tactiveElement.alt = '';\r\n\t\t\tcreateYoutubePlayer(activeElement.passedValue, 'mobileplayer');\r\n\t\t} else {\r\n\t\t\tactiveElement.type = 'image';\r\n\t\t\tactiveElement.passedValue = el.ImageUrl;\r\n\t\t\tactiveElement.alt = el.AltText;\r\n\t\t}\r\n\r\n\t\tactiveSwiperSlideIndex.value = swiper.activeIndex;\r\n\t}\r\n};\r\n\r\n\r\n//This function sets the active element when a swiper slide is clicked at desktop\r\nconst setActiveElement = (el, index) => {\r\n\tif(isDesktopBreakpoint.value) {\r\n\t\tif(combinedHotspotImagesAndVideos.value[index].hasOwnProperty('YouTubeID')) {\r\n\t\t\tactiveElement.type = 'video';\r\n\t\t\tactiveElement.passedValue = el.YouTubeID;\r\n\t\t\tactiveElement.alt = '';\r\n\t\t\tif (player.value) {\r\n\t\t\t\t// If there is an existing player instance, stop and destroy it\r\n\t\t\t\tplayer.value.destroy();\r\n\t\t\t\tplayer.value = null; // Ensure player is nullified\r\n\t\t\t}\r\n\t\t\tcreateYoutubePlayer(activeElement.passedValue, 'player');\r\n\t\t} else {\r\n\t\t\tactiveElement.type = 'image';\r\n\t\t\tactiveElement.passedValue = el.ImageUrl;\r\n\t\t\tactiveElement.alt = el.AltText;\r\n\t\t}\r\n\t\tactiveSwiperSlideIndex.value = index;\r\n\t}\r\n}\r\n\r\n//this makes the button go to the correct page when clicked keeping in mind new window or not\r\nconst goToUrl = (path, newWindow) => {\r\n\tif(newWindow === 'True') {\r\n\t\twindow.open(path, '_blank');\r\n\t} else {\r\n\t\twindow.location.href = path;\r\n\t}\r\n};\r\n\r\n//This function sets the intial active item (big picture/video) when the page loads and when its updated\r\nconst setInitialActiveElement = () => {\r\n\tif(combinedHotspotImagesAndVideos.value?.length) {\r\n\t\tif(combinedHotspotImagesAndVideos.value[0].hasOwnProperty('YouTubeID')) {\r\n\t\t\tactiveElement.type = 'video';\r\n\t\t\tactiveElement.passedValue = props.hotspotItem?.HotspotVideos[0]?.YouTubeID;\r\n\t\t\tactiveElement.alt = '';\r\n\r\n\t\t\t//isDesktop is set to false initially and doesnt get rechecked until swiper initializes so use match media as well\r\n\t\t\tif(isDesktopBreakpoint.value) {\r\n\t\t\t\tcreateYoutubePlayer(activeElement.passedValue, 'player');\r\n\t\t\t} else {\r\n\t\t\t\tcreateYoutubePlayer(activeElement.passedValue, 'mobileplayer');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tactiveElement.type = 'image';\r\n\t\t\tactiveElement.passedValue = props.hotspotItem?.HotspotImages[0]?.ImageUrl;\r\n\t\t\tactiveElement.alt = props.hotspotItem?.HotspotImages[0]?.AltText;\r\n\t\t}\r\n\t\tactiveSwiperSlideIndex.value = 0;\r\n\t}\r\n}\r\n\r\n// Check if the API script has already been loaded, if not inject it in\r\nconst injectYoutubePlayerAPIScript = () => {\r\n\tif (typeof YT === 'undefined' || typeof YT.Player === 'undefined') {\r\n\t\t// Load the IFrame Player API code asynchronously if not loaded already\r\n\t\tlet tag = document.createElement('script');\r\n\t\ttag.src = \"https://www.youtube.com/iframe_api\";\r\n\t\tlet firstScriptTag = document.getElementsByTagName('script')[0];\r\n\t\tfirstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n\t}\r\n}\r\n\r\nwatch(() => props.activeHotspotIndex, (oldValue, newValue) => {\r\n\tswiperKey.value++;\r\n});\r\n\r\nconst playVideo = (event) => {\r\n\tplayer.value.playVideo();\r\n}\r\n\r\n\r\nconst createYoutubePlayer = (videoId:string, playerId:string) => {\r\n\t//@ts-ignore\r\n\r\n\tnextTick(() => {\r\n\t\tplayer.value = new YT.Player(`${playerId}`, {\r\n\t\t\theight: '390',\r\n\t\t\twidth: '640',\r\n\t\t\tvideoId: videoId,\r\n\t\t\tplayerVars: {\r\n\t\t\t\t'playsinline': 1,\r\n\t\t\t\t'controls': 0,\r\n\t\t\t\t'showinfo': 0\r\n\t\t\t},\r\n\t\t\tevents: {\r\n\t\t\t\t'onReady': playVideo,\r\n\t\t\t}\r\n\t\t});\r\n\t})\r\n}\r\n\r\nonMounted(() => {\r\n\tinjectYoutubePlayerAPIScript();\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (isDesktopBreakpoint.value)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"hotspot-content__media-stage\", { 'hotspot-content__media-stage--video': activeElement?.type === `video`}])\n }, [\n (activeElement?.type === `video`)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _hoisted_6))\n : (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n src: activeElement?.passedValue,\n alt: activeElement?.alt,\n class: \"hotspot-content__stage-image\"\n }, null, 8 /* PROPS */, _hoisted_7))\n ], 2 /* CLASS */))\n : _createCommentVNode(\"v-if\", true),\n _createElementVNode(\"div\", _hoisted_8, [\n (_openBlock(), _createBlock(_unref(Swiper), {\n modules: modules,\n breakpoints: swiperOptions,\n \"slides-per-view\": 3,\n \"space-between\": 10,\n allowSlidePrev: true,\n allowSlideNext: true,\n ref_key: \"swiperInstance\",\n ref: swiperInstance,\n preloadImages: true,\n key: swiperKey.value,\n onInit: swiperInit,\n onBreakpoint: breakpointChange,\n onSlideChange: slideChange,\n navigation: { prevEl: swiperLeft.value, nextEl: swiperRight.value }\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(combinedHotspotImagesAndVideos.value, (el, index) => {\n return (_openBlock(), _createBlock(_unref(SwiperSlide), {\n key: index,\n class: _normalizeClass({ 'active-element': index === activeSwiperSlideIndex.value })\n }, {\n default: _withCtx(() => [\n (el.hasOwnProperty('YouTubeID'))\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (isDesktopBreakpoint.value)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createElementVNode(\"span\", {\n class: \"fa-solid fa-circle-play hotspot-content__play type-video\",\n onClick: ($event: any) => (setActiveElement(el, index))\n }, null, 8 /* PROPS */, _hoisted_9),\n _createElementVNode(\"img\", {\n src: `https://img.youtube.com/vi/${el.YouTubeID}/mqdefault.jpg`,\n alt: `youtubevideo-${el.YouTubeID}`,\n class: \"hotspot-content__slider-image hotspot-content__slider-image--video-preview type-video\",\n onClick: ($event: any) => (setActiveElement(el, index))\n }, null, 8 /* PROPS */, _hoisted_10)\n ], 64 /* STABLE_FRAGMENT */))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, _hoisted_13))\n ], 64 /* STABLE_FRAGMENT */))\n : (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n src: el.ImageUrl,\n alt: el.AltText,\n class: \"hotspot-content__slider-image type-image\",\n onClick: ($event: any) => (setActiveElement(el, index))\n }, null, 8 /* PROPS */, _hoisted_14))\n ]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"class\"]))\n }), 128 /* KEYED_FRAGMENT */)),\n _createElementVNode(\"div\", {\n class: \"hotspot-content__prev\",\n ref_key: \"swiperLeft\",\n ref: swiperLeft\n }, _hoisted_16, 512 /* NEED_PATCH */),\n _createElementVNode(\"div\", {\n class: \"hotspot-content__next\",\n ref_key: \"swiperRight\",\n ref: swiperRight\n }, _hoisted_18, 512 /* NEED_PATCH */)\n ]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"navigation\"]))\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n (__props.hotspotItem.DisplayTitle)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"hotspot-content__display-title animate__animated animate__fadeIn\",\n innerHTML: __props.hotspotItem.DisplayTitle\n }, null, 8 /* PROPS */, _hoisted_20))\n : _createCommentVNode(\"v-if\", true),\n (__props.hotspotItem?.TitleImages?.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.hotspotItem?.TitleImages, (logo) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n _createElementVNode(\"img\", {\n src: logo.ImageUrl,\n alt: logo.AltText,\n class: \"hotspot-content__logo-image\"\n }, null, 8 /* PROPS */, _hoisted_23)\n ]))\n }), 256 /* UNKEYED_FRAGMENT */))\n ]))\n : _createCommentVNode(\"v-if\", true),\n (__props.hotspotItem?.Description)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 2,\n class: \"hotspot-content__description animate__animated animate__fadeIn\",\n innerHTML: __props.hotspotItem?.Description\n }, null, 8 /* PROPS */, _hoisted_24))\n : _createCommentVNode(\"v-if\", true),\n (__props.hotspotItem?.CallToActionUrl)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_25, [\n _createElementVNode(\"div\", {\n class: \"btn btn-primary\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (goToUrl(__props.hotspotItem.CallToActionUrl, __props.hotspotItem.CallToActionNewWindow)), [\"prevent\"]))\n }, [\n _createTextVNode(_toDisplayString(__props.hotspotItem.CallToActionText), 1 /* TEXT */),\n (__props.hotspotItem.CallToActionNewWindow)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_26))\n : _createCommentVNode(\"v-if\", true)\n ])\n ]))\n : _createCommentVNode(\"v-if\", true),\n _createElementVNode(\"div\", _hoisted_27, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"fa-solid fa-chevron-left hotspot-content__pager-left\", { 'disabled': __props.index === 0 }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (goToPreviousIndex(__props.index)))\n }, null, 2 /* CLASS */),\n _createTextVNode(_toDisplayString(zeroInFront(__props.index+1)) + \" of \" + _toDisplayString(zeroInFront(__props.placementsLength)), 1 /* TEXT */),\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"fa-solid fa-chevron-right hotspot-content__pager-right\", { 'disabled': __props.index + 1 >= __props.placementsLength }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (goToNextIndex(__props.index)))\n }, null, 2 /* CLASS */)\n ])\n ])\n ]))\n}\n}\n\n})","\r\n\r\n\r\n","import script from \"./ModalHotspot.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./ModalHotspot.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"hotspot-content\" }\n\nimport ModalHotspot from \"Vue/components/hotspotComponents/ModalHotspot.vue\";\r\nimport {HotspotPlacement} from \"Interfaces/Interfaces\";\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'HotspotContent',\n props: {\r\n\thotspotPlacements: {\r\n\t\ttype: Array as () => HotspotPlacement[],\r\n\t\tdefault: []\r\n\t},\r\n\tactiveHotspotIndex: {\r\n\t\ttype: Number,\r\n\t\tdefault: 0\r\n\t},\r\n\tbackgroundImage: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t}\r\n},\n emits: ['updateActiveHotspotIndex'],\n setup(__props, { emit: __emit }) {\n\r\nconst props = __props;\r\nconst emit = __emit;\r\n\r\nconst updateActiveHotspotIndex = (indexValue) => {\r\n\temit('updateActiveHotspotIndex', indexValue);\r\n}\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (__props.hotspotPlacements?.length)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(__props.hotspotPlacements, (placement, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: placement.Title\n }, [\n (placement?.SelectHotspot?.length)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (__props.activeHotspotIndex === index)\n ? (_openBlock(), _createBlock(ModalHotspot, {\n key: 0,\n activeHotspotIndex: __props.activeHotspotIndex,\n index: index,\n placementsLength: __props.hotspotPlacements.length,\n placement: placement,\n hotspotItem: placement?.SelectHotspot[0],\n onUpdateActiveHotspotIndex: updateActiveHotspotIndex\n }, null, 8 /* PROPS */, [\"activeHotspotIndex\", \"index\", \"placementsLength\", \"placement\", \"hotspotItem\"]))\n : _createCommentVNode(\"v-if\", true)\n ], 64 /* STABLE_FRAGMENT */))\n : _createCommentVNode(\"v-if\", true)\n ], 64 /* STABLE_FRAGMENT */))\n }), 128 /* KEYED_FRAGMENT */))\n : _createCommentVNode(\"v-if\", true)\n ]))\n}\n}\n\n})","\r\n\r\n\r\n","import script from \"./HotspotContent.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./HotspotContent.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"ah-modal-container\" }\nconst _hoisted_2 = { class: \"ah-modal-inner-container\" }\nconst _hoisted_3 = { class: \"ah-modal-content\" }\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'HotspotsModal',\n props: ['modalVisible'],\n emits: ['modalVisibilityUpdated'],\n setup(__props, { emit: __emit }) {\n\r\nconst props = __props;\r\nconst emit = __emit;\r\nconst modalVisibilityUpdated = (event) => {\r\n\tif (event.target.classList.contains('ah-modal-overlay') || event.target.classList.contains('ah-modal-close')) {\r\n\t\temit('modalVisibilityUpdated', false);\r\n\t}\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"ah-modal-overlay\",\n onClick: modalVisibilityUpdated\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n onClick: modalVisibilityUpdated,\n class: \"ah-modal-close\"\n }, \"×\"),\n _renderSlot(_ctx.$slots, \"default\")\n ])\n ])\n ])\n ]))\n}\n}\n\n})","\r\n\r\n\r\n","import script from \"./HotspotsModal.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./HotspotsModal.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, vShow as _vShow, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createVNode as _createVNode, withCtx as _withCtx, createCommentVNode as _createCommentVNode, Transition as _Transition, Teleport as _Teleport } from \"vue\"\n\nconst _hoisted_1 = { class: \"hotspot-module__scene\" }\nconst _hoisted_2 = { class: \"hotspot-scene__tabs\" }\nconst _hoisted_3 = { class: \"hotspot-scene__tabs-list\" }\n\nimport {onMounted, ref, computed, watchEffect, onUpdated} from 'vue';\r\nimport HotspotScene from 'Vue/components/hotspotComponents/HotspotScene.vue';\r\nimport {AdvancedHotspots, Scene} from 'Interfaces/interfaces';\r\nimport SceneTab from \"Vue/components/hotspotComponents/SceneTab.vue\";\r\nimport HotspotContent from \"Vue/components/hotspotComponents/HotspotContent.vue\";\r\nimport HotspotsModal from \"Vue/components/hotspotComponents/HotspotsModal.vue\";\r\nconst componentName = 'AdvancedHotspots';\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdvancedHotspots',\n setup(__props) {\n\r\nconst hotspotData = ref(null);\r\nconst activeIndex = ref(0);\r\nconst modalVisible = ref(false);\r\nconst activeHotspotIndex = ref(0);\r\nconst hotspotmod = ref(null);\r\nconst topPosition = ref(null);\r\nconst activeScene = ref(null);\r\nconst scenes = computed(() => {\r\n\treturn hotspotData.value?.Scenes || [];\r\n});\r\n\r\nconst castedScenes = computed(() => {\r\n\treturn scenes.value.map((scene: any) => scene as Scene);\r\n});\r\n\r\nconst updateVisibleSceneIndex = (index: number) => {\r\n\tactiveIndex.value = index;\r\n};\r\n\r\nconst modalVisibilityUpdated = (value) => {\r\n\tmodalVisible.value = value;\r\n};\r\n\r\nconst scrollUpdate = () => {\r\n\t// Scroll to the top of the element smoothly\r\n\t// if (hotspotmod.value) {\r\n\t// \thotspotmod.value.focus();\r\n\t// }\r\n\r\n\r\n\twindow.scrollTo({\r\n\t\ttop: topPosition.value,\r\n\t\tbehavior: 'smooth' // for smooth scrolling\r\n\t});\r\n}\r\n\r\nconst updateChosenScene = (scene) => {\r\n\tactiveScene.value = scene;\r\n};\r\n\r\nconst updateActiveHotspotIndex = (indexValue) => {\r\n\tactiveHotspotIndex.value = indexValue;\r\n}\r\n\r\nconst handleWindowResize = () => {\r\n\tif (hotspotmod.value) {\r\n\t\ttopPosition.value = hotspotmod.value.offsetTop;\r\n\t}\r\n};\r\n\r\nonMounted(() => {\r\n\tconst element = document.querySelector('.js-advanced-hotspots');\r\n\tif (element) {\r\n\t\tconst dataAttribute = element.getAttribute('data-hotspotdata');\r\n\t\tif (dataAttribute) {\r\n\t\t\thotspotData.value = JSON.parse(dataAttribute) as AdvancedHotspots;\r\n\t\t}\r\n\t}\r\n\r\n\ttopPosition.value = hotspotmod.value.offsetTop;\r\n\r\n\t// Preload images\r\n\tcastedScenes.value.forEach(scene => {\r\n\t\tconst img = new Image();\r\n\t\timg.src = scene.BackgroundImage;\r\n\t});\r\n\r\n\tactiveScene.value = castedScenes.value[0];\r\n\r\n\tupdateVisibleSceneIndex(0);\r\n\twindow.addEventListener('resize', handleWindowResize);\r\n\r\n\r\n\tif ('scrollRestoration' in history) {\r\n\t\t// Back off, browser, I got this...\r\n\t\thistory.scrollRestoration = 'manual';\r\n\t}\r\n});\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", {\n class: \"hotspot-module\",\n ref_key: \"hotspotmod\",\n ref: hotspotmod,\n tabindex: \"0\"\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(castedScenes.value, (scene, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: scene.DisplayTitle\n }, [\n _withDirectives(_createElementVNode(\"div\", _hoisted_1, [\n (_openBlock(), _createBlock(HotspotScene, {\n key: scene.DisplayTitle,\n backgroundImage: scene.BackgroundImage,\n sceneAssociatedColor: scene.SceneAssociatedColor,\n caption: scene.Caption,\n captionTitle: scene.CaptionTitle,\n activeIndex: activeIndex.value,\n displayTitle: scene.DisplayTitle,\n hotspotPlacements: scene.HotSpotPlacements,\n title: scene.Title,\n modalVisible: modalVisible.value,\n onUpdateActiveHotspotIndex: updateActiveHotspotIndex,\n onModalVisibilityUpdated: modalVisibilityUpdated\n }, null, 8 /* PROPS */, [\"backgroundImage\", \"sceneAssociatedColor\", \"caption\", \"captionTitle\", \"activeIndex\", \"displayTitle\", \"hotspotPlacements\", \"title\", \"modalVisible\"]))\n ], 512 /* NEED_PATCH */), [\n [_vShow, index === activeIndex.value]\n ])\n ]))\n }), 128 /* KEYED_FRAGMENT */))\n ], 512 /* NEED_PATCH */),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(castedScenes.value, (scene, index) => {\n return (_openBlock(), _createBlock(SceneTab, {\n key: scene.DisplayTitle,\n index: index,\n scene: scene,\n tabName: scene.DisplayTitle,\n activeIndex: activeIndex.value,\n sceneAssociatedColor: scene.SceneAssociatedColor,\n onUpdateVisibleSceneIndex: updateVisibleSceneIndex,\n onUpdateChosenScene: updateChosenScene,\n onScrollUpdate: scrollUpdate\n }, null, 8 /* PROPS */, [\"index\", \"scene\", \"tabName\", \"activeIndex\", \"sceneAssociatedColor\"]))\n }), 128 /* KEYED_FRAGMENT */))\n ])\n ]),\n (_openBlock(), _createBlock(_Teleport, { to: \"body\" }, [\n _createVNode(_Transition, {\n name: \"fade\",\n appear: \"\"\n }, {\n default: _withCtx(() => [\n (modalVisible.value)\n ? (_openBlock(), _createBlock(HotspotsModal, {\n key: 0,\n onModalVisibilityUpdated: modalVisibilityUpdated\n }, {\n default: _withCtx(() => [\n _createVNode(HotspotContent, {\n hotspotPlacements: activeScene.value.HotSpotPlacements,\n backgroundImage: activeScene.value.BackgroundImage,\n activeHotspotIndex: activeHotspotIndex.value,\n onUpdateActiveHotspotIndex: updateActiveHotspotIndex\n }, null, 8 /* PROPS */, [\"hotspotPlacements\", \"backgroundImage\", \"activeHotspotIndex\"])\n ]),\n _: 1 /* STABLE */\n }))\n : _createCommentVNode(\"v-if\", true)\n ]),\n _: 1 /* STABLE */\n })\n ]))\n ], 64 /* STABLE_FRAGMENT */))\n}\n}\n\n})","import script from \"./AdvancedHotspots.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AdvancedHotspots.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n\r\n\r\n","import { createApp } from 'vue';\r\nimport AdvancedHotspots from 'Vue/containers/AdvancedHotspots.vue';\r\n\r\nnamespace Worthington.advancedHotspots {\r\n\r\n\t// @ts-ignore\r\n\tlet module:any = {};\r\n\r\n\texport const init = () => {\r\n\t\tconst elements = document.querySelectorAll('.js-advanced-hotspots');\r\n\t\tif (elements.length) {\r\n\t\t\telements.forEach((element) => {\r\n\t\t\t\tconst ah = createApp(AdvancedHotspots);\r\n\t\t\t\tah.mount(element);\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tWorthington.advancedHotspots.init();\r\n});\r\n"],"names":["__webpack_require__","str","expectsLowerCase","set","Set","split","val","has","toLowerCase","g","globalThis","this","Function","e","window","EMPTY_ARR","NO","key","charCodeAt","isModelListener","startsWith","Object","assign","remove","arr","el","i","indexOf","splice","prototype","hasOwnProperty","call","Array","isArray","isMap","toTypeString","isSymbol","then","catch","objectToString","toString","value","slice","isPlainObject","isIntegerKey","parseInt","cacheStringFunction","fn","cache","create","camelizeRE","replace","_","c","toUpperCase","hyphenateRE","charAt","oldValue","is","invokeArrayFns","fns","arg","length","def","obj","defineProperty","configurable","enumerable","looseToNumber","n","parseFloat","isNaN","toNumber","Number","NaN","_globalThis","getGlobalThis","self","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","forEach","tmp","trim","name","isSpecialBooleanAttr","toDisplayString","JSON","stringify","replacer","String","_key","__v_isRef","size","entries","reduce","val2","stringifySymbol","values","map","v","_a","description","activeEffectScope","activeEffect","EffectScope","constructor","detached","_active","effects","cleanups","parent","index","scopes","push","active","run","currentEffectScope","on","off","stop","fromParent","l","last","pop","ReactiveEffect","trigger","scheduler","scope","deps","_dirtyLevel","_trackId","_runnings","_shouldSchedule","_depsLength","effect","recordEffectScope","dirty","pauseTracking","dep","computed","triggerComputed","resetTracking","lastShouldTrack","shouldTrack","lastEffect","preCleanupEffect","postCleanupEffect","onStop","effect2","cleanupDepEffect","trackId","get","delete","cleanup","pauseScheduleStack","trackStack","pauseScheduling","resetScheduling","queueEffectSchedulers","shift","trackEffect","debuggerEventExtraInfo","oldDep","triggerEffects","dirtyLevel","keys","tracking","allowRecurse","createDep","Map","targetMap","WeakMap","ITERATE_KEY","Symbol","MAP_KEY_ITERATE_KEY","target","type","depsMap","newValue","oldTarget","newLength","key2","isNonTrackableKeys","builtInSymbols","getOwnPropertyNames","filter","arrayInstrumentations","createArrayInstrumentations","instrumentations","args","apply","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","getPrototypeOf","targetIsArray","Reflect","readonly","reactive","MutableReactiveHandler","super","isOldValueReadonly","hadKey","result","deleteProperty","ownKeys","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","isReadonly","isShallow","rawTarget","rawKey","has2","wrap","toReadonly","toReactive","add","get2","deleteEntry","clear","hadItems","createForEach","callback","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","iterator","isKeyOnly","innerIterator","next","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","shallow","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isExtensible","rawType","targetTypeMap","proxy","Proxy","isProxy","raw","markRaw","ComputedRefImpl","getter","_setter","isSSR","_value","triggerRefValue","_cacheable","trackRefValue","_dirty","ref2","newVal","r","rawValue","RefImpl","__v_isShallow","_rawValue","useDirectValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","callWithErrorHandling","instance","err","handleError","callWithAsyncErrorHandling","throwInDev","vnode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","appContext","config","errorHandler","contextVNode","console","error","logError","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","Promise","resolve","currentFlushPromise","p","bind","queueJob","job","includes","id","start","end","middle","middleJob","middleJobId","getId","pre","findInsertionIndex","queueFlush","flushJobs","flushPreFlushCbs","seen","cb","uid","flushPostFlushCbs","deduped","sort","a","b","Infinity","comparator","diff","devtools$1","buffer","devtoolsNotInstalled","emit$1","event","emit","setDevtoolsHook$1","hook","_b","enabled","HTMLElement","navigator","userAgent","__VUE_DEVTOOLS_HOOK_REPLAY__","newHook","setTimeout","devtoolsComponentAdded","createDevtoolsComponentHook","devtoolsComponentUpdated","_devtoolsComponentRemoved","devtoolsComponentRemoved","component","cleanupBuffer","app","rawArgs","isUnmounted","props","modelArg","modifiersKey","number","handlerName","__VUE_PROD_DEVTOOLS__","params","devtoolsComponentEmit","handler","onceHandler","emitted","normalizeEmitsOptions","comp","asMixin","emitsCache","cached","emits","hasExtends","__VUE_OPTIONS_API__","extendEmits","raw2","normalizedFromExtend","mixins","extends","isEmitListener","options","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","__scopeId","withCtx","ctx","isNonScopedSlot","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","renderComponentRoot","Component","withProxy","propsOptions","slots","attrs","render","renderCache","data","setupState","inheritAttrs","fallthroughAttrs","shapeFlag","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","createVNode","Comment","root","some","filterModelListeners","cloneVNode","dirs","concat","transition","hasPropsChanged","prevProps","nextProps","emitsOptions","nextKeys","NULL_DYNAMIC_COMPONENT","for","ssrContextKey","useSSRContext","inject","INITIAL_WATCHER_VALUE","watch","source","doWatch","immediate","deep","flush","once","onTrack","onTrigger","_cb","unwatch","currentInstance","reactiveGetter","source2","traverse","forceTrigger","isMultiSource","s","onCleanup","baseGetter","ssrCleanup","isInSSRComponentSetup","__watcherHandles","fill","queuePostRenderEffect","suspense","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","path","segments","depth","currentDepth","withDirectives","directives","getExposeProxy","bindings","dir","modifiers","mounted","updated","invokeDirectiveHook","prevVNode","oldBindings","binding","leaveCbKey","enterCbKey","TransitionHookValidator","BaseTransitionPropsValidators","mode","appear","Boolean","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","BaseTransition","setup","state","isMounted","isLeaving","isUnmounting","leavingVNodes","onBeforeUnmount","useTransitionState","children","default","getTransitionRawChildren","child","hasFound","rawProps","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","subTree","oldInnerChild","isSameVNodeType","leavingHooks","afterLeave","update","delayLeave","earlyRemove","delayedLeave","getLeavingNodesForType","leavingVNodesCache","callHook","callAsyncHook","every","hook2","hooks","beforeEnter","leavingVNode","enter","afterHook","cancelHook","called","cancelled","leave","clone","vnode2","isKeepAlive","ssContent","ssFallback","keepComment","parentKey","keyedFragmentCount","patchFlag","extraOptions","isAsyncWrapper","__asyncLoader","__isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","current","isDeactivated","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","prepend","__weh","unshift","RegExp","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","renderList","renderItem","from","renderSlot","fallback","noSlotted","isCE","slot","openBlock","validSlotContent","ensureValidVNode","rendered","createBlock","scopeId","slotScopeIds","vnodes","isVNode","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$props","$attrs","$slots","$refs","refs","$parent","$root","$emit","$options","resolveMergedOptions","$forceUpdate","f","$nextTick","$watch","hasSetupBinding","__isScriptSetup","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","__cssModules","descriptor","normalizePropsOrEmits","h","createWatcher","base","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","resolved","m","mergeOptions","to","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","methods","mergeObjectOptions","beforeCreate","mergeAsArray","created","beforeMount","beforeUpdate","beforeDestroy","beforeUnmount","destroyed","unmounted","activated","deactivated","errorCaptured","serverPrefetch","components","merged","provide","normalizeInject","createAppContext","isNativeTag","performance","warnHandler","compilerOptions","provides","propsCache","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","WeakSet","_uid","_component","_props","_container","_context","_instance","version","use","plugin","install","mixin","directive","mount","rootContainer","isHydrate","namespace","__vue_app__","Fragment","Text","Static","devtoolsInitApp","unmount","devtoolsUnmountApp","runWithContext","lastApp","currentApp","defaultValue","treatDefaultAsFactory","arguments","setFullProps","needCastKeys","rawCastValues","hasAttrsChanged","camelKey","rawCurrentProps","castValues","resolvePropValue","isAbsent","opt","hasDefault","skipFactory","propsDefaults","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","findIndex","t","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","initSlots","InternalObjectKey","updateSlots","optimized","needDeletionCheck","deletionComparisonTarget","$stable","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","refValue","owner","ref","oldRef","_isString","_isRef","doSet","existing","k","pendingBranch","baseCreateRenderer","createHydrationFns","__VUE_PROD_HYDRATION_MISMATCH_DETAILS__","__VUE__","__VUE_DEVTOOLS_GLOBAL_HOOK__","insert","hostInsert","hostRemove","patchProp","hostPatchProp","createElement","hostCreateElement","createText","hostCreateText","createComment","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","parentNode","hostParentNode","nextSibling","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","patch","n1","n2","container","anchor","parentComponent","dynamicChildren","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","process","internals","mountElement","patchElement","vnodeHook","mountChildren","resolveChildrenNamespace","unmountChildren","onVnodeBeforeMount","invokeVNodeHook","needCallTransitionHooks","needTransition","onVnodeMounted","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","patchBlockChildren","patchChildren","patchProps","class","style","propsToUpdate","dynamicProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","activate","mountComponent","updateComponent","initialVNode","emptyAppContext","exposed","exposeProxy","setupContext","attrsProxy","slotsProxy","suspenseId","pendingId","asyncDep","asyncResolved","bc","bm","bu","u","um","bum","da","rtg","rtc","sp","ce","createComponentInstance","renderer","setInSSRSetupState","isStateful","initProps","setupResult","expose","getAttrsProxy","createSetupContext","unsetCurrentInstance","resolvedResult","handleSetupResult","finishComponentSetup","setupStatefulComponent","setupComponent","registerDep","setupRenderEffect","placeholder","nextVNode","prevChildren","nextChildren","shouldUpdateComponent","updateComponentPreRender","invalidateJob","componentUpdateFn","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","prevTree","activeBranch","updateHOCHostEl","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","rawPrevProps","kebabKey","camelizedKey","updateProps","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","commonLength","Math","min","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","len","arrI","getSequence","nextIndex","move","moveType","remove2","performLeave","moveStaticNode","doRemove","deactivate","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","onVnodeUnmounted","removeFragment","removeStaticNode","performRemove","_vnode","mt","mc","pc","pbc","o","createApp","currentNamespace","encoding","allowed","ch1","ch2","subComponent","isTeleportDisabled","disabled","isTargetSVG","SVGElement","isTargetMathML","MathMLElement","resolveTarget","select","targetSelector","moveTeleport","targetAnchor","isReorder","Teleport","__isTeleport","querySelector","mainAnchor","container2","anchor2","wasDisabled","currentContainer","currentAnchor","nextTarget","updateCssVars","shouldRemove","node","hydrateChildren","targetNode","_lpa","firstChild","nodeType","ut","setAttribute","currentBlock","disableTracking","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","__v_isVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","staticCount","normalizeChildren","normalize","cloned","__vccOpts","guardReactiveProps","klass","__isSuspense","isSuspense","isTeleport","extraProps","mergeRef","mergedProps","toMerge","incoming","mergeProps","createTextVNode","text","flag","createCommentVNode","asBlock","memo","slotFlag","internalSetCurrentInstance","registerGlobalSetter","setter","setters","compile","installWithProxy","__ssrInlineRender","ssrRender","devtoolsRawSetupState","skipOptions","template","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","renderTracked","renderTriggered","filters","checkDuplicateProperties","resolveInjections","methodHandler","parentProvides","registerLifecycleHook","register","_hook","applyOptions","getterOrOptions","debugOptions","onlyGetter","propsOrChildren","doc","document","templateContainer","nodeOps","insertBefore","removeChild","tag","createElementNS","multiple","createTextNode","nodeValue","textContent","selector","content","before","previousSibling","lastChild","cloneNode","innerHTML","wrapper","appendChild","TRANSITION","ANIMATION","vtcKey","Transition","baseProps","DOMTransitionPropsValidators","css","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","NumberOf","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","_isLeaving","makeEnterHook","nextFrame","addTransitionClass","hasExplicitCallback","whenTransitionEnds","body","offsetHeight","resolveTransitionProps","displayName","h2","cls","classList","_vtc","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","timeout","propCount","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","max","hasTransform","test","getTransitionInfo","endEvent","ended","removeEventListener","onEnd","addEventListener","delays","d","toMs","vShowOriginalDisplay","vShowHidden","vShow","display","setDisplay","CSS_VAR_TEXT","displayRE","importantRE","setStyle","setProperty","prefixed","rawName","prefixCache","prefixes","autoPrefix","xlinkNS","veiKey","optionsModifierRE","cachedNow","getNow","Date","now","isNativeOn","systemModifiers","modifierGuards","stopPropagation","prevent","preventDefault","currentTarget","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","left","button","right","exact","withModifiers","_withMods","cacheKey","join","guard","rendererOptions","prevValue","nextValue","isSVG","transitionClasses","removeAttribute","className","patchClass","isCssString","hasControlledDisplay","prevStyle","cssVarText","patchStyle","invokers","existingInvoker","match","parseName","invoker","initialValue","_vts","attached","originalStop","stopImmediatePropagation","_stopped","patchStopImmediatePropagation","createInvoker","patchEvent","tagName","shouldSetAsProp","getAttribute","needRemove","patchDOMProp","_trueValue","_falseValue","removeAttributeNS","setAttributeNS","isBoolean","patchAttr","_hoisted_1","__name","leftPositionX","topPositionY","displayTitle","modalVisible","color","hotspotPlacementsLength","hotspots","__props","__emit","launchModal","dataLayer","DisplayTitle","_cache","onClick","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","backgroundImage","caption","captionTitle","activeIndex","hotspotPlacements","title","sceneAssociatedColor","primaryImage","hotspotsArray","hotspotPlacement","updateActiveHotspotIndex","indexValue","openFirstHotspot","modalVisibilityUpdated","src","hotspot","Hotspot","Title","TopPosition","LeftPosition","HotspotColorOverride","onModalVisibilityUpdated","onUpdateActiveHotspotIndex","SelectHotspot","tabName","scene","hovering","isDark","hexColor","substr","updateVisibleSceneIndex","backgroundColor","buttonIsActive","onMouseenter","$event","onMouseleave","ssrDocument","activeElement","blur","nodeName","querySelectorAll","getElementById","createEvent","initEvent","childNodes","getElementsByTagName","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","ssrWindow","history","replaceState","pushState","go","back","CustomEvent","getPropertyValue","Image","screen","clearTimeout","matchMedia","cancelAnimationFrame","win","Dom7","items","proto","__proto__","makeReactive","arrayFlat","arrayFilter","html","toCreate","tempParent","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","Methods","addClass","classes","classNames","removeClass","hasClass","contains","toggleClass","toggle","attr","attrName","removeAttr","transform","transitionDuration","eventType","listener","capture","handleLiveEvent","eventData","dom7EventData","parents","handleEvent","undefined","events","dom7LiveListeners","proxyListener","dom7Listeners","handlers","dom7proxy","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","offsetWidth","outerHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","each","compareWith","matches","webkitMatchesSelector","msMatchesSelector","eq","returnIndex","append","els","newChild","tempDiv","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","closest","find","foundElements","found","methodName","writable","delay","noExtend","nextSource","keysArray","nextKey","desc","getOwnPropertyDescriptor","__swiper__","varName","varValue","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","startTime","speed","wrapperEl","scrollSnapType","cssModeFrameID","isOutOfBound","animate","getTime","progress","easeProgress","cos","PI","currentPosition","scrollTo","overflow","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","priority","eventsListeners","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","updateSize","width","height","clientWidth","clientHeight","isHorizontal","isVertical","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","ceil","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","transitionEmit","runCallbacks","direction","step","slideTo","internal","initial","Error","indexAsNumber","isFinite","animating","preventInteractionOnTransition","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","setTranslate","transitionStart","isH","_immediateVirtual","_swiperImmediateVirtual","behavior","onSlideToWrapperTransitionEnd","slideToLoop","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","getTranslate","loopDestroy","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","isTouched","isMoved","noSwipingClass","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","onTouchEnd","touchEndTime","timeDiff","pathTree","composedPath","lastClickTime","currentPos","stopIndex","groupSize","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","preventClicks","preventClicksPropagation","onScroll","newProgress","previousTranslate","dummyEventAttached","dummyEventListener","touchEvents","device","domMethod","swiperMethod","passiveListeners","passive","cancel","updateOnWindowResize","ios","android","attachEvents","detachEvents","isGridEnabled","addClasses","suffixes","prefix","resultClasses","prepareClasses","containerModifierClass","emitContainerClasses","removeClasses","init","resizeObserver","createElements","url","virtualTranslate","breakpointsBase","simulateTouch","uniqueNavElements","preloadImages","updateOnImagesReady","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","x","y","translateTo","translateBounds","newTranslate","onTranslateToWrapperTransitionEnd","moving","isLocked","cursor","unsetGrabCursor","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","innerHeight","points","point","minRatio","wasLocked","lastSlideIndex","lastSlideRightEdge","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","overrides","platform","ua","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getDevice","isSafari","isWebView","calcBrowser","modules","__modules__","mod","extendParams","swiperParams","defaults","passedParams","eventName","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","getSlideClasses","slideEl","updates","view","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","getWrapperSelector","getWrapper","destroy","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","module","prototypeGroup","protoMethod","observer","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","Navigation","getEl","toggleEl","disabledClass","lockClass","$nextEl","$prevEl","onPrevClick","onNextClick","checkProps","element","hideOnClick","hiddenClass","_s","targetEl","pagination","clickable","isHidden","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","getParams","rest","allowedParams","plainObj","calcLoopedSlides","slidesPerViewParams","breakpointOnlyParams","getChildren","originalSlots","slidesRef","oldSlidesRef","getSlidesFromElements","slotName","isFragment","wrapperTag","a11y","controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","creativeEffect","cardsEffect","hashNavigation","keyboard","lazy","mousewheel","parallax","thumbs","zoom","Tag","WrapperTag","containerClasses","virtualData","breakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_beforeBreakpoint","_containerClasses","initSwiper","extendWith","renderExternal","renderExternalUpdate","renderSlides","renderVirtual","modifiedSlides","duplicateSlide","position","blankSlide","renderLoop","newPassedParams","changedParams","oldParams","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","paginationEl","scrollbarEl","updateParams","currentParams","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","control","load","updateSwiper","mountSwiper","SwiperSlide","required","virtualIndex","eventAttached","slideElRef","slideClasses","updateClasses","slideData","isActive","isVisible","isDuplicate","isPrev","isNext","randomUUID","crypto","getRandomValues","rnds8","Uint8Array","rng","byteToHex","buf","rnds","random","unsafeStringify","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_13","_hoisted_14","_hoisted_16","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","placement","hotspotItem","activeHotspotIndex","placementsLength","passedValue","isDesktop","swiperOptions","activeSwiperSlideIndex","swiperInstance","swiperLeft","swiperRight","player","swiperKey","swiperInit","isDesktopBreakpoint","zeroInFront","breakpointChange","windowWidth","setActiveElement","combinedHotspotImagesAndVideos","slideChange","combinedMediaElements","HotspotVideos","HotspotImages","YouTubeID","createYoutubePlayer","ImageUrl","AltText","playVideo","videoId","playerId","YT","Player","playerVars","firstScriptTag","injectYoutubePlayerAPIScript","onInit","onBreakpoint","onSlideChange","TitleImages","logo","Description","CallToActionUrl","CallToActionNewWindow","open","CallToActionText","ModalHotspot","hotspotData","hotspotmod","topPosition","activeScene","scenes","Scenes","castedScenes","scrollUpdate","updateChosenScene","handleWindowResize","dataAttribute","parse","BackgroundImage","scrollRestoration","tabindex","HotspotScene","SceneAssociatedColor","Caption","CaptionTitle","HotSpotPlacements","SceneTab","onUpdateVisibleSceneIndex","onUpdateChosenScene","onScrollUpdate","HotspotsModal","HotspotContent","Worthington","advancedHotspots","elements","containerOrSelector","normalizeContainer","resolveRootNamespace","Element","AdvancedHotspots"],"sourceRoot":""}