{"version":3,"sources":["main.js"],"names":["global","factory","exports","module","define","amd","self","main","this","globalThis","window","createCommonjsModule","fn","utils","MenuSpy","extend","a","b","key","hasOwnProperty","offset","el","rect","getBoundingClientRect","top","pageYOffset","left","pageXOffset","scrollTop","document","documentElement","addClass","className","classList","add","classes","split","indexOf","push","join","removeClass","remove","replace","RegExp","debounce","delay","timeout","args","arguments","context","setTimeout","apply","element","options","this$1","defaults","menuItemSelector","activeClass","threshold","enableLocationHash","hashTimeout","callback","querySelector","assignValues","debouncedAssignValuesFn","addEventListener","debouncedHashFn","hash","lastInViewElm","id","history","replaceState","st","location","scrollTo","cacheItems","scrollFn","prototype","currScrollTop","menuHeight","offsetHeight","menuItems","slice","call","querySelectorAll","raf","scrollItems","map","elm","target","dataset","getElementById","Math","floor","filter","Boolean","sort","tick","fromTop","inViewElms","item","activateItem","pop","inViewElm","ref","forEach","parentNode","requestAnimationFrame","bind","destroy","cancelAnimationFrame","removeEventListener","t","e","parseFloat","round","Number","EPSILON","Element","offsetParent","scrollHeight","clientHeight","i","getComputedStyle","overflowY","n","s","body","parentElement","DOMParser","parseFromString","childElementCount","createElement","firstChild","appendChild","o","toggle","constructor","Object","defineProperty","enumerable","configurable","writable","value","nativePointer","pageX","pageY","clientX","clientY","Touch","identifier","time","Date","now","r","passive","l","start","move","end","startCallback","moveCallback","endCallback","onPointerStart","onTouchStart","onMove","onTouchEnd","buttons","button","currentPointers","some","triggerPointerStart","onPointerEnd","onWindowBlur","Array","from","changedTouches","findIndex","length","triggerPointerEnd","startPointers","splice","clear","Event","bubbles","cancelable","stop","c","sqrt","pow","h","d","toString","u","entries","isArray","assign","p","reduce","f","Map","setOptions","getOwnPropertyNames","getPrototypeOf","startsWith","option","on","optionFor","isNaN","cn","localize","String","toLowerCase","substring","events","get","set","includes","off","emit","m","super","attachPlugins","plugins","detach","attach","detachPlugins","keys","g","Init","Error","Ready","Panning","Mousemove","Destroy","v","PANUP","PANDOWN","PANLEFT","PANRIGHT","ZOOMIN","ZOOMOUT","TOGGLEZOOM","TOGGLE1TO1","ITERATEZOOM","ROTATECCW","ROTATECW","FLIPX","FLIPY","FITX","FITY","RESET","TOGGLEFS","y","content","width","height","panMode","touch","dragMinThreshold","lockAxis","mouseMoveFactor","mouseMoveFriction","zoom","pinchToZoom","panOnlyZoomed","minScale","maxScale","friction","dragFriction","decelFriction","click","dblClick","wheel","wheelLimit","spinner","bounds","infinite","rubberband","bounce","maxVelocity","transformParent","isLoading","canZoomIn","canZoomOut","isDraggable","isDragging","inFullscreen","htmlHasFullscreen","l10n","w","x","E","S","P","C","M","T","isTouchDevice","matchMedia","matches","isMobile","test","navigator","userAgent","isInfinite","angle","atan2","current","PI","targetAngle","scale","targetScale","fullScale","contentRect","fullWidth","fitWidth","coverScale","containerRect","max","fitHeight","min","isScaling","abs","isResting","isContentLoading","HTMLImageElement","complete","isBouncingX","isBouncingY","ignoreBounds","checkBounds","inBounds","innerWidth","innerHeight","right","bottom","fullHeight","container","initContent","Plugins","onLoad","onError","contains","HTMLPictureElement","insertBefore","queueMicrotask","enable","firstElementChild","state","updateMetrics","detachEvents","attachObserver","resizeObserver","ResizeObserver","updateTimer","onResize","clearTimeout","observe","detachObserver","disconnect","attachEvents","onClick","capture","onWheel","pointerTracker","onPointerDown","onPointerMove","onPointerUp","onMouseMove","onKeydown","clickTimer","animate","setTargetForce","velocity","setTransform","setEdgeForce","rAF","getBounds","xDiff","yDiff","clampTargetBounds","calculateContentDim","maxWidth","maxHeight","getMatrix","DOMPoint","matrixTransform","contentWidth","contentHeight","DOMMatrixReadOnly","transform","trackingPoints","startDecelAnim","defaultPrevented","hasAttribute","preventDefault","stopPropagation","getSelection","type","closest","panzoomChange","panzoomAction","JSON","parse","console","warn","applyChange","dragOffset","dragStart","event","clicks","addTrackingPoint","pwt","composedPath","nodeName","removeAllRanges","lockedAxis","originX","originY","panX","panY","isTicking","deltaX","deltaY","detail","zoomWithWheel","panWithMouse","toggleFS","requestTick","style","paddingTop","paddingBottom","paddingLeft","paddingRight","naturalWidth","SVGElement","baseVal","offsetWidth","scrollWidth","naturalHeight","getAttribute","setProperty","cssText","zoomTo","updateControls","toggleMax","toggleCover","toggleZoom","removeAttribute","setAttribute","display","panTo","flipX","flipY","DOMMatrix","translate","multiply","rotate","pmme","cwd","zoomIn","zoomOut","zoomToFit","zoomToCover","zoomToFull","zoomToMax","iterateZoom","rotateCCW","rotateCW","fitX","fitY","reset","values","O","A","childNodes","nodeType","Node","ELEMENT_NODE","L","R","html","HTMLElement","thumb","thumbSrc","thumbEl","thumbElSrc","src","isDom","class","index","dim","gap","pos","transition","k","slides","I","F","onRefresh","refresh","build","list","instance","pages","cleanup","isDynamic","children","append","createItem","page","previousElementSibling","nextElementSibling","hasDots","dot","isBeforePrev","isPrev","isCurrent","isNext","isAfterNext","dotTpl","dynamicFrom","maxCount","minCount","j","prev","next","createButton","toUpperCase","isRTL","innerHTML","match","charAt","nextTpl","prevTpl","H","addAsTargetFor","nav","addAsNavFor","initialSlide","initialPage","onNavReady","onTargetReady","onNavCreateSlide","onNavClick","onNavTouch","onTargetChange","pointerType","panzoom","parseInt","getPageForSlide","slideTo","Sync","markSelectedSlide","selectedIndex","B","Navigation","Dots","_","axis","isHorizontal","isEnabled","contentDim","viewportDim","Set","slideNext","slidePrev","userOptions","userPlugins","processOptions","breakpoints","bp","init","initLayout","initSlides","setInitialPosition","initPanzoom","isLTR","isVertical","viewport","slide","prepend","track","setInitialPage","setViewportHeight","onDecel","onBeforeTransform","onEndAnimation","onSlideTo","createPages","processPages","getPageFromIndex","getSlideMetrics","visibility","boxSizing","repositionSlides","inTransition","has","createSlideEl","customClass","nextSibling","removeSlideEl","CustomEvent","dispatchEvent","transitionTo","clearTransitions","onAnimationEnd","onChange","manageSlideVisiblity","getVisibleSlides","lazyLoadSlide","markSelectedSlides","flipInfiniteTrack","lazySrc","backgroundImage","lazySrcset","animationName","delete","size","pageIndex","getPageFromPosition","carouselPage","carouselNext","carouselPrev","prevPage","lp","reInit","slideToClosest","prependSlide","reverse","unshift","appendSlide","removeSlide","getProgress","find","replaceWith","enabled","preload","slidesPerPage","Panzoom","center","fill","dragFree","adaptiveHeight","direction","isSelected","NEXT","PREV","GOTO","N","W","$$1","X","Y","focus","preventScroll","scrollLeft","behavior","q","dragToClose","hideScrollbar","Carousel","contentClick","contentDblClick","backdropClick","animated","idle","showClass","hideClass","commonCaption","parentEl","startIndex","CLOSE","MODAL","ERROR","IMAGE_ERROR","ELEMENT_NOT_FOUND","AJAX_NOT_FOUND","AJAX_FORBIDDEN","IFRAME_ERROR","TOGGLE_ZOOM","TOGGLE_THUMBS","TOGGLE_SLIDESHOW","TOGGLE_FULLSCREEN","DOWNLOAD","tpl","closeButton","groupAll","groupAttr","defaultType","defaultDisplay","autoFocus","trapFocus","placeFocusBack","keyboard","Escape","Delete","Backspace","PageUp","PageDown","ArrowUp","ArrowDown","ArrowRight","ArrowLeft","Fullscreen","autoStart","compact","Z","V","Closing","CustomClosing","Loading","Opening","G","slug","U","parseURL","xt","getInstance","carousel","getSlide","triggerEl","fancybox","hasSilentClose","close","startFromUrl","timer","isOpeningSlide","URL","origHash","title","pathname","search","onClose","static","Hash","K","readyState","J","onCreateSlide","setContent","then","contentEl","imageEl","isClosing","getZoomInfo","opacity","Promise","Image","onload","onerror","done","hideLoading","revealContent","prevMouseMoveEvent","setError","onRemoveSlide","position","overflow","showLoading","alt","caption","draggable","srcset","sizes","isCompact","ready","error","initialSize","protected","zoomOpacity","Q","URLSearchParams","et","it","onInitSlide","processType","closeBtnEl","xhr","abort","iframeEl","placeholderEl","removeChild","onSelectSlide","playVideo","onUnselectSlide","pause","method","func","contentWindow","postMessage","stringify","poller","onDone","isCurrentSlide","setAspectRatio","resizeIframe","onMessage","data","origin","getElementsByClassName","HTMLIFrameElement","source","loadAjaxContent","XMLHttpRequest","onreadystatechange","DONE","status","responseText","ajax","open","setRequestHeader","send","setInlineContent","cloneNode","setIframeContent","autoSize","getElementsByTagName","flex","play","catch","muted","nocookie","getOwnPropertySymbols","propertyIsEnumerable","encodeURIComponent","videoId","videoFormat","poster","aspectRatio","videoAutoplay","videoRatio","videoTpl","vimeo","byline","color","controls","dnt","youtube","enablejsapi","rel","fs","nt","isActive","onReady","removeProgressBar","onSettle","resume","onVisibilityChange","visibilityState","onMouseEnter","inHover","onMouseLeave","onTimerEnd","progressBar","createProgressBar","transitionDuration","pauseOnHover","progressParentEl","showProgress","onPrepare","Autoplay","endIdle","activeElement","playOnStart","ot","hasThumbs","thumbTpl","at","Hidden","Disabled","rt","formatThumb","getSlides","thumbClipWidth","thumbHeight","onInitSlides","onRefreshM","refreshModern","onChangeM","shouldCenter","centerModern","onClickModern","carouselIndex","elementFromPoint","thumbGap","thumbExtraGap","onTransformM","thumbSlideEl","thumbWidth","buildClassic","buildModern","updateModern","resizeModernSlide","getModernThumbPos","lazyLoadModern","getPropertyValue","after","lt","showOnStart","ct","isHidden","hidden","onInit","footer","Thumbs","hide","show","ht","panLeft","icon","change","panRight","panUp","panDown","action","toggle1to1","dt","pt","tabindex","viewBox","xmlns","ft","middle","createEl","createContainer","fancyboxToggleThumbs","fancyboxToggleFullscreen","toggleFullscreen","fancyboxToggleSlideshow","fsAPI","downloadSrc","removeContainer","absolute","items","infobar","download","slideshow","fullscreen","thumbs","mt","Html","Images","Slideshow","Toolbar","gt","bt","vt","yt","wt","isIdle","fullscreenEnabled","webkitFullscreenEnabled","request","ALLOW_KEYBOARD_INPUT","exit","isFullscreen","userSlides","currentStyle","marginRight","initCarousel","manageCaption","captionEl","spinnerEl","idleTimer","setIdle","checkFocus","downloadFilename","onMousemove","onFocus","resetIdle","toggleIdle","blur","isTopmost","ctrlKey","altKey","shiftKey","isContentEditable","clearIdle","manageCloseBtn","fancyboxCaption","ignoreFocusChange","origTabindex","tabIndex","lastFocus","jumpTo","currentTarget","clearContent","proceedClose","resolve","pointerEvents","openers","fromEvent","metaKey","fancyboxTrigger","fancyboxIndex","trigger","delegate","fromNodes","currentSrc","globalJS","manipulateClass","$","each","checkLength","autoFillNoImage","hasAttr","attr","autoAppend","appendTo","autoClone","clone","setBackground","jQuery","background","css","scrollToTop","outerHeight","checkListItem","inputButtonSubmit","parent","is","not","val","removePagination","isObject","obj","ssrDocument","createEvent","initEvent","createElementNS","importNode","host","hostname","href","protocol","getDocument","doc","ssrWindow","pushState","go","back","screen","getWindow","win","Dom7","makeReactive","proto","__proto__","arrayFlat","arr","res","arrayFilter","$$2","selector","trim","toCreate","tempParent","qsa","arrayUnique","uniqueArray","Methods","classNames","hasClass","toggleClass","attrs","attrName","removeAttr","duration","eventType","targetSelector","listener","handleLiveEvent","eventData","dom7EventData","parents","handleEvent","undefined","dom7LiveListeners","proxyListener","dom7Listeners","handlers","handler","dom7proxy","evt","dataIndex","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","box","clientTop","clientLeft","scrollY","scrollX","props","prop","text","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","els","newChild","tempDiv","nextAll","nextEls","prevAll","prevEls","foundElements","found","nextTick","getTranslate","matrix","curTransform","transformMatrix","curStyle","getComputedStyle$1","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isObject$1","isNode","node","extend$1","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","startTime","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","getTime","progress","easeProgress","cos","currentPosition","support","deviceCached","browser","getSupport","calcSupport","smoothScroll","DocumentTouch","passiveListener","checkPassiveListener","supportsPassive","opts","gestures","checkGestures","getDevice","overrides","calcDevice","_temp","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","getBrowser","calcBrowser","isSafari","isWebView","methodName","eventsEmitter","priority","eventsListeners","destroyed","once","onceHandler","__emitterProxy","_len","_key","onAny","eventsAnyListeners","offAny","eventHandler","_len2","_key2","update","updateSize","$el","clientWidth","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","previousSlidesLength","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","shouldResetSlideSize","slidesPerView","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","ceil","activeIndex","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","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","onTranslateToWrapperTransitionEnd","transitionEmit","step","initial","indexAsNumber","isFinite","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","currentSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","loopedSlidesLimit","prependSlides","appendSlides","diff","loopDestroy","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","closestElement","base","__closestFrom","assignedSlot","getRootNode","allowClick","swipeHandler","currentX","targetTouches","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","freeMode","onTouchMove","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","touchAngle","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","setBreakpoint","autoplay","running","paused","run","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","cancel","updateOnWindowResize","events$1","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","directionChanged","needsReLoop","changeDirection","containerEl","currentHeight","points","point","minRatio","substr","addClasses","suffixes","prepareClasses","prefix","resultClasses","autoheight","centered","removeClasses","images","loadImage","checkForComplete","image","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","createElements","url","simulateTouch","uniqueNavElements","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","extendParams","moduleParamName","moduleParams","auto","prototypes","transitionEnd$1","moving","isLocked","cursor","unsetGrabCursor","wasLocked","lastSlideIndex","lastSlideRightEdge","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","passedParams","eventName","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","deleteProps","object","newDefaults","installModule","createElementIfNotDefined","checkProps","getEl","toggleEl","disabled","disabledClass","tagName","lockClass","$nextEl","$prevEl","onPrevClick","onNextClick","hideOnClick","hiddenClass","navigationDisabledClass","_s","targetEl","pagination","clickable","classesToSelector","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scaleX","scaleY","render","paginationHTML","numberOfBullets","Controller","LinearSpline","binarySearch","maxIndex","minIndex","guess","array","i1","i3","interpolate","x2","removeSpline","controller","control","spline","inverse","by","_t","controlled","controlledTranslate","setControlledTranslate","getInterpolateFunction","setControlledTransition","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","waitForTransition","onTransitionEnd","disableOnInteraction","pauseOnMouseEnter","attachMouseEvents","detachMouseEvents","Thumb","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","requireUpdateOnVirtual","overwriteParamsResult","slideShadows","effectTarget","effectParams","$slideEl","transformEl","effectVirtualTransitionEnd","allSlides","$transitionEndTarget","eventTriggered","triggerEvents","EffectFade","fadeEffect","crossFade","tx","ty","slideOpacity","createShadow","shadowClass","$shadowContainer","$shadowEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","custom","zIndex","translateString","rotateString","scaleString","opacityString","shadow","shadowOpacity","swiper_main_banner","autoSlideNextOnThumbSlide","initSwiper","prototypeGroup","protoMethod","use","Resize","observer","animationFrame","resizeHandler","orientationChangeHandler","newWidth","_ref2","contentBoxSize","inlineSize","blockSize","unobserve","Observer","observers","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","__assign","CountUp","endVal","version","startVal","decimalPlaces","useEasing","useGrouping","useIndianSeparators","smartEasingThreshold","smartEasingAmount","separator","decimal","enableScrollSpy","scrollSpyDelay","scrollSpyOnce","finalEndVal","countDown","count","remaining","frameVal","easingFn","toFixed","printValue","formatNumber","numerals","easeOutExpo","formattingFn","validateValue","resetDuration","onScrollFns","handleScroll","onscroll","determineDirectionAndSmartEasing","pauseResume","ensureNumber","concat","isIE","documentMode","defaultConfig","rootMargin","load","img","childs","childSrc","backgroundImageDelimiter","imageSetLinks","firstUrlLink","loaded","markAsLoaded","isLoaded","getElements","root","NodeList","name","ww","header","height_header","burger","overlay","nav_mobile","close_NB","pagesBanner","mainBanner","headerFunction","removeActiveCpn","navMobileSlide","$trigger","$trigger_2","searchActive","keyCode","keypress","log","escBtn","toggleChildMenu","siblings","slideUp","slideToggle","counterUpNumber","counter","youtubeCustom","autoLoading","tag","firstScriptTag","youtubeScriptLoaded","onYouTubePlayerAPIReady","player","triggerYoutubeLoad","youtubeEmbedLink","generateYouTubeEmbed","urlRegex","VideoLoad","pauseVideo","createPlayer","YT","Player","onPlayerReady","onStateChange","onPlayerStateChange","videoTitle","setOption","modestbranding","showinfo","PlayerState","info","PLAYING","playerInfo","playerState","tablsetSetting","activeCommonNav","PageProductDetail","highlightContentSection","sections","navigationLinks","isLastSection","sectionTop","sectionBottom","targetLink","last","contentSection","toggleBuyButton","styles$1","introLoading","getCookie","Get_Cookie","video","fadeOut","Set_Cookie","async","fetchVideo","fetch","videoResponse","lozad","IntersectionObserver","entry","intersectionRatio","isIntersecting","onIntersection","elements","triggerLoad","enableAutoReload","lozadInit","check_name","cookiePairs","cookie","pair","decodeURIComponent","expires","domain","secure","today","setTime","expires_date","escape","toGMTString","link","head","swiperInit","swiperParameter","ele","home_2_2_thumb","home_2_2_main","introduce_4_thumb","project_detail_thumb","slideChange","project_detail_thumb_popup","swiperVideo","autoPlayNextVideo","getVideoData","ended","currentTime","err","fancyboxCustom","closeCircle","closeNormal","hasCloseNormal","mainClass","closing","forms","Sys","WebForms","PageRequestManager","add_endRequest","sender","_errorHandled","reload","expandContent","NewsTemplate","resize","onLoadToSection","destination","externalJS","useVariables"],"mappings":"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","file":"main.min.js","sourcesContent":["(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define('main', ['exports'], factory) :\n\t(global = global || self, factory(global.main = {}));\n}(this, (function (exports) { 'use strict';\n\n\tvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\tvar menuspy = createCommonjsModule(function (module, exports) {\n\t/*! MenuSpy v1.3.0 (Jan 31 2018) - http://leocs.me/menuspy/ - Copyright (c) 2018 Leonardo Santos; MIT License */\n\t(function (global, factory) {\n\t module.exports = factory() ;\n\t})(commonjsGlobal, function () {\n\n\t var utils = {\n\t extend: function extend(a, b) {\n\t for (var key in b) {\n\t if (b.hasOwnProperty(key)) {\n\t a[key] = b[key];\n\t }\n\t }\n\n\t return a;\n\t },\n\t offset: function offset(el) {\n\t var rect = el.getBoundingClientRect();\n\t return {\n\t top: rect.top + window.pageYOffset,\n\t left: rect.left + window.pageXOffset\n\t };\n\t },\n\t scrollTop: function scrollTop() {\n\t return window.pageYOffset || document.documentElement.scrollTop;\n\t },\n\t addClass: function addClass(el, className) {\n\t if (el.classList) {\n\t el.classList.add(className);\n\t } else {\n\t var classes = el.className.split(' ');\n\t var existingIndex = classes.indexOf(className);\n\n\t if (existingIndex === -1) {\n\t classes.push(className);\n\t }\n\n\t el.className = classes.join(' ');\n\t }\n\t },\n\t removeClass: function removeClass(el, className) {\n\t if (el.classList) {\n\t el.classList.remove(className);\n\t } else {\n\t el.className = el.className.replace(new RegExp(\"(^|\\\\b)\" + className.split(' ').join('|') + \"(\\\\b|$)\", 'gi'), ' ');\n\t }\n\t },\n\t debounce: function debounce(fn, delay) {\n\t var timeout = null;\n\t return function () {\n\t var args = arguments;\n\t var context = this;\n\n\t if (!timeout) {\n\t timeout = setTimeout(function () {\n\t timeout = 0;\n\t return fn.apply(context, args);\n\t }, delay);\n\t }\n\t };\n\t }\n\t };\n\n\t var MenuSpy = function MenuSpy(element, options) {\n\t var this$1 = this;\n\n\t if (!element) {\n\t return;\n\t }\n\n\t var defaults = {\n\t menuItemSelector: 'a[href^=\"#\"]',\n\t activeClass: 'active',\n\t threshold: 15,\n\t enableLocationHash: true,\n\t hashTimeout: 600,\n\t callback: null\n\t };\n\t this.element = typeof element === 'string' ? document.querySelector(element) : element;\n\t this.options = utils.extend(defaults, options);\n\t this.assignValues();\n\t this.debouncedAssignValuesFn = utils.debounce(function () {\n\t return this$1.assignValues();\n\t });\n\t window.addEventListener('resize', this.debouncedAssignValuesFn);\n\t this.debouncedHashFn = utils.debounce(function () {\n\t var hash = this$1.lastInViewElm ? \"#\" + this$1.lastInViewElm.id : '#';\n\n\t if (history.replaceState) {\n\t history.replaceState(null, null, hash);\n\t } else {\n\t var st = utils.scrollTop();\n\t window.location.hash = hash;\n\t window.scrollTo(0, st);\n\t }\n\t }, this.options.hashTimeout);\n\t this.cacheItems();\n\t this.scrollFn();\n\t };\n\n\t MenuSpy.prototype.assignValues = function assignValues() {\n\t this.currScrollTop = 0;\n\t this.lastInViewElm = null;\n\t this.menuHeight = this.element.offsetHeight + this.options.threshold;\n\t this.menuItems = [].slice.call(this.element.querySelectorAll(this.options.menuItemSelector));\n\t this.raf = null;\n\t };\n\n\t MenuSpy.prototype.cacheItems = function cacheItems() {\n\t this.scrollItems = this.menuItems.map(function (elm) {\n\t var target = elm.dataset.target ? document.querySelector(elm.dataset.target) : document.getElementById(elm.hash.slice(1));\n\n\t if (target) {\n\t var offset = Math.floor(utils.offset(target).top);\n\t return {\n\t elm: elm,\n\t target: target,\n\t offset: offset\n\t };\n\t }\n\n\t return false;\n\t });\n\t this.scrollItems = this.scrollItems.filter(Boolean).sort(function (a, b) {\n\t return a.offset - b.offset;\n\t });\n\t };\n\n\t MenuSpy.prototype.tick = function tick() {\n\t var fromTop = this.currScrollTop + this.menuHeight;\n\t var inViewElms = this.scrollItems.filter(function (item) {\n\t return item.offset < fromTop;\n\t });\n\t this.activateItem(inViewElms.pop());\n\t };\n\n\t MenuSpy.prototype.activateItem = function activateItem(inViewElm) {\n\t var this$1 = this;\n\t var ref = this.options;\n\t var activeClass = ref.activeClass;\n\t var callback = ref.callback;\n\n\t if (!inViewElm) {\n\t this.scrollItems.forEach(function (item) {\n\t return utils.removeClass(item.elm.parentNode, activeClass);\n\t });\n\t this.lastInViewElm = null;\n\n\t if (this.options.enableLocationHash) {\n\t this.debouncedHashFn();\n\t }\n\n\t return;\n\t }\n\n\t if (this.lastInViewElm !== inViewElm.target) {\n\t this.lastInViewElm = inViewElm.target;\n\t this.scrollItems.forEach(function (item) {\n\t utils.removeClass(item.elm.parentNode, activeClass);\n\n\t if (item.target === inViewElm.target) {\n\t utils.addClass(item.elm.parentNode, activeClass);\n\n\t if (typeof callback === 'function') {\n\t callback.call(this$1, item);\n\t }\n\n\t if (this$1.options.enableLocationHash) {\n\t this$1.debouncedHashFn();\n\t }\n\t }\n\t });\n\t }\n\t };\n\n\t MenuSpy.prototype.scrollFn = function scrollFn() {\n\t var st = utils.scrollTop();\n\n\t if (this.currScrollTop !== st) {\n\t this.currScrollTop = st;\n\t this.tick();\n\t }\n\n\t this.raf = window.requestAnimationFrame(this.scrollFn.bind(this));\n\t };\n\n\t MenuSpy.prototype.destroy = function destroy() {\n\t if (this.raf) {\n\t window.cancelAnimationFrame(this.raf);\n\t }\n\n\t window.removeEventListener('resize', this.debouncedAssignValuesFn);\n\t };\n\n\t return MenuSpy;\n\t});\n\t});\n\n\tconst t = (t, e = 1e4) => (t = parseFloat(t + \"\") || 0, Math.round((t + Number.EPSILON) * e) / e),\n\t e = function (t) {\n\t if (!(t && t instanceof Element && t.offsetParent)) return !1;\n\t const e = t.scrollHeight > t.clientHeight,\n\t i = window.getComputedStyle(t).overflowY,\n\t n = -1 !== i.indexOf(\"hidden\"),\n\t s = -1 !== i.indexOf(\"visible\");\n\t return e && !n && !s;\n\t},\n\t i = function (t, n) {\n\t return !(!t || t === document.body || n && t === n) && (e(t) ? t : i(t.parentElement, n));\n\t},\n\t n = function (t) {\n\t var e = new DOMParser().parseFromString(t, \"text/html\").body;\n\n\t if (e.childElementCount > 1) {\n\t for (var i = document.createElement(\"div\"); e.firstChild;) i.appendChild(e.firstChild);\n\n\t return i;\n\t }\n\n\t return e.firstChild;\n\t},\n\t s = t => `${t || \"\"}`.split(\" \").filter(t => !!t),\n\t o = (t, e, i) => {\n\t s(e).forEach(e => {\n\t t && t.classList.toggle(e, i || !1);\n\t });\n\t};\n\n\tclass a {\n\t constructor(t) {\n\t Object.defineProperty(this, \"pageX\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"pageY\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"clientX\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"clientY\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"id\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"time\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"nativePointer\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), this.nativePointer = t, this.pageX = t.pageX, this.pageY = t.pageY, this.clientX = t.clientX, this.clientY = t.clientY, this.id = self.Touch && t instanceof Touch ? t.identifier : -1, this.time = Date.now();\n\t }\n\n\t}\n\n\tconst r = {\n\t passive: !1\n\t};\n\n\tclass l {\n\t constructor(t, {\n\t start: e = () => !0,\n\t move: i = () => {},\n\t end: n = () => {}\n\t }) {\n\t Object.defineProperty(this, \"element\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"startCallback\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"moveCallback\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"endCallback\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"currentPointers\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: []\n\t }), Object.defineProperty(this, \"startPointers\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: []\n\t }), this.element = t, this.startCallback = e, this.moveCallback = i, this.endCallback = n;\n\n\t for (const t of [\"onPointerStart\", \"onTouchStart\", \"onMove\", \"onTouchEnd\", \"onPointerEnd\", \"onWindowBlur\"]) this[t] = this[t].bind(this);\n\n\t this.element.addEventListener(\"mousedown\", this.onPointerStart, r), this.element.addEventListener(\"touchstart\", this.onTouchStart, r), this.element.addEventListener(\"touchmove\", this.onMove, r), this.element.addEventListener(\"touchend\", this.onTouchEnd), this.element.addEventListener(\"touchcancel\", this.onTouchEnd);\n\t }\n\n\t onPointerStart(t) {\n\t if (!t.buttons || 0 !== t.button) return;\n\t const e = new a(t);\n\t this.currentPointers.some(t => t.id === e.id) || this.triggerPointerStart(e, t) && (window.addEventListener(\"mousemove\", this.onMove), window.addEventListener(\"mouseup\", this.onPointerEnd), window.addEventListener(\"blur\", this.onWindowBlur));\n\t }\n\n\t onTouchStart(t) {\n\t for (const e of Array.from(t.changedTouches || [])) this.triggerPointerStart(new a(e), t);\n\n\t window.addEventListener(\"blur\", this.onWindowBlur);\n\t }\n\n\t onMove(t) {\n\t const e = this.currentPointers.slice(),\n\t i = \"changedTouches\" in t ? Array.from(t.changedTouches || []).map(t => new a(t)) : [new a(t)],\n\t n = [];\n\n\t for (const t of i) {\n\t const e = this.currentPointers.findIndex(e => e.id === t.id);\n\t e < 0 || (n.push(t), this.currentPointers[e] = t);\n\t }\n\n\t n.length && this.moveCallback(t, this.currentPointers.slice(), e);\n\t }\n\n\t onPointerEnd(t) {\n\t t.buttons > 0 && 0 !== t.button || (this.triggerPointerEnd(t, new a(t)), window.removeEventListener(\"mousemove\", this.onMove), window.removeEventListener(\"mouseup\", this.onPointerEnd), window.removeEventListener(\"blur\", this.onWindowBlur));\n\t }\n\n\t onTouchEnd(t) {\n\t for (const e of Array.from(t.changedTouches || [])) this.triggerPointerEnd(t, new a(e));\n\t }\n\n\t triggerPointerStart(t, e) {\n\t return !!this.startCallback(e, t, this.currentPointers.slice()) && (this.currentPointers.push(t), this.startPointers.push(t), !0);\n\t }\n\n\t triggerPointerEnd(t, e) {\n\t const i = this.currentPointers.findIndex(t => t.id === e.id);\n\t i < 0 || (this.currentPointers.splice(i, 1), this.startPointers.splice(i, 1), this.endCallback(t, e, this.currentPointers.slice()));\n\t }\n\n\t onWindowBlur() {\n\t this.clear();\n\t }\n\n\t clear() {\n\t for (; this.currentPointers.length;) {\n\t const t = this.currentPointers[this.currentPointers.length - 1];\n\t this.currentPointers.splice(this.currentPointers.length - 1, 1), this.startPointers.splice(this.currentPointers.length - 1, 1), this.endCallback(new Event(\"touchend\", {\n\t bubbles: !0,\n\t cancelable: !0,\n\t clientX: t.clientX,\n\t clientY: t.clientY\n\t }), t, this.currentPointers.slice());\n\t }\n\t }\n\n\t stop() {\n\t this.element.removeEventListener(\"mousedown\", this.onPointerStart, r), this.element.removeEventListener(\"touchstart\", this.onTouchStart, r), this.element.removeEventListener(\"touchmove\", this.onMove, r), this.element.removeEventListener(\"touchend\", this.onTouchEnd), this.element.removeEventListener(\"touchcancel\", this.onTouchEnd), window.removeEventListener(\"mousemove\", this.onMove), window.removeEventListener(\"mouseup\", this.onPointerEnd), window.removeEventListener(\"blur\", this.onWindowBlur);\n\t }\n\n\t}\n\n\tfunction c(t, e) {\n\t return e ? Math.sqrt(Math.pow(e.clientX - t.clientX, 2) + Math.pow(e.clientY - t.clientY, 2)) : 0;\n\t}\n\n\tfunction h(t, e) {\n\t return e ? {\n\t clientX: (t.clientX + e.clientX) / 2,\n\t clientY: (t.clientY + e.clientY) / 2\n\t } : t;\n\t}\n\n\tconst d = t => \"object\" == typeof t && null !== t && t.constructor === Object && \"[object Object]\" === Object.prototype.toString.call(t),\n\t u = (t, ...e) => {\n\t const i = e.length;\n\n\t for (let n = 0; n < i; n++) {\n\t const i = e[n] || {};\n\t Object.entries(i).forEach(([e, i]) => {\n\t const n = Array.isArray(i) ? [] : {};\n\t t[e] || Object.assign(t, {\n\t [e]: n\n\t }), d(i) ? Object.assign(t[e], u(n, i)) : Array.isArray(i) ? Object.assign(t, {\n\t [e]: [...i]\n\t }) : Object.assign(t, {\n\t [e]: i\n\t });\n\t });\n\t }\n\n\t return t;\n\t},\n\t p = function (t, e) {\n\t return t.split(\".\").reduce((t, e) => \"object\" == typeof t ? t[e] : void 0, e);\n\t};\n\n\tclass f {\n\t constructor(t = {}) {\n\t Object.defineProperty(this, \"options\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: t\n\t }), Object.defineProperty(this, \"events\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: new Map()\n\t }), this.setOptions(t);\n\n\t for (const t of Object.getOwnPropertyNames(Object.getPrototypeOf(this))) t.startsWith(\"on\") && \"function\" == typeof this[t] && (this[t] = this[t].bind(this));\n\t }\n\n\t setOptions(t) {\n\t this.options = t ? u({}, this.constructor.defaults, t) : {};\n\n\t for (const [t, e] of Object.entries(this.option(\"on\") || {})) this.on(t, e);\n\t }\n\n\t option(t, ...e) {\n\t let i = p(t, this.options);\n\t return i && \"function\" == typeof i && (i = i.call(this, this, ...e)), i;\n\t }\n\n\t optionFor(t, e, i, ...n) {\n\t let s = p(e, t);\n\t var o;\n\t \"string\" != typeof (o = s) || isNaN(o) || isNaN(parseFloat(o)) || (s = parseFloat(s)), \"true\" === s && (s = !0), \"false\" === s && (s = !1), s && \"function\" == typeof s && (s = s.call(this, this, t, ...n));\n\t let a = p(e, this.options);\n\t return a && \"function\" == typeof a ? s = a.call(this, this, t, ...n, s) : void 0 === s && (s = a), void 0 === s ? i : s;\n\t }\n\n\t cn(t) {\n\t const e = this.options.classes;\n\t return e && e[t] || \"\";\n\t }\n\n\t localize(t, e = []) {\n\t t = String(t).replace(/\\{\\{(\\w+).?(\\w+)?\\}\\}/g, (t, e, i) => {\n\t let n = \"\";\n\t return i ? n = this.option(`${e[0] + e.toLowerCase().substring(1)}.l10n.${i}`) : e && (n = this.option(`l10n.${e}`)), n || (n = t), n;\n\t });\n\n\t for (let i = 0; i < e.length; i++) t = t.split(e[i][0]).join(e[i][1]);\n\n\t return t = t.replace(/\\{\\{(.*?)\\}\\}/g, (t, e) => e);\n\t }\n\n\t on(t, e) {\n\t let i = [];\n\t \"string\" == typeof t ? i = t.split(\" \") : Array.isArray(t) && (i = t), this.events || (this.events = new Map()), i.forEach(t => {\n\t let i = this.events.get(t);\n\t i || (this.events.set(t, []), i = []), i.includes(e) || i.push(e), this.events.set(t, i);\n\t });\n\t }\n\n\t off(t, e) {\n\t let i = [];\n\t \"string\" == typeof t ? i = t.split(\" \") : Array.isArray(t) && (i = t), i.forEach(t => {\n\t const i = this.events.get(t);\n\n\t if (Array.isArray(i)) {\n\t const t = i.indexOf(e);\n\t t > -1 && i.splice(t, 1);\n\t }\n\t });\n\t }\n\n\t emit(t, ...e) {\n\t [...(this.events.get(t) || [])].forEach(t => t(this, ...e)), \"*\" !== t && this.emit(\"*\", t, ...e);\n\t }\n\n\t}\n\n\tObject.defineProperty(f, \"version\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: \"5.0.15\"\n\t}), Object.defineProperty(f, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {}\n\t});\n\n\tclass m extends f {\n\t constructor(t = {}) {\n\t super(t), Object.defineProperty(this, \"plugins\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {}\n\t });\n\t }\n\n\t attachPlugins(t = {}) {\n\t const e = new Map();\n\n\t for (const [i, n] of Object.entries(t)) {\n\t const t = this.option(i),\n\t s = this.plugins[i];\n\t s || !1 === t ? s && !1 === t && (s.detach(), delete this.plugins[i]) : e.set(i, new n(this, t || {}));\n\t }\n\n\t for (const [t, i] of e) this.plugins[t] = i, i.attach();\n\n\t this.emit(\"attachPlugins\");\n\t }\n\n\t detachPlugins(t) {\n\t t = t || Object.keys(this.plugins);\n\n\t for (const e of t) {\n\t const t = this.plugins[e];\n\t t && t.detach(), delete this.plugins[e];\n\t }\n\n\t return this.emit(\"detachPlugins\"), this;\n\t }\n\n\t}\n\n\tvar g;\n\t!function (t) {\n\t t[t.Init = 0] = \"Init\", t[t.Error = 1] = \"Error\", t[t.Ready = 2] = \"Ready\", t[t.Panning = 3] = \"Panning\", t[t.Mousemove = 4] = \"Mousemove\", t[t.Destroy = 5] = \"Destroy\";\n\t}(g || (g = {}));\n\n\tconst b = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\"],\n\t v = {\n\t PANUP: \"Move up\",\n\t PANDOWN: \"Move down\",\n\t PANLEFT: \"Move left\",\n\t PANRIGHT: \"Move right\",\n\t ZOOMIN: \"Zoom in\",\n\t ZOOMOUT: \"Zoom out\",\n\t TOGGLEZOOM: \"Toggle zoom level\",\n\t TOGGLE1TO1: \"Toggle zoom level\",\n\t ITERATEZOOM: \"Toggle zoom level\",\n\t ROTATECCW: \"Rotate counterclockwise\",\n\t ROTATECW: \"Rotate clockwise\",\n\t FLIPX: \"Flip horizontally\",\n\t FLIPY: \"Flip vertically\",\n\t FITX: \"Fit horizontally\",\n\t FITY: \"Fit vertically\",\n\t RESET: \"Reset\",\n\t TOGGLEFS: \"Toggle fullscreen\"\n\t},\n\t y = {\n\t content: null,\n\t width: \"auto\",\n\t height: \"auto\",\n\t panMode: \"drag\",\n\t touch: !0,\n\t dragMinThreshold: 3,\n\t lockAxis: !1,\n\t mouseMoveFactor: 1,\n\t mouseMoveFriction: .12,\n\t zoom: !0,\n\t pinchToZoom: !0,\n\t panOnlyZoomed: \"auto\",\n\t minScale: 1,\n\t maxScale: 2,\n\t friction: .25,\n\t dragFriction: .35,\n\t decelFriction: .05,\n\t click: \"toggleZoom\",\n\t dblClick: !1,\n\t wheel: \"zoom\",\n\t wheelLimit: 7,\n\t spinner: !0,\n\t bounds: \"auto\",\n\t infinite: !1,\n\t rubberband: !0,\n\t bounce: !0,\n\t maxVelocity: 75,\n\t transformParent: !1,\n\t classes: {\n\t content: \"f-panzoom__content\",\n\t isLoading: \"is-loading\",\n\t canZoomIn: \"can-zoom_in\",\n\t canZoomOut: \"can-zoom_out\",\n\t isDraggable: \"is-draggable\",\n\t isDragging: \"is-dragging\",\n\t inFullscreen: \"in-fullscreen\",\n\t htmlHasFullscreen: \"with-panzoom-in-fullscreen\"\n\t },\n\t l10n: v\n\t},\n\t w = '
',\n\t x = t => t && null !== t && t instanceof Element && \"nodeType\" in t,\n\t E = (t, e) => {\n\t t && s(e).forEach(e => {\n\t t.classList.remove(e);\n\t });\n\t},\n\t S = (t, e) => {\n\t t && s(e).forEach(e => {\n\t t.classList.add(e);\n\t });\n\t},\n\t P = {\n\t a: 1,\n\t b: 0,\n\t c: 0,\n\t d: 1,\n\t e: 0,\n\t f: 0\n\t};\n\n\tlet C = null,\n\t M = null;\n\n\tclass T extends m {\n\t get isTouchDevice() {\n\t return null === M && (M = window.matchMedia(\"(hover: none)\").matches), M;\n\t }\n\n\t get isMobile() {\n\t return null === C && (C = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent)), C;\n\t }\n\n\t get panMode() {\n\t return \"mousemove\" !== this.options.panMode || this.isTouchDevice ? \"drag\" : \"mousemove\";\n\t }\n\n\t get panOnlyZoomed() {\n\t const t = this.options.panOnlyZoomed;\n\t return \"auto\" === t ? this.isTouchDevice : t;\n\t }\n\n\t get isInfinite() {\n\t return this.option(\"infinite\");\n\t }\n\n\t get angle() {\n\t return 180 * Math.atan2(this.current.b, this.current.a) / Math.PI || 0;\n\t }\n\n\t get targetAngle() {\n\t return 180 * Math.atan2(this.target.b, this.target.a) / Math.PI || 0;\n\t }\n\n\t get scale() {\n\t const {\n\t a: t,\n\t b: e\n\t } = this.current;\n\t return Math.sqrt(t * t + e * e) || 1;\n\t }\n\n\t get targetScale() {\n\t const {\n\t a: t,\n\t b: e\n\t } = this.target;\n\t return Math.sqrt(t * t + e * e) || 1;\n\t }\n\n\t get minScale() {\n\t return this.option(\"minScale\") || 1;\n\t }\n\n\t get fullScale() {\n\t const {\n\t contentRect: t\n\t } = this;\n\t return t.fullWidth / t.fitWidth || 1;\n\t }\n\n\t get maxScale() {\n\t return this.fullScale * (this.option(\"maxScale\") || 1) || 1;\n\t }\n\n\t get coverScale() {\n\t const {\n\t containerRect: t,\n\t contentRect: e\n\t } = this,\n\t i = Math.max(t.height / e.fitHeight, t.width / e.fitWidth) || 1;\n\t return Math.min(this.fullScale, i);\n\t }\n\n\t get isScaling() {\n\t return Math.abs(this.targetScale - this.scale) > 1e-5 && !this.isResting;\n\t }\n\n\t get isContentLoading() {\n\t const t = this.content;\n\t return !!(t && t instanceof HTMLImageElement) && !t.complete;\n\t }\n\n\t get isResting() {\n\t if (this.isBouncingX || this.isBouncingY) return !1;\n\n\t for (const t of b) {\n\t const e = \"e\" == t || \"f\" === t ? .001 : 1e-5;\n\t if (Math.abs(this.target[t] - this.current[t]) > e) return !1;\n\t }\n\n\t return !(!this.ignoreBounds && !this.checkBounds().inBounds);\n\t }\n\n\t constructor(t, e = {}, i = {}) {\n\t var s;\n\t if (super(e), Object.defineProperty(this, \"pointerTracker\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"resizeObserver\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"updateTimer\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"clickTimer\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"rAF\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"isTicking\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t }), Object.defineProperty(this, \"friction\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"ignoreBounds\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t }), Object.defineProperty(this, \"isBouncingX\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t }), Object.defineProperty(this, \"isBouncingY\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t }), Object.defineProperty(this, \"clicks\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"trackingPoints\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: []\n\t }), Object.defineProperty(this, \"pwt\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"cwd\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"pmme\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"state\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: g.Init\n\t }), Object.defineProperty(this, \"isDragging\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t }), Object.defineProperty(this, \"container\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"content\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"spinner\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"containerRect\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {\n\t width: 0,\n\t height: 0,\n\t innerWidth: 0,\n\t innerHeight: 0\n\t }\n\t }), Object.defineProperty(this, \"contentRect\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {\n\t top: 0,\n\t right: 0,\n\t bottom: 0,\n\t left: 0,\n\t fullWidth: 0,\n\t fullHeight: 0,\n\t fitWidth: 0,\n\t fitHeight: 0,\n\t width: 0,\n\t height: 0\n\t }\n\t }), Object.defineProperty(this, \"dragStart\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {\n\t x: 0,\n\t y: 0,\n\t top: 0,\n\t left: 0,\n\t time: 0\n\t }\n\t }), Object.defineProperty(this, \"dragOffset\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {\n\t x: 0,\n\t y: 0,\n\t time: 0\n\t }\n\t }), Object.defineProperty(this, \"current\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: Object.assign({}, P)\n\t }), Object.defineProperty(this, \"target\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: Object.assign({}, P)\n\t }), Object.defineProperty(this, \"velocity\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {\n\t a: 0,\n\t b: 0,\n\t c: 0,\n\t d: 0,\n\t e: 0,\n\t f: 0\n\t }\n\t }), Object.defineProperty(this, \"lockedAxis\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t }), !t) throw new Error(\"Container Element Not Found\");\n\t this.container = t, this.initContent(), this.attachPlugins(Object.assign(Object.assign({}, T.Plugins), i)), this.emit(\"init\");\n\t const o = this.content;\n\n\t if (o.addEventListener(\"load\", this.onLoad), o.addEventListener(\"error\", this.onError), this.isContentLoading) {\n\t if (this.option(\"spinner\")) {\n\t t.classList.add(this.cn(\"isLoading\"));\n\t const e = n(w);\n\t !t.contains(o) || o.parentElement instanceof HTMLPictureElement ? this.spinner = t.appendChild(e) : this.spinner = (null === (s = o.parentElement) || void 0 === s ? void 0 : s.insertBefore(e, o)) || null;\n\t }\n\n\t this.emit(\"beforeLoad\");\n\t } else queueMicrotask(() => {\n\t this.enable();\n\t });\n\t }\n\n\t initContent() {\n\t const {\n\t container: t\n\t } = this,\n\t e = this.cn(\"content\");\n\t let i = this.option(\"content\") || t.querySelector(`.${e}`);\n\t if (i || (i = t.querySelector(\"img,picture\") || t.firstElementChild, i && S(i, e)), i instanceof HTMLPictureElement && (i = i.querySelector(\"img\")), !i) throw new Error(\"No content found\");\n\t this.content = i;\n\t }\n\n\t onLoad() {\n\t this.spinner && (this.spinner.remove(), this.spinner = null), this.option(\"spinner\") && this.container.classList.remove(this.cn(\"isLoading\")), this.emit(\"afterLoad\"), this.state === g.Init ? this.enable() : this.updateMetrics();\n\t }\n\n\t onError() {\n\t this.state !== g.Destroy && (this.spinner && (this.spinner.remove(), this.spinner = null), this.stop(), this.detachEvents(), this.state = g.Error, this.emit(\"error\"));\n\t }\n\n\t attachObserver() {\n\t var t;\n\n\t const e = () => Math.abs(this.containerRect.width - this.container.getBoundingClientRect().width) > .1 || Math.abs(this.containerRect.height - this.container.getBoundingClientRect().height) > .1;\n\n\t this.resizeObserver || void 0 === window.ResizeObserver || (this.resizeObserver = new ResizeObserver(() => {\n\t this.updateTimer || (e() ? (this.onResize(), this.isMobile && (this.updateTimer = setTimeout(() => {\n\t e() && this.onResize(), this.updateTimer = null;\n\t }, 500))) : this.updateTimer && (clearTimeout(this.updateTimer), this.updateTimer = null));\n\t })), null === (t = this.resizeObserver) || void 0 === t || t.observe(this.container);\n\t }\n\n\t detachObserver() {\n\t var t;\n\t null === (t = this.resizeObserver) || void 0 === t || t.disconnect();\n\t }\n\n\t attachEvents() {\n\t const {\n\t container: t\n\t } = this;\n\t t.addEventListener(\"click\", this.onClick, {\n\t passive: !1,\n\t capture: !1\n\t }), t.addEventListener(\"wheel\", this.onWheel, {\n\t passive: !1\n\t }), this.pointerTracker = new l(t, {\n\t start: this.onPointerDown,\n\t move: this.onPointerMove,\n\t end: this.onPointerUp\n\t }), document.addEventListener(\"mousemove\", this.onMouseMove);\n\t }\n\n\t detachEvents() {\n\t var t;\n\t const {\n\t container: e\n\t } = this;\n\t e.removeEventListener(\"click\", this.onClick, {\n\t passive: !1,\n\t capture: !1\n\t }), e.removeEventListener(\"wheel\", this.onWheel, {\n\t passive: !1\n\t }), null === (t = this.pointerTracker) || void 0 === t || t.stop(), this.pointerTracker = null, document.removeEventListener(\"mousemove\", this.onMouseMove), document.removeEventListener(\"keydown\", this.onKeydown, !0), this.clickTimer && (clearTimeout(this.clickTimer), this.clickTimer = null), this.updateTimer && (clearTimeout(this.updateTimer), this.updateTimer = null);\n\t }\n\n\t animate() {\n\t const t = this.friction;\n\t this.setTargetForce();\n\t const e = this.option(\"maxVelocity\");\n\n\t for (const i of b) t ? (this.velocity[i] *= 1 - t, e && !this.isScaling && (this.velocity[i] = Math.max(Math.min(this.velocity[i], e), -1 * e)), this.current[i] += this.velocity[i]) : this.current[i] = this.target[i];\n\n\t this.setTransform(), this.setEdgeForce(), !this.isResting || this.isDragging ? this.rAF = requestAnimationFrame(() => this.animate()) : this.stop(\"current\");\n\t }\n\n\t setTargetForce() {\n\t for (const t of b) \"e\" === t && this.isBouncingX || \"f\" === t && this.isBouncingY || (this.velocity[t] = (1 / (1 - this.friction) - 1) * (this.target[t] - this.current[t]));\n\t }\n\n\t checkBounds(t = 0, e = 0) {\n\t const {\n\t current: i\n\t } = this,\n\t n = i.e + t,\n\t s = i.f + e,\n\t o = this.getBounds(),\n\t {\n\t x: a,\n\t y: r\n\t } = o,\n\t l = a.min,\n\t c = a.max,\n\t h = r.min,\n\t d = r.max;\n\t let u = 0,\n\t p = 0;\n\t return l !== 1 / 0 && n < l ? u = l - n : c !== 1 / 0 && n > c && (u = c - n), h !== 1 / 0 && s < h ? p = h - s : d !== 1 / 0 && s > d && (p = d - s), Math.abs(u) < .001 && (u = 0), Math.abs(p) < .001 && (p = 0), Object.assign(Object.assign({}, o), {\n\t xDiff: u,\n\t yDiff: p,\n\t inBounds: !u && !p\n\t });\n\t }\n\n\t clampTargetBounds() {\n\t const {\n\t target: t\n\t } = this,\n\t {\n\t x: e,\n\t y: i\n\t } = this.getBounds();\n\t e.min !== 1 / 0 && (t.e = Math.max(t.e, e.min)), e.max !== 1 / 0 && (t.e = Math.min(t.e, e.max)), i.min !== 1 / 0 && (t.f = Math.max(t.f, i.min)), i.max !== 1 / 0 && (t.f = Math.min(t.f, i.max));\n\t }\n\n\t calculateContentDim(t = this.current) {\n\t const {\n\t content: e,\n\t contentRect: i\n\t } = this,\n\t {\n\t fitWidth: n,\n\t fitHeight: s,\n\t fullWidth: o,\n\t fullHeight: a\n\t } = i;\n\t let r = o,\n\t l = a;\n\n\t if (this.option(\"zoom\") || 0 !== this.angle) {\n\t const i = !(e instanceof HTMLImageElement) && (\"none\" === window.getComputedStyle(e).maxWidth || \"none\" === window.getComputedStyle(e).maxHeight),\n\t c = i ? o : n,\n\t h = i ? a : s,\n\t d = this.getMatrix(t),\n\t u = new DOMPoint(0, 0).matrixTransform(d),\n\t p = new DOMPoint(0 + c, 0).matrixTransform(d),\n\t f = new DOMPoint(0 + c, 0 + h).matrixTransform(d),\n\t m = new DOMPoint(0, 0 + h).matrixTransform(d),\n\t g = Math.abs(f.x - u.x),\n\t b = Math.abs(f.y - u.y),\n\t v = Math.abs(m.x - p.x),\n\t y = Math.abs(m.y - p.y);\n\t r = Math.max(g, v), l = Math.max(b, y);\n\t }\n\n\t return {\n\t contentWidth: r,\n\t contentHeight: l\n\t };\n\t }\n\n\t setEdgeForce() {\n\t if (this.ignoreBounds || this.isDragging || \"mousemove\" === this.panMode || this.targetScale < this.scale) return this.isBouncingX = !1, void (this.isBouncingY = !1);\n\t const {\n\t target: t\n\t } = this,\n\t {\n\t x: e,\n\t y: i,\n\t xDiff: n,\n\t yDiff: s\n\t } = this.checkBounds();\n\t const o = this.option(\"maxVelocity\");\n\t let a = this.velocity.e,\n\t r = this.velocity.f;\n\t 0 !== n ? (this.isBouncingX = !0, n * a <= 0 ? a += .14 * n : (a = .14 * n, e.min !== 1 / 0 && (this.target.e = Math.max(t.e, e.min)), e.max !== 1 / 0 && (this.target.e = Math.min(t.e, e.max))), o && (a = Math.max(Math.min(a, o), -1 * o))) : this.isBouncingX = !1, 0 !== s ? (this.isBouncingY = !0, s * r <= 0 ? r += .14 * s : (r = .14 * s, i.min !== 1 / 0 && (this.target.f = Math.max(t.f, i.min)), i.max !== 1 / 0 && (this.target.f = Math.min(t.f, i.max))), o && (r = Math.max(Math.min(r, o), -1 * o))) : this.isBouncingY = !1, this.isBouncingX && (this.velocity.e = a), this.isBouncingY && (this.velocity.f = r);\n\t }\n\n\t enable() {\n\t const {\n\t content: t\n\t } = this,\n\t e = new DOMMatrixReadOnly(window.getComputedStyle(t).transform);\n\n\t for (const t of b) this.current[t] = this.target[t] = e[t];\n\n\t this.updateMetrics(), this.attachObserver(), this.attachEvents(), this.state = g.Ready, this.emit(\"ready\");\n\t }\n\n\t onClick(t) {\n\t var e;\n\t this.isDragging && (null === (e = this.pointerTracker) || void 0 === e || e.clear(), this.trackingPoints = [], this.startDecelAnim());\n\t const i = t.target;\n\t if (!i || t.defaultPrevented) return;\n\t if (i && i.hasAttribute(\"disabled\")) return t.preventDefault(), void t.stopPropagation();\n\t if ((() => {\n\t const t = window.getSelection();\n\t return t && \"Range\" === t.type;\n\t })() && !i.closest(\"button\")) return;\n\t const n = i.closest(\"[data-panzoom-action]\"),\n\t s = i.closest(\"[data-panzoom-change]\"),\n\t o = n || s,\n\t a = o && x(o) ? o.dataset : null;\n\n\t if (a) {\n\t const e = a.panzoomChange,\n\t i = a.panzoomAction;\n\n\t if ((e || i) && t.preventDefault(), e) {\n\t let t = {};\n\n\t try {\n\t t = JSON.parse(e);\n\t } catch (t) {\n\t console && console.warn(\"The given data was not valid JSON\");\n\t }\n\n\t return void this.applyChange(t);\n\t }\n\n\t if (i) return void (this[i] && this[i]());\n\t }\n\n\t if (Math.abs(this.dragOffset.x) > 3 || Math.abs(this.dragOffset.y) > 3) return t.preventDefault(), void t.stopPropagation();\n\t const r = this.content.getBoundingClientRect();\n\t if (this.dragStart.time && !this.canZoomOut() && (Math.abs(r.x - this.dragStart.x) > 2 || Math.abs(r.y - this.dragStart.y) > 2)) return;\n\t this.dragStart.time = 0;\n\n\t const l = e => {\n\t this.option(\"zoom\") && e && \"string\" == typeof e && /(iterateZoom)|(toggle(Zoom|Full|Cover|Max)|(zoomTo(Fit|Cover|Max)))/.test(e) && \"function\" == typeof this[e] && (t.preventDefault(), this[e]({\n\t event: t\n\t }));\n\t },\n\t c = this.option(\"click\", t),\n\t h = this.option(\"dblClick\", t);\n\n\t h ? (this.clicks++, 1 == this.clicks && (this.clickTimer = setTimeout(() => {\n\t 1 === this.clicks ? (this.emit(\"click\", t), !t.defaultPrevented && c && l(c)) : (this.emit(\"dblClick\", t), t.defaultPrevented || l(h)), this.clicks = 0, this.clickTimer = null;\n\t }, 350))) : (this.emit(\"click\", t), !t.defaultPrevented && c && l(c));\n\t }\n\n\t addTrackingPoint(t) {\n\t const e = this.trackingPoints.filter(t => t.time > Date.now() - 100);\n\t e.push(t), this.trackingPoints = e;\n\t }\n\n\t onPointerDown(t, e, i) {\n\t var n;\n\t this.pwt = 0, this.dragOffset = {\n\t x: 0,\n\t y: 0,\n\t time: 0\n\t }, this.trackingPoints = [];\n\t const s = this.content.getBoundingClientRect();\n\t if (this.dragStart = {\n\t x: s.x,\n\t y: s.y,\n\t top: s.top,\n\t left: s.left,\n\t time: Date.now()\n\t }, this.clickTimer) return !1;\n\t if (\"mousemove\" === this.panMode && this.targetScale > 1) return t.preventDefault(), t.stopPropagation(), !1;\n\n\t if (!i.length) {\n\t const e = t.composedPath()[0];\n\t if ([\"A\", \"TEXTAREA\", \"OPTION\", \"INPUT\", \"SELECT\", \"VIDEO\"].includes(e.nodeName) || e.closest(\"[contenteditable]\") || e.closest(\"[data-selectable]\") || e.closest(\"[data-panzoom-change]\") || e.closest(\"[data-panzoom-action]\")) return !1;\n\t null === (n = window.getSelection()) || void 0 === n || n.removeAllRanges();\n\t }\n\n\t if (\"mousedown\" === t.type) t.preventDefault();else if (Math.abs(this.velocity.a) > .3) return !1;\n\t return this.target.e = this.current.e, this.target.f = this.current.f, this.stop(), this.isDragging || (this.isDragging = !0, this.addTrackingPoint(e), this.emit(\"touchStart\", t)), !0;\n\t }\n\n\t onPointerMove(e, n, s) {\n\t if (!1 === this.option(\"touch\", e)) return;\n\t if (!this.isDragging) return;\n\t if (n.length < 2 && this.panOnlyZoomed && t(this.targetScale) <= t(this.minScale)) return;\n\t if (this.emit(\"touchMove\", e), e.defaultPrevented) return;\n\t this.addTrackingPoint(n[0]);\n\t const {\n\t content: o\n\t } = this,\n\t a = h(s[0], s[1]),\n\t r = h(n[0], n[1]);\n\t let l = 0,\n\t d = 0;\n\n\t if (n.length > 1) {\n\t const t = o.getBoundingClientRect();\n\t l = a.clientX - t.left - .5 * t.width, d = a.clientY - t.top - .5 * t.height;\n\t }\n\n\t const u = c(s[0], s[1]),\n\t p = c(n[0], n[1]);\n\t let f = u ? p / u : 1,\n\t m = r.clientX - a.clientX,\n\t g = r.clientY - a.clientY;\n\t this.dragOffset.x += m, this.dragOffset.y += g, this.dragOffset.time = Date.now() - this.dragStart.time;\n\t let b = t(this.targetScale) === t(this.minScale) && this.option(\"lockAxis\");\n\t if (b && !this.lockedAxis) if (\"xy\" === b || \"y\" === b || \"touchmove\" === e.type) {\n\t if (Math.abs(this.dragOffset.x) < 6 && Math.abs(this.dragOffset.y) < 6) return void e.preventDefault();\n\t const t = Math.abs(180 * Math.atan2(this.dragOffset.y, this.dragOffset.x) / Math.PI);\n\t this.lockedAxis = t > 45 && t < 135 ? \"y\" : \"x\", this.dragOffset.x = 0, this.dragOffset.y = 0, m = 0, g = 0;\n\t } else this.lockedAxis = b;\n\t if (i(e.target, this.content) && (b = \"x\", this.dragOffset.y = 0), b && \"xy\" !== b && this.lockedAxis !== b && t(this.targetScale) === t(this.minScale)) return;\n\t e.cancelable && e.preventDefault(), this.container.classList.add(this.cn(\"isDragging\"));\n\t const v = this.checkBounds(m, g);\n\t this.option(\"rubberband\") ? (\"x\" !== this.isInfinite && (v.xDiff > 0 && m < 0 || v.xDiff < 0 && m > 0) && (m *= Math.max(0, .5 - Math.abs(.75 / this.contentRect.fitWidth * v.xDiff))), \"y\" !== this.isInfinite && (v.yDiff > 0 && g < 0 || v.yDiff < 0 && g > 0) && (g *= Math.max(0, .5 - Math.abs(.75 / this.contentRect.fitHeight * v.yDiff)))) : (v.xDiff && (m = 0), v.yDiff && (g = 0));\n\t const y = this.targetScale,\n\t w = this.minScale,\n\t x = this.maxScale;\n\t y < .5 * w && (f = Math.max(f, w)), y > 1.5 * x && (f = Math.min(f, x)), \"y\" === this.lockedAxis && t(y) === t(w) && (m = 0), \"x\" === this.lockedAxis && t(y) === t(w) && (g = 0), this.applyChange({\n\t originX: l,\n\t originY: d,\n\t panX: m,\n\t panY: g,\n\t scale: f,\n\t friction: this.option(\"dragFriction\"),\n\t ignoreBounds: !0\n\t });\n\t }\n\n\t onPointerUp(t, e, n) {\n\t if (n.length) return this.dragOffset.x = 0, this.dragOffset.y = 0, void (this.trackingPoints = []);\n\t this.container.classList.remove(this.cn(\"isDragging\")), this.isDragging && (this.addTrackingPoint(e), this.panOnlyZoomed && this.contentRect.width - this.contentRect.fitWidth < 1 && this.contentRect.height - this.contentRect.fitHeight < 1 && (this.trackingPoints = []), i(t.target, this.content) && \"y\" === this.lockedAxis && (this.trackingPoints = []), this.emit(\"touchEnd\", t), this.isDragging = !1, this.lockedAxis = !1, this.state !== g.Destroy && (t.defaultPrevented || this.startDecelAnim()));\n\t }\n\n\t startDecelAnim() {\n\t const e = this.isScaling;\n\t this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.isBouncingX = !1, this.isBouncingY = !1;\n\n\t for (const t of b) this.velocity[t] = 0;\n\n\t this.target.e = this.current.e, this.target.f = this.current.f, E(this.container, \"is-scaling\"), E(this.container, \"is-animating\"), this.isTicking = !1;\n\t const {\n\t trackingPoints: i\n\t } = this,\n\t n = i[0],\n\t s = i[i.length - 1];\n\t let o = 0,\n\t a = 0,\n\t r = 0;\n\t s && n && (o = s.clientX - n.clientX, a = s.clientY - n.clientY, r = s.time - n.time);\n\t let l = 0,\n\t c = 0,\n\t h = 0,\n\t d = 0,\n\t u = this.option(\"decelFriction\");\n\t const p = this.targetScale;\n\n\t if (r > 0) {\n\t h = Math.abs(o) > 3 ? o / (r / 30) : 0, d = Math.abs(a) > 3 ? a / (r / 30) : 0;\n\t const t = this.option(\"maxVelocity\");\n\t t && (h = Math.max(Math.min(h, t), -1 * t), d = Math.max(Math.min(d, t), -1 * t));\n\t }\n\n\t h && (l = h / (1 / (1 - u) - 1)), d && (c = d / (1 / (1 - u) - 1)), (\"y\" === this.option(\"lockAxis\") || \"xy\" === this.option(\"lockAxis\") && \"y\" === this.lockedAxis && t(p) === this.minScale) && (l = h = 0), (\"x\" === this.option(\"lockAxis\") || \"xy\" === this.option(\"lockAxis\") && \"x\" === this.lockedAxis && t(p) === this.minScale) && (c = d = 0);\n\t const f = this.dragOffset.x,\n\t m = this.dragOffset.y,\n\t g = this.option(\"dragMinThreshold\") || 0;\n\t Math.abs(f) < g && Math.abs(m) < g && (l = c = 0, h = d = 0), (p < this.minScale - 1e-5 || p > this.maxScale + 1e-5 || e && !l && !c) && (u = .35), this.applyChange({\n\t panX: l,\n\t panY: c,\n\t friction: u\n\t }), this.emit(\"decel\", h, d, f, m);\n\t }\n\n\t onWheel(t) {\n\t var e = [-t.deltaX || 0, -t.deltaY || 0, -t.detail || 0].reduce(function (t, e) {\n\t return Math.abs(e) > Math.abs(t) ? e : t;\n\t });\n\t const i = Math.max(-1, Math.min(1, e));\n\t if (this.emit(\"wheel\", t, i), \"mousemove\" === this.panMode) return;\n\t if (t.defaultPrevented) return;\n\t const n = this.option(\"wheel\");\n\t \"pan\" === n ? (t.preventDefault(), this.panOnlyZoomed && !this.canZoomOut() || this.applyChange({\n\t panX: 2 * -t.deltaX,\n\t panY: 2 * -t.deltaY,\n\t bounce: !1\n\t })) : \"zoom\" === n && !1 !== this.option(\"zoom\") && this.zoomWithWheel(t);\n\t }\n\n\t onMouseMove(t) {\n\t this.panWithMouse(t);\n\t }\n\n\t onKeydown(t) {\n\t \"Escape\" === t.key && this.toggleFS();\n\t }\n\n\t onResize() {\n\t this.updateMetrics(), this.checkBounds().inBounds || this.requestTick();\n\t }\n\n\t setTransform() {\n\t this.emit(\"beforeTransform\");\n\t const {\n\t current: e,\n\t target: i,\n\t content: n,\n\t contentRect: s\n\t } = this,\n\t o = Object.assign({}, P);\n\n\t for (const n of b) {\n\t const s = \"e\" == n || \"f\" === n ? 1e3 : 1e5;\n\t o[n] = t(e[n], s), Math.abs(i[n] - e[n]) < (\"e\" == n || \"f\" === n ? .51 : .001) && (e[n] = i[n]);\n\t }\n\n\t let {\n\t a: a,\n\t b: r,\n\t c: l,\n\t d: c,\n\t e: h,\n\t f: d\n\t } = o,\n\t u = `matrix(${a}, ${r}, ${l}, ${c}, ${h}, ${d})`,\n\t p = n.parentElement instanceof HTMLPictureElement ? n.parentElement : n;\n\t if (this.option(\"transformParent\") && (p = p.parentElement || p), p.style.transform === u) return;\n\t p.style.transform = u;\n\t const {\n\t contentWidth: f,\n\t contentHeight: m\n\t } = this.calculateContentDim();\n\t s.width = f, s.height = m, this.emit(\"afterTransform\");\n\t }\n\n\t updateMetrics(e = !1) {\n\t if (!this || this.state === g.Destroy) return;\n\t if (this.isContentLoading) return;\n\t const {\n\t container: i,\n\t content: n\n\t } = this,\n\t s = n instanceof HTMLImageElement,\n\t o = i.getBoundingClientRect(),\n\t a = getComputedStyle(this.container),\n\t r = o.width,\n\t l = o.height,\n\t c = parseFloat(a.paddingTop) + parseFloat(a.paddingBottom),\n\t h = r - (parseFloat(a.paddingLeft) + parseFloat(a.paddingRight)),\n\t d = l - c;\n\t this.containerRect = {\n\t width: r,\n\t height: l,\n\t innerWidth: h,\n\t innerHeight: d\n\t };\n\t let u = this.option(\"width\") || \"auto\",\n\t p = this.option(\"height\") || \"auto\";\n\t \"auto\" === u && (u = parseFloat(n.dataset.width || \"\") || (t => {\n\t let e = 0;\n\t return e = t instanceof HTMLImageElement ? t.naturalWidth : t instanceof SVGElement ? t.width.baseVal.value : Math.max(t.offsetWidth, t.scrollWidth), e || 0;\n\t })(n)), \"auto\" === p && (p = parseFloat(n.dataset.height || \"\") || (t => {\n\t let e = 0;\n\t return e = t instanceof HTMLImageElement ? t.naturalHeight : t instanceof SVGElement ? t.height.baseVal.value : Math.max(t.offsetHeight, t.scrollHeight), e || 0;\n\t })(n));\n\t let f = n.parentElement instanceof HTMLPictureElement ? n.parentElement : n;\n\t this.option(\"transformParent\") && (f = f.parentElement || f);\n\t const m = f.getAttribute(\"style\") || \"\";\n\t f.style.setProperty(\"transform\", \"none\", \"important\"), s && (f.style.width = \"\", f.style.height = \"\"), f.offsetHeight;\n\t const b = n.getBoundingClientRect();\n\t let v = b.width,\n\t y = b.height,\n\t w = 0,\n\t x = 0;\n\t s && (Math.abs(u - v) > 1 || Math.abs(p - y) > 1) && ({\n\t width: v,\n\t height: y,\n\t top: w,\n\t left: x\n\t } = ((t, e, i, n) => {\n\t const s = i / n;\n\t return s > t / e ? (i = t, n = t / s) : (i = e * s, n = e), {\n\t width: i,\n\t height: n,\n\t top: .5 * (e - n),\n\t left: .5 * (t - i)\n\t };\n\t })(v, y, u, p)), this.contentRect = Object.assign(Object.assign({}, this.contentRect), {\n\t top: b.top - o.top + w,\n\t bottom: o.bottom - b.bottom + w,\n\t left: b.left - o.left + x,\n\t right: o.right - b.right + x,\n\t fitWidth: v,\n\t fitHeight: y,\n\t width: v,\n\t height: y,\n\t fullWidth: u,\n\t fullHeight: p\n\t }), f.style.cssText = m, s && (f.style.width = `${v}px`, f.style.height = `${y}px`), this.setTransform(), !0 !== e && this.emit(\"refresh\"), this.ignoreBounds || (t(this.targetScale) < t(this.minScale) ? this.zoomTo(this.minScale, {\n\t friction: 0\n\t }) : this.targetScale > this.maxScale ? this.zoomTo(this.maxScale, {\n\t friction: 0\n\t }) : this.state === g.Init || this.checkBounds().inBounds || this.requestTick()), this.updateControls();\n\t }\n\n\t getBounds() {\n\t const e = this.option(\"bounds\");\n\t if (\"auto\" !== e) return e;\n\t const {\n\t contentWidth: i,\n\t contentHeight: n\n\t } = this.calculateContentDim(this.target);\n\t let s = 0,\n\t o = 0,\n\t a = 0,\n\t r = 0;\n\t const l = this.option(\"infinite\");\n\t if (!0 === l || this.lockedAxis && l === this.lockedAxis) s = -1 / 0, a = 1 / 0, o = -1 / 0, r = 1 / 0;else {\n\t let {\n\t containerRect: e,\n\t contentRect: l\n\t } = this,\n\t c = t(this.contentRect.fitWidth * this.targetScale, 1e3),\n\t h = t(this.contentRect.fitHeight * this.targetScale, 1e3),\n\t {\n\t innerWidth: d,\n\t innerHeight: u\n\t } = e;\n\n\t if (this.containerRect.width === c && (d = e.width), this.containerRect.width === h && (u = e.height), i > d) {\n\t a = .5 * (i - d), s = -1 * a;\n\t let t = .5 * (l.right - l.left);\n\t s += t, a += t;\n\t }\n\n\t if (this.contentRect.fitWidth > d && i < d && (s -= .5 * (this.contentRect.fitWidth - d), a -= .5 * (this.contentRect.fitWidth - d)), n > u) {\n\t r = .5 * (n - u), o = -1 * r;\n\t let t = .5 * (l.bottom - l.top);\n\t o += t, r += t;\n\t }\n\n\t this.contentRect.fitHeight > u && n < u && (s -= .5 * (this.contentRect.fitHeight - u), a -= .5 * (this.contentRect.fitHeight - u));\n\t }\n\t return {\n\t x: {\n\t min: s,\n\t max: a\n\t },\n\t y: {\n\t min: o,\n\t max: r\n\t }\n\t };\n\t }\n\n\t updateControls() {\n\t const e = this,\n\t i = e.container,\n\t {\n\t panMode: n,\n\t contentRect: s,\n\t fullScale: a,\n\t targetScale: r,\n\t coverScale: l,\n\t maxScale: c,\n\t minScale: h\n\t } = e;\n\t let d = {\n\t toggleMax: r - h < .5 * (c - h) ? c : h,\n\t toggleCover: r - h < .5 * (l - h) ? l : h,\n\t toggleZoom: r - h < .5 * (a - h) ? a : h\n\t }[e.option(\"click\") || \"\"] || h,\n\t u = e.canZoomIn(),\n\t p = e.canZoomOut(),\n\t f = p && \"drag\" === n;\n\t t(r) < t(h) && !this.panOnlyZoomed && (f = !0), (t(s.width, 1) > t(s.fitWidth, 1) || t(s.height, 1) > t(s.fitHeight, 1)) && (f = !0), t(s.width * r, 1) < t(s.fitWidth, 1) && (f = !1), \"mousemove\" === n && (f = !1);\n\t let m = u && t(d) > t(r),\n\t g = !m && !f && p && t(d) < t(r);\n\t o(i, this.cn(\"canZoomIn\"), m), o(i, this.cn(\"canZoomOut\"), g), o(i, this.cn(\"isDraggable\"), f);\n\n\t for (const t of i.querySelectorAll('[data-panzoom-action=\"zoomIn\"]')) u ? (t.removeAttribute(\"disabled\"), t.removeAttribute(\"tabindex\")) : (t.setAttribute(\"disabled\", \"\"), t.setAttribute(\"tabindex\", \"-1\"));\n\n\t for (const t of i.querySelectorAll('[data-panzoom-action=\"zoomOut\"]')) p ? (t.removeAttribute(\"disabled\"), t.removeAttribute(\"tabindex\")) : (t.setAttribute(\"disabled\", \"\"), t.setAttribute(\"tabindex\", \"-1\"));\n\n\t for (const t of i.querySelectorAll('[data-panzoom-action=\"toggleZoom\"],[data-panzoom-action=\"iterateZoom\"]')) {\n\t u || p ? (t.removeAttribute(\"disabled\"), t.removeAttribute(\"tabindex\")) : (t.setAttribute(\"disabled\", \"\"), t.setAttribute(\"tabindex\", \"-1\"));\n\t const e = t.querySelector(\"g\");\n\t e && (e.style.display = u ? \"\" : \"none\");\n\t }\n\t }\n\n\t panTo({\n\t x: t = this.target.e,\n\t y: e = this.target.f,\n\t scale: i = this.targetScale,\n\t friction: n = this.option(\"friction\"),\n\t angle: s = 0,\n\t originX: o = 0,\n\t originY: a = 0,\n\t flipX: r = !1,\n\t flipY: l = !1,\n\t ignoreBounds: c = !1\n\t }) {\n\t this.state !== g.Destroy && this.applyChange({\n\t panX: t - this.target.e,\n\t panY: e - this.target.f,\n\t scale: i / this.targetScale,\n\t angle: s,\n\t originX: o,\n\t originY: a,\n\t friction: n,\n\t flipX: r,\n\t flipY: l,\n\t ignoreBounds: c\n\t });\n\t }\n\n\t applyChange({\n\t panX: e = 0,\n\t panY: i = 0,\n\t scale: n = 1,\n\t angle: s = 0,\n\t originX: o = -this.current.e,\n\t originY: a = -this.current.f,\n\t friction: r = this.option(\"friction\"),\n\t flipX: l = !1,\n\t flipY: c = !1,\n\t ignoreBounds: h = !1,\n\t bounce: d = this.option(\"bounce\")\n\t }) {\n\t if (this.state === g.Destroy) return;\n\t this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.friction = r || 0, this.ignoreBounds = h;\n\t const {\n\t current: u\n\t } = this,\n\t p = u.e,\n\t f = u.f,\n\t m = this.getMatrix(this.target);\n\t let v = new DOMMatrix().translate(p, f).translate(o, a).translate(e, i);\n\n\t if (this.option(\"zoom\")) {\n\t if (!h) {\n\t const t = this.targetScale,\n\t e = this.minScale,\n\t i = this.maxScale;\n\t t * n < e && (n = e / t), t * n > i && (n = i / t);\n\t }\n\n\t v = v.scale(n);\n\t }\n\n\t v = v.translate(-o, -a).translate(-p, -f).multiply(m), s && (v = v.rotate(s)), l && (v = v.scale(-1, 1)), c && (v = v.scale(1, -1));\n\n\t for (const e of b) \"e\" !== e && \"f\" !== e && (v[e] > this.minScale + 1e-5 || v[e] < this.minScale - 1e-5) ? this.target[e] = v[e] : this.target[e] = t(v[e], 1e3);\n\n\t (this.targetScale < this.scale || Math.abs(n - 1) > .1 || \"mousemove\" === this.panMode || !1 === d) && !h && this.clampTargetBounds(), this.isResting || (this.state = g.Panning, this.requestTick());\n\t }\n\n\t stop(t = !1) {\n\t if (this.state === g.Init || this.state === g.Destroy) return;\n\t const e = this.isTicking;\n\t this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.isBouncingX = !1, this.isBouncingY = !1;\n\n\t for (const e of b) this.velocity[e] = 0, \"current\" === t ? this.current[e] = this.target[e] : \"target\" === t && (this.target[e] = this.current[e]);\n\n\t this.setTransform(), E(this.container, \"is-scaling\"), E(this.container, \"is-animating\"), this.isTicking = !1, this.state = g.Ready, e && (this.emit(\"endAnimation\"), this.updateControls());\n\t }\n\n\t requestTick() {\n\t this.isTicking || (this.emit(\"startAnimation\"), this.updateControls(), S(this.container, \"is-animating\"), this.isScaling && S(this.container, \"is-scaling\")), this.isTicking = !0, this.rAF || (this.rAF = requestAnimationFrame(() => this.animate()));\n\t }\n\n\t panWithMouse(e, i = this.option(\"mouseMoveFriction\")) {\n\t if (this.pmme = e, \"mousemove\" !== this.panMode || !e) return;\n\t if (t(this.targetScale) <= t(this.minScale)) return;\n\t this.emit(\"mouseMove\", e);\n\t const {\n\t container: n,\n\t containerRect: s,\n\t contentRect: o\n\t } = this,\n\t a = s.width,\n\t r = s.height,\n\t l = n.getBoundingClientRect(),\n\t c = (e.clientX || 0) - l.left,\n\t h = (e.clientY || 0) - l.top;\n\t let {\n\t contentWidth: d,\n\t contentHeight: u\n\t } = this.calculateContentDim(this.target);\n\t const p = this.option(\"mouseMoveFactor\");\n\t p > 1 && (d !== a && (d *= p), u !== r && (u *= p));\n\t let f = .5 * (d - a) - c / a * 100 / 100 * (d - a);\n\t f += .5 * (o.right - o.left);\n\t let m = .5 * (u - r) - h / r * 100 / 100 * (u - r);\n\t m += .5 * (o.bottom - o.top), this.applyChange({\n\t panX: f - this.target.e,\n\t panY: m - this.target.f,\n\t friction: i\n\t });\n\t }\n\n\t zoomWithWheel(e) {\n\t if (this.state === g.Destroy || this.state === g.Init) return;\n\t const i = Date.now();\n\t if (i - this.pwt < 45) return void e.preventDefault();\n\t this.pwt = i;\n\t var n = [-e.deltaX || 0, -e.deltaY || 0, -e.detail || 0].reduce(function (t, e) {\n\t return Math.abs(e) > Math.abs(t) ? e : t;\n\t });\n\t const s = Math.max(-1, Math.min(1, n)),\n\t {\n\t targetScale: o,\n\t maxScale: a,\n\t minScale: r\n\t } = this;\n\t let l = o * (100 + 45 * s) / 100;\n\t t(l) < t(r) && t(o) <= t(r) ? (this.cwd += Math.abs(s), l = r) : t(l) > t(a) && t(o) >= t(a) ? (this.cwd += Math.abs(s), l = a) : (this.cwd = 0, l = Math.max(Math.min(l, a), r)), this.cwd > this.option(\"wheelLimit\") || (e.preventDefault(), t(l) !== t(o) && this.zoomTo(l, {\n\t event: e\n\t }));\n\t }\n\n\t canZoomIn() {\n\t return this.option(\"zoom\") && (t(this.contentRect.width, 1) < t(this.contentRect.fitWidth, 1) || t(this.targetScale) < t(this.maxScale));\n\t }\n\n\t canZoomOut() {\n\t return this.option(\"zoom\") && t(this.targetScale) > t(this.minScale);\n\t }\n\n\t zoomIn(t = 1.25, e) {\n\t this.zoomTo(this.targetScale * t, e);\n\t }\n\n\t zoomOut(t = .8, e) {\n\t this.zoomTo(this.targetScale * t, e);\n\t }\n\n\t zoomToFit(t) {\n\t this.zoomTo(\"fit\", t);\n\t }\n\n\t zoomToCover(t) {\n\t this.zoomTo(\"cover\", t);\n\t }\n\n\t zoomToFull(t) {\n\t this.zoomTo(\"full\", t);\n\t }\n\n\t zoomToMax(t) {\n\t this.zoomTo(\"max\", t);\n\t }\n\n\t toggleZoom(t) {\n\t this.zoomTo(this.targetScale - this.minScale < .5 * (this.fullScale - this.minScale) ? \"full\" : \"fit\", t);\n\t }\n\n\t toggleMax(t) {\n\t this.zoomTo(this.targetScale - this.minScale < .5 * (this.maxScale - this.minScale) ? \"max\" : \"fit\", t);\n\t }\n\n\t toggleCover(t) {\n\t this.zoomTo(this.targetScale - this.minScale < .5 * (this.coverScale - this.minScale) ? \"cover\" : \"fit\", t);\n\t }\n\n\t iterateZoom(t) {\n\t this.zoomTo(\"next\", t);\n\t }\n\n\t zoomTo(t = 1, {\n\t friction: e = \"auto\",\n\t originX: i = 0,\n\t originY: n = 0,\n\t event: s\n\t } = {}) {\n\t if (this.isContentLoading || this.state === g.Destroy) return;\n\t const {\n\t targetScale: o\n\t } = this;\n\t this.stop();\n\t let a = 1;\n\n\t if (\"mousemove\" === this.panMode && (s = this.pmme || s), s) {\n\t const t = this.content.getBoundingClientRect(),\n\t e = s.clientX || 0,\n\t o = s.clientY || 0;\n\t i = e - t.left - .5 * t.width, n = o - t.top - .5 * t.height;\n\t }\n\n\t const r = this.fullScale,\n\t l = this.maxScale;\n\t let c = this.coverScale;\n\t \"number\" == typeof t ? a = t / o : (\"next\" === t && (r - c < .2 && (c = r), t = o < r - 1e-5 ? \"full\" : o < l - 1e-5 ? \"max\" : \"fit\"), a = \"full\" === t ? r / o || 1 : \"cover\" === t ? c / o || 1 : \"max\" === t ? l / o || 1 : 1 / o || 1), e = \"auto\" === e ? a > 1 ? .15 : .25 : e, this.applyChange({\n\t scale: a,\n\t originX: i,\n\t originY: n,\n\t friction: e\n\t }), s && \"mousemove\" === this.panMode && this.panWithMouse(s, e);\n\t }\n\n\t rotateCCW() {\n\t this.applyChange({\n\t angle: -90\n\t });\n\t }\n\n\t rotateCW() {\n\t this.applyChange({\n\t angle: 90\n\t });\n\t }\n\n\t flipX() {\n\t this.applyChange({\n\t flipX: !0\n\t });\n\t }\n\n\t flipY() {\n\t this.applyChange({\n\t flipY: !0\n\t });\n\t }\n\n\t fitX() {\n\t this.stop(\"target\");\n\t const {\n\t containerRect: t,\n\t contentRect: e,\n\t target: i\n\t } = this;\n\t this.applyChange({\n\t panX: .5 * t.width - (e.left + .5 * e.fitWidth) - i.e,\n\t panY: .5 * t.height - (e.top + .5 * e.fitHeight) - i.f,\n\t scale: t.width / e.fitWidth / this.targetScale,\n\t originX: 0,\n\t originY: 0,\n\t ignoreBounds: !0\n\t });\n\t }\n\n\t fitY() {\n\t this.stop(\"target\");\n\t const {\n\t containerRect: t,\n\t contentRect: e,\n\t target: i\n\t } = this;\n\t this.applyChange({\n\t panX: .5 * t.width - (e.left + .5 * e.fitWidth) - i.e,\n\t panY: .5 * t.innerHeight - (e.top + .5 * e.fitHeight) - i.f,\n\t scale: t.height / e.fitHeight / this.targetScale,\n\t originX: 0,\n\t originY: 0,\n\t ignoreBounds: !0\n\t });\n\t }\n\n\t toggleFS() {\n\t const {\n\t container: t\n\t } = this,\n\t e = this.cn(\"inFullscreen\"),\n\t i = this.cn(\"htmlHasFullscreen\");\n\t t.classList.toggle(e);\n\t const n = t.classList.contains(e);\n\t n ? (document.documentElement.classList.add(i), document.addEventListener(\"keydown\", this.onKeydown, !0)) : (document.documentElement.classList.remove(i), document.removeEventListener(\"keydown\", this.onKeydown, !0)), this.updateMetrics(), this.emit(n ? \"enterFS\" : \"exitFS\");\n\t }\n\n\t getMatrix(t = this.current) {\n\t const {\n\t a: e,\n\t b: i,\n\t c: n,\n\t d: s,\n\t e: o,\n\t f: a\n\t } = t;\n\t return new DOMMatrix([e, i, n, s, o, a]);\n\t }\n\n\t reset(t) {\n\t if (this.state !== g.Init && this.state !== g.Destroy) {\n\t this.stop(\"current\");\n\n\t for (const t of b) this.target[t] = P[t];\n\n\t this.target.a = this.minScale, this.target.d = this.minScale, this.clampTargetBounds(), this.isResting || (this.friction = void 0 === t ? this.option(\"friction\") : t, this.state = g.Panning, this.requestTick());\n\t }\n\t }\n\n\t destroy() {\n\t this.stop(), this.state = g.Destroy, this.detachEvents(), this.detachObserver();\n\t const {\n\t container: t,\n\t content: e\n\t } = this,\n\t i = this.option(\"classes\") || {};\n\n\t for (const e of Object.values(i)) t.classList.remove(e + \"\");\n\n\t e && (e.removeEventListener(\"load\", this.onLoad), e.removeEventListener(\"error\", this.onError)), this.detachPlugins();\n\t }\n\n\t}\n\n\tObject.defineProperty(T, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: y\n\t}), Object.defineProperty(T, \"Plugins\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {}\n\t});\n\n\tconst O = function (t, e) {\n\t let i = !0;\n\t return (...n) => {\n\t i && (i = !1, t(...n), setTimeout(() => {\n\t i = !0;\n\t }, e));\n\t };\n\t},\n\t A = (t, e) => {\n\t let i = [];\n\t return t.childNodes.forEach(t => {\n\t t.nodeType !== Node.ELEMENT_NODE || e && !t.matches(e) || i.push(t);\n\t }), i;\n\t},\n\t z = {\n\t viewport: null,\n\t track: null,\n\t enabled: !0,\n\t slides: [],\n\t axis: \"x\",\n\t transition: \"fade\",\n\t preload: 1,\n\t slidesPerPage: \"auto\",\n\t initialPage: 0,\n\t friction: .12,\n\t Panzoom: {\n\t decelFriction: .12\n\t },\n\t center: !0,\n\t infinite: !0,\n\t fill: !0,\n\t dragFree: !1,\n\t adaptiveHeight: !1,\n\t direction: \"ltr\",\n\t classes: {\n\t container: \"f-carousel\",\n\t viewport: \"f-carousel__viewport\",\n\t track: \"f-carousel__track\",\n\t slide: \"f-carousel__slide\",\n\t isLTR: \"is-ltr\",\n\t isRTL: \"is-rtl\",\n\t isHorizontal: \"is-horizontal\",\n\t isVertical: \"is-vertical\",\n\t inTransition: \"in-transition\",\n\t isSelected: \"is-selected\"\n\t },\n\t l10n: {\n\t NEXT: \"Next slide\",\n\t PREV: \"Previous slide\",\n\t GOTO: \"Go to slide #%d\"\n\t }\n\t};\n\n\tvar L;\n\t!function (t) {\n\t t[t.Init = 0] = \"Init\", t[t.Ready = 1] = \"Ready\", t[t.Destroy = 2] = \"Destroy\";\n\t}(L || (L = {}));\n\n\tconst R = t => {\n\t if (\"string\" == typeof t && (t = {\n\t html: t\n\t }), !(t instanceof String || t instanceof HTMLElement)) {\n\t const e = t.thumb;\n\t void 0 !== e && (\"string\" == typeof e && (t.thumbSrc = e), e instanceof HTMLImageElement && (t.thumbEl = e, t.thumbElSrc = e.src, t.thumbSrc = e.src), delete t.thumb);\n\t }\n\n\t return Object.assign({\n\t html: \"\",\n\t el: null,\n\t isDom: !1,\n\t class: \"\",\n\t index: -1,\n\t dim: 0,\n\t gap: 0,\n\t pos: 0,\n\t transition: !1\n\t }, t);\n\t},\n\t k = (t = {}) => Object.assign({\n\t index: -1,\n\t slides: [],\n\t dim: 0,\n\t pos: -1\n\t}, t);\n\n\tclass I extends f {\n\t constructor(t, e) {\n\t super(e), Object.defineProperty(this, \"instance\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: t\n\t });\n\t }\n\n\t attach() {}\n\n\t detach() {}\n\n\t}\n\n\tconst D = {\n\t classes: {\n\t list: \"f-carousel__dots\",\n\t isDynamic: \"is-dynamic\",\n\t hasDots: \"has-dots\",\n\t dot: \"f-carousel__dot\",\n\t isBeforePrev: \"is-before-prev\",\n\t isPrev: \"is-prev\",\n\t isCurrent: \"is-current\",\n\t isNext: \"is-next\",\n\t isAfterNext: \"is-after-next\"\n\t },\n\t dotTpl: '',\n\t dynamicFrom: 11,\n\t maxCount: 1 / 0,\n\t minCount: 2\n\t};\n\n\tclass F extends I {\n\t constructor() {\n\t super(...arguments), Object.defineProperty(this, \"isDynamic\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t }), Object.defineProperty(this, \"list\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t });\n\t }\n\n\t onRefresh() {\n\t this.refresh();\n\t }\n\n\t build() {\n\t let t = this.list;\n\t return t || (t = document.createElement(\"ul\"), S(t, this.cn(\"list\")), t.setAttribute(\"role\", \"tablist\"), this.instance.container.appendChild(t), S(this.instance.container, this.cn(\"hasDots\")), this.list = t), t;\n\t }\n\n\t refresh() {\n\t var t;\n\t const e = this.instance.pages.length,\n\t i = Math.min(2, this.option(\"minCount\")),\n\t n = Math.max(2e3, this.option(\"maxCount\")),\n\t s = this.option(\"dynamicFrom\");\n\t if (e < i || e > n) return void this.cleanup();\n\t const a = \"number\" == typeof s && e > 5 && e >= s,\n\t r = !this.list || this.isDynamic !== a || this.list.children.length !== e;\n\t r && this.cleanup();\n\t const l = this.build();\n\t if (o(l, this.cn(\"isDynamic\"), !!a), r) for (let t = 0; t < e; t++) l.append(this.createItem(t));\n\t let c,\n\t h = 0;\n\n\t for (const e of [...l.children]) {\n\t const i = h === this.instance.page;\n\t i && (c = e), o(e, this.cn(\"isCurrent\"), i), null === (t = e.children[0]) || void 0 === t || t.setAttribute(\"aria-selected\", i ? \"true\" : \"false\");\n\n\t for (const t of [\"isBeforePrev\", \"isPrev\", \"isNext\", \"isAfterNext\"]) E(e, this.cn(t));\n\n\t h++;\n\t }\n\n\t if (c = c || l.firstChild, a && c) {\n\t const t = c.previousElementSibling,\n\t e = t && t.previousElementSibling;\n\t S(t, this.cn(\"isPrev\")), S(e, this.cn(\"isBeforePrev\"));\n\t const i = c.nextElementSibling,\n\t n = i && i.nextElementSibling;\n\t S(i, this.cn(\"isNext\")), S(n, this.cn(\"isAfterNext\"));\n\t }\n\n\t this.isDynamic = a;\n\t }\n\n\t createItem(t = 0) {\n\t var e;\n\t const i = document.createElement(\"li\");\n\t i.setAttribute(\"role\", \"presentation\");\n\t const s = n(this.instance.localize(this.option(\"dotTpl\"), [[\"%d\", t + 1]]).replace(/\\%i/g, t + \"\"));\n\t return i.appendChild(s), null === (e = i.children[0]) || void 0 === e || e.setAttribute(\"role\", \"tab\"), i;\n\t }\n\n\t cleanup() {\n\t this.list && (this.list.remove(), this.list = null), this.isDynamic = !1, E(this.instance.container, this.cn(\"hasDots\"));\n\t }\n\n\t attach() {\n\t this.instance.on([\"refresh\", \"change\"], this.onRefresh);\n\t }\n\n\t detach() {\n\t this.instance.off([\"refresh\", \"change\"], this.onRefresh), this.cleanup();\n\t }\n\n\t}\n\n\tObject.defineProperty(F, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: D\n\t});\n\n\tclass j extends I {\n\t constructor() {\n\t super(...arguments), Object.defineProperty(this, \"container\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"prev\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"next\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t });\n\t }\n\n\t onRefresh() {\n\t const t = this.instance,\n\t e = t.pages.length,\n\t i = t.page;\n\t if (e < 2) return void this.cleanup();\n\t this.build();\n\t let n = this.prev,\n\t s = this.next;\n\t n && s && (n.removeAttribute(\"disabled\"), s.removeAttribute(\"disabled\"), t.isInfinite || (i <= 0 && n.setAttribute(\"disabled\", \"\"), i >= e - 1 && s.setAttribute(\"disabled\", \"\")));\n\t }\n\n\t createButton(t) {\n\t const e = this.instance,\n\t i = document.createElement(\"button\");\n\t i.setAttribute(\"tabindex\", \"0\"), i.setAttribute(\"title\", e.localize(`{{${t.toUpperCase()}}}`)), S(i, this.cn(\"button\") + \" \" + this.cn(\"next\" === t ? \"isNext\" : \"isPrev\"));\n\t const n = e.isRTL ? \"next\" === t ? \"prev\" : \"next\" : t;\n\t var s;\n\t return i.innerHTML = e.localize(this.option(`${n}Tpl`)), i.dataset[`carousel${(s = t, s ? s.match(\"^[a-z]\") ? s.charAt(0).toUpperCase() + s.substring(1) : s : \"\")}`] = \"true\", i;\n\t }\n\n\t build() {\n\t let t = this.container;\n\t t || (this.container = t = document.createElement(\"div\"), S(t, this.cn(\"container\")), this.instance.container.appendChild(t)), this.next || (this.next = t.appendChild(this.createButton(\"next\"))), this.prev || (this.prev = t.appendChild(this.createButton(\"prev\")));\n\t }\n\n\t cleanup() {\n\t this.prev && this.prev.remove(), this.next && this.next.remove(), this.container && this.container.remove(), this.prev = null, this.next = null, this.container = null;\n\t }\n\n\t attach() {\n\t this.instance.on([\"refresh\", \"change\"], this.onRefresh);\n\t }\n\n\t detach() {\n\t this.instance.off([\"refresh\", \"change\"], this.onRefresh), this.cleanup();\n\t }\n\n\t}\n\n\tObject.defineProperty(j, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {\n\t classes: {\n\t container: \"f-carousel__nav\",\n\t button: \"f-button\",\n\t isNext: \"is-next\",\n\t isPrev: \"is-prev\"\n\t },\n\t nextTpl: '',\n\t prevTpl: ''\n\t }\n\t});\n\n\tclass H extends I {\n\t constructor() {\n\t super(...arguments), Object.defineProperty(this, \"selectedIndex\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"target\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"nav\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t });\n\t }\n\n\t addAsTargetFor(t) {\n\t this.target = this.instance, this.nav = t, this.attachEvents();\n\t }\n\n\t addAsNavFor(t) {\n\t this.nav = this.instance, this.target = t, this.attachEvents();\n\t }\n\n\t attachEvents() {\n\t this.nav && this.target && (this.nav.options.initialSlide = this.target.options.initialPage, this.nav.on(\"ready\", this.onNavReady), this.nav.state === L.Ready && this.onNavReady(this.nav), this.target.on(\"ready\", this.onTargetReady), this.target.state === L.Ready && this.onTargetReady(this.target));\n\t }\n\n\t onNavReady(t) {\n\t t.on(\"createSlide\", this.onNavCreateSlide), t.on(\"Panzoom.click\", this.onNavClick), t.on(\"Panzoom.touchEnd\", this.onNavTouch), this.onTargetChange();\n\t }\n\n\t onTargetReady(t) {\n\t t.on(\"change\", this.onTargetChange), t.on(\"Panzoom.refresh\", this.onTargetChange), this.onTargetChange();\n\t }\n\n\t onNavClick(t, e, i) {\n\t i.pointerType || this.onNavTouch(t, t.panzoom, i);\n\t }\n\n\t onNavTouch(t, e, i) {\n\t var n, s;\n\t if (Math.abs(e.dragOffset.x) > 3 || Math.abs(e.dragOffset.y) > 3) return;\n\t const o = i.target,\n\t {\n\t nav: a,\n\t target: r\n\t } = this;\n\t if (!a || !r || !o) return;\n\t const l = o.closest(\"[data-index]\");\n\t if (i.stopPropagation(), i.preventDefault(), !l) return;\n\t const c = parseInt(l.dataset.index || \"\", 10) || 0,\n\t h = r.getPageForSlide(c),\n\t d = a.getPageForSlide(c);\n\t a.slideTo(d), r.slideTo(h, {\n\t friction: null === (s = null === (n = this.nav) || void 0 === n ? void 0 : n.plugins) || void 0 === s ? void 0 : s.Sync.option(\"friction\")\n\t }), this.markSelectedSlide(c);\n\t }\n\n\t onNavCreateSlide(t, e) {\n\t e.index === this.selectedIndex && this.markSelectedSlide(e.index);\n\t }\n\n\t onTargetChange() {\n\t const {\n\t target: t,\n\t nav: e\n\t } = this;\n\t if (!t || !e) return;\n\t if (e.state !== L.Ready || t.state !== L.Ready) return;\n\t const i = t.pages[t.page].slides[0].index,\n\t n = e.getPageForSlide(i);\n\t this.markSelectedSlide(i), e.slideTo(n);\n\t }\n\n\t markSelectedSlide(t) {\n\t const {\n\t nav: e\n\t } = this;\n\t e && e.state === L.Ready && (this.selectedIndex = t, [...e.slides].map(e => {\n\t e.el && e.el.classList[e.index === t ? \"add\" : \"remove\"](\"is-nav-selected\");\n\t }));\n\t }\n\n\t attach() {\n\t let t = this.options.target,\n\t e = this.options.nav;\n\t t ? this.addAsNavFor(t) : e && this.addAsTargetFor(e);\n\t }\n\n\t detach() {\n\t this.nav && (this.nav.off(\"ready\", this.onNavReady), this.nav.off(\"createSlide\", this.onNavCreateSlide), this.nav.off(\"Panzoom.click\", this.onNavClick), this.nav.off(\"Panzoom.touchEnd\", this.onNavTouch)), this.nav = null, this.target && (this.target.off(\"ready\", this.onTargetReady), this.target.off(\"refresh\", this.onTargetChange), this.target.off(\"change\", this.onTargetChange)), this.target = null;\n\t }\n\n\t}\n\n\tObject.defineProperty(H, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {\n\t friction: .35\n\t }\n\t});\n\tconst B = {\n\t Navigation: j,\n\t Dots: F,\n\t Sync: H\n\t};\n\n\tclass _ extends m {\n\t get axis() {\n\t return this.isHorizontal ? \"e\" : \"f\";\n\t }\n\n\t get isEnabled() {\n\t return this.state === L.Ready;\n\t }\n\n\t get isInfinite() {\n\t let t = !1;\n\t const e = this.contentDim,\n\t i = this.viewportDim;\n\t return this.pages.length >= 2 && e > 1.5 * i && (t = this.option(\"infinite\")), t;\n\t }\n\n\t get isRTL() {\n\t return \"rtl\" === this.option(\"direction\");\n\t }\n\n\t get isHorizontal() {\n\t return \"x\" === this.option(\"axis\");\n\t }\n\n\t constructor(t, e = {}, i = {}) {\n\t if (super(), Object.defineProperty(this, \"userOptions\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {}\n\t }), Object.defineProperty(this, \"userPlugins\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {}\n\t }), Object.defineProperty(this, \"bp\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: \"\"\n\t }), Object.defineProperty(this, \"lp\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"state\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: L.Init\n\t }), Object.defineProperty(this, \"page\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"prevPage\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"container\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"viewport\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"track\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"slides\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: []\n\t }), Object.defineProperty(this, \"pages\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: []\n\t }), Object.defineProperty(this, \"panzoom\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"inTransition\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: new Set()\n\t }), Object.defineProperty(this, \"contentDim\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"viewportDim\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), \"string\" == typeof t && (t = document.querySelector(t)), !t || !x(t)) throw new Error(\"No Element found\");\n\t this.container = t, this.slideNext = O(this.slideNext.bind(this), 150), this.slidePrev = O(this.slidePrev.bind(this), 150), this.userOptions = e, this.userPlugins = i, queueMicrotask(() => {\n\t this.processOptions();\n\t });\n\t }\n\n\t processOptions() {\n\t const t = u({}, _.defaults, this.userOptions);\n\t let e = \"\";\n\t const i = t.breakpoints;\n\t if (i && d(i)) for (const [n, s] of Object.entries(i)) window.matchMedia(n).matches && d(s) && (e += n, u(t, s));\n\t e === this.bp && this.state !== L.Init || (this.bp = e, this.state === L.Ready && (t.initialSlide = this.pages[this.page].slides[0].index), this.state !== L.Init && this.destroy(), super.setOptions(t), !1 === this.option(\"enabled\") ? this.attachEvents() : setTimeout(() => {\n\t this.init();\n\t }, 0));\n\t }\n\n\t init() {\n\t this.state = L.Init, this.emit(\"init\"), this.attachPlugins(Object.assign(Object.assign({}, _.Plugins), this.userPlugins)), this.initLayout(), this.initSlides(), this.updateMetrics(), this.setInitialPosition(), this.initPanzoom(), this.attachEvents(), this.state = L.Ready, this.emit(\"ready\");\n\t }\n\n\t initLayout() {\n\t const {\n\t container: t\n\t } = this,\n\t e = this.option(\"classes\");\n\t S(t, this.cn(\"container\")), o(t, e.isLTR, !this.isRTL), o(t, e.isRTL, this.isRTL), o(t, e.isVertical, !this.isHorizontal), o(t, e.isHorizontal, this.isHorizontal);\n\t let i = this.option(\"viewport\") || t.querySelector(`.${e.viewport}`);\n\t i || (i = document.createElement(\"div\"), S(i, e.viewport), i.append(...A(t, `.${e.slide}`)), t.prepend(i));\n\t let n = this.option(\"track\") || t.querySelector(`.${e.track}`);\n\t n || (n = document.createElement(\"div\"), S(n, e.track), n.append(...Array.from(i.childNodes))), n.setAttribute(\"aria-live\", \"polite\"), i.contains(n) || i.prepend(n), this.viewport = i, this.track = n, this.emit(\"initLayout\");\n\t }\n\n\t initSlides() {\n\t const {\n\t track: t\n\t } = this;\n\n\t if (t) {\n\t this.slides = [], [...A(t, `.${this.cn(\"slide\")}`)].forEach(t => {\n\t if (x(t)) {\n\t const e = R({\n\t el: t,\n\t isDom: !0,\n\t index: this.slides.length\n\t });\n\t this.slides.push(e), this.emit(\"initSlide\", e, this.slides.length);\n\t }\n\t });\n\n\t for (let t of this.option(\"slides\", [])) {\n\t const e = R(t);\n\t e.index = this.slides.length, this.slides.push(e), this.emit(\"initSlide\", e, this.slides.length);\n\t }\n\n\t this.emit(\"initSlides\");\n\t }\n\t }\n\n\t setInitialPage() {\n\t let t = 0;\n\t const e = this.option(\"initialSlide\");\n\t t = \"number\" == typeof e ? this.getPageForSlide(e) : parseInt(this.option(\"initialPage\", 0) + \"\", 10) || 0, this.page = t;\n\t }\n\n\t setInitialPosition() {\n\t if (!this.track || !this.pages.length) return;\n\t const t = this.isHorizontal;\n\t let e = this.page;\n\t this.pages[e] || (this.page = e = 0);\n\t const i = this.pages[e].pos * (this.isRTL && t ? 1 : -1),\n\t n = t ? `${i}px` : \"0\",\n\t s = t ? \"0\" : `${i}px`;\n\t this.track.style.transform = `translate3d(${n}, ${s}, 0) scale(1)`, this.option(\"adaptiveHeight\") && this.setViewportHeight();\n\t }\n\n\t initPanzoom() {\n\t this.panzoom && (this.panzoom.destroy(), this.panzoom = null);\n\t const t = this.option(\"Panzoom\") || {};\n\t this.panzoom = new T(this.viewport, u({}, {\n\t content: this.track,\n\t zoom: !1,\n\t panOnlyZoomed: !1,\n\t lockAxis: this.isHorizontal ? \"x\" : \"y\",\n\t infinite: this.isInfinite,\n\t click: !1,\n\t dblClick: !1,\n\t touch: t => !(this.pages.length < 2 && !t.options.infinite),\n\t bounds: () => this.getBounds(),\n\t maxVelocity: t => Math.abs(t.target[this.axis] - t.current[this.axis]) < 2 * this.viewportDim ? 100 : 0\n\t }, t)), this.panzoom.on(\"*\", (t, e, ...i) => {\n\t this.emit(`Panzoom.${e}`, t, ...i);\n\t }), this.panzoom.on(\"decel\", this.onDecel), this.panzoom.on(\"refresh\", this.onRefresh), this.panzoom.on(\"beforeTransform\", this.onBeforeTransform), this.panzoom.on(\"endAnimation\", this.onEndAnimation);\n\t }\n\n\t attachEvents() {\n\t const t = this.container;\n\t t && (t.addEventListener(\"click\", this.onClick, {\n\t passive: !1,\n\t capture: !1\n\t }), t.addEventListener(\"slideTo\", this.onSlideTo)), window.addEventListener(\"resize\", this.onResize);\n\t }\n\n\t createPages() {\n\t let t = [];\n\t const {\n\t contentDim: e,\n\t viewportDim: i\n\t } = this,\n\t n = this.option(\"slidesPerPage\");\n\n\t if (\"number\" == typeof n && e > i) {\n\t for (let e = 0; e < this.slides.length; e += n) t.push(k({\n\t index: e,\n\t slides: this.slides.slice(e, e + n)\n\t }));\n\n\t return t;\n\t }\n\n\t let s = 0,\n\t o = 0;\n\n\t for (const e of this.slides) (!t.length || o + e.dim > i) && (t.push(k()), s = t.length - 1, o = 0), o += e.dim + e.gap, t[s].slides.push(e);\n\n\t return t;\n\t }\n\n\t processPages() {\n\t const e = this.pages,\n\t {\n\t contentDim: i,\n\t viewportDim: n\n\t } = this,\n\t s = this.option(\"center\"),\n\t o = this.option(\"fill\"),\n\t a = o && s && i > n && !this.isInfinite;\n\t if (e.forEach((t, e) => {\n\t t.index = e, t.pos = t.slides[0].pos, t.dim = 0;\n\n\t for (const [e, i] of t.slides.entries()) t.dim += i.dim, e < t.slides.length - 1 && (t.dim += i.gap);\n\n\t a && t.pos + .5 * t.dim < .5 * n ? t.pos = 0 : a && t.pos + .5 * t.dim >= i - .5 * n ? t.pos = i - n : s && (t.pos += -.5 * (n - t.dim));\n\t }), e.forEach((e, s) => {\n\t o && !this.isInfinite && i > n && (e.pos = Math.max(e.pos, 0), e.pos = Math.min(e.pos, i - n)), e.pos = t(e.pos, 1e3), e.dim = t(e.dim, 1e3), e.pos < .1 && e.pos > -.1 && (e.pos = 0);\n\t }), this.isInfinite) return e;\n\t const r = [];\n\t let l;\n\t return e.forEach(t => {\n\t const e = Object.assign({}, t);\n\t l && e.pos === l.pos ? (l.dim += e.dim, l.slides = [...l.slides, ...e.slides]) : (e.index = r.length, l = e, r.push(e));\n\t }), r;\n\t }\n\n\t getPageFromIndex(t = 0) {\n\t const e = this.pages.length;\n\t let i;\n\t return t = parseInt((t || 0).toString()) || 0, i = this.isInfinite ? (t % e + e) % e : Math.max(Math.min(t, e - 1), 0), i;\n\t }\n\n\t getSlideMetrics(e) {\n\t const i = this.isHorizontal ? \"width\" : \"height\";\n\t let n = 0,\n\t s = 0,\n\t o = e.el;\n\t o ? n = parseFloat(o.dataset[i] || \"\") || 0 : (o = document.createElement(\"div\"), o.style.visibility = \"hidden\", S(o, this.cn(\"slide\") + \" \" + e.class), (this.track || document.body).prepend(o)), n ? (o.style[i] = `${n}px`, o.style[\"width\" === i ? \"height\" : \"width\"] = \"\") : n = o.getBoundingClientRect()[i];\n\t const a = getComputedStyle(o);\n\t return \"content-box\" === a.boxSizing && (this.isHorizontal ? (n += parseFloat(a.paddingLeft) || 0, n += parseFloat(a.paddingRight) || 0) : (n += parseFloat(a.paddingTop) || 0, n += parseFloat(a.paddingBottom) || 0)), s = parseFloat(a[this.isHorizontal ? \"marginRight\" : \"marginBottom\"]) || 0, this.isHorizontal, e.el || o.remove(), {\n\t dim: t(n, 1e3),\n\t gap: t(s, 1e3)\n\t };\n\t }\n\n\t getBounds() {\n\t let t = {\n\t min: 0,\n\t max: 0\n\t };\n\t if (this.isInfinite) t = {\n\t min: -1 / 0,\n\t max: 1 / 0\n\t };else if (this.pages.length) {\n\t const e = this.pages[0].pos,\n\t i = this.pages[this.pages.length - 1].pos;\n\t t = this.isRTL && this.isHorizontal ? {\n\t min: e,\n\t max: i\n\t } : {\n\t min: -1 * i,\n\t max: -1 * e\n\t };\n\t }\n\t return {\n\t x: this.isHorizontal ? t : {\n\t min: 0,\n\t max: 0\n\t },\n\t y: this.isHorizontal ? {\n\t min: 0,\n\t max: 0\n\t } : t\n\t };\n\t }\n\n\t repositionSlides() {\n\t let e,\n\t {\n\t viewport: i,\n\t viewportDim: n,\n\t contentDim: s,\n\t page: o,\n\t pages: a\n\t } = this,\n\t r = 0,\n\t l = 0,\n\t c = 0,\n\t h = 0;\n\t this.panzoom ? h = -1 * this.panzoom.current[this.axis] : a[o] && (h = a[o].pos || 0), e = this.isHorizontal ? this.isRTL ? \"right\" : \"left\" : \"top\", this.isRTL && this.isHorizontal && (h *= -1);\n\n\t for (const i of this.slides) i.el ? (\"top\" === e ? (i.el.style.right = \"\", i.el.style.left = \"\") : i.el.style.top = \"\", i.index !== r ? i.el.style[e] = 0 === l ? \"\" : `${t(l, 1e3)}px` : i.el.style[e] = \"\", c += i.dim + i.gap, r++) : l += i.dim + i.gap;\n\n\t if (this.isInfinite && c && i) {\n\t const o = this.isHorizontal;\n\t let a = getComputedStyle(i),\n\t r = \"padding\",\n\t d = o ? \"Right\" : \"Bottom\",\n\t u = parseFloat(a[r + (o ? \"Left\" : \"Top\")]);\n\t h -= u, n += u, n += parseFloat(a[r + d]);\n\n\t for (const i of this.slides) i.el && (t(i.pos) < t(n) && t(i.pos + i.dim + i.gap) < t(h) && t(h) > t(s - n) && (i.el.style[e] = `${t(l + c, 1e3)}px`), t(i.pos + i.gap) >= t(s - n) && t(i.pos) > t(h + n) && t(h) < t(n) && (i.el.style[e] = `-${t(c, 1e3)}px`));\n\t }\n\n\t let d,\n\t u,\n\t p = [...this.inTransition];\n\n\t if (p.length > 1 && (d = this.pages[p[0]], u = this.pages[p[1]]), d && u) {\n\t let i = 0;\n\n\t for (const n of this.slides) n.el ? this.inTransition.has(n.index) && d.slides.indexOf(n) < 0 && (n.el.style[e] = `${t(i + (d.pos - u.pos), 1e3)}px`) : i += n.dim + n.gap;\n\t }\n\t }\n\n\t createSlideEl(t) {\n\t if (!this.track || !t) return;\n\t if (t.el) return;\n\t const e = document.createElement(\"div\");\n\t S(e, this.cn(\"slide\")), S(e, t.class), S(e, t.customClass), t.html && (e.innerHTML = t.html);\n\t const i = [];\n\t this.slides.forEach((t, e) => {\n\t t.el && i.push(e);\n\t });\n\t const n = t.index;\n\t let s = null;\n\n\t if (i.length) {\n\t let t = i.reduce((t, e) => Math.abs(e - n) < Math.abs(t - n) ? e : t);\n\t s = this.slides[t];\n\t }\n\n\t const o = s && s.el ? s.index < t.index ? s.el.nextSibling : s.el : null;\n\t this.track.insertBefore(e, this.track.contains(o) ? o : null), t.el = e, this.emit(\"createSlide\", t);\n\t }\n\n\t removeSlideEl(t, e = !1) {\n\t const i = t.el;\n\t if (!i) return;\n\t if (E(i, this.cn(\"isSelected\")), t.isDom && !e) return i.removeAttribute(\"aria-hidden\"), i.removeAttribute(\"data-index\"), E(i, this.cn(\"isSelected\")), void (i.style.left = \"\");\n\t this.emit(\"removeSlide\", t);\n\t const n = new CustomEvent(\"animationend\");\n\t i.dispatchEvent(n), t.el && t.el.remove(), t.el = null;\n\t }\n\n\t transitionTo(e = 0, i = this.option(\"transition\")) {\n\t if (!i) return !1;\n\t const {\n\t pages: n,\n\t panzoom: s\n\t } = this;\n\t e = parseInt((e || 0).toString()) || 0;\n\t const o = this.getPageFromIndex(e);\n\t if (!s || !n[o] || n.length < 2 || n[this.page].slides[0].dim < this.viewportDim) return !1;\n\t const a = e > this.page ? 1 : -1,\n\t r = this.pages[o].pos * (this.isRTL ? 1 : -1);\n\t if (this.page === o && t(r, 1e3) === t(s.target[this.axis], 1e3)) return !1;\n\t this.clearTransitions();\n\t const l = s.isResting;\n\t S(this.container, this.cn(\"inTransition\"));\n\t const c = this.pages[this.page].slides[0],\n\t h = this.pages[o].slides[0];\n\t this.inTransition.add(h.index), this.createSlideEl(h);\n\t let d = c.el,\n\t u = h.el;\n\t l || \"slide\" === i || (i = \"fadeFast\", d = null);\n\t const p = this.isRTL ? \"next\" : \"prev\",\n\t f = this.isRTL ? \"prev\" : \"next\";\n\t return d && (this.inTransition.add(c.index), c.transition = i, d.addEventListener(\"animationend\", this.onAnimationEnd), d.classList.add(`f-${i}Out`, `to-${a > 0 ? f : p}`)), u && (h.transition = i, u.addEventListener(\"animationend\", this.onAnimationEnd), u.classList.add(`f-${i}In`, `from-${a > 0 ? p : f}`)), s.panTo({\n\t x: this.isHorizontal ? r : 0,\n\t y: this.isHorizontal ? 0 : r,\n\t friction: 0\n\t }), this.onChange(o), !0;\n\t }\n\n\t manageSlideVisiblity() {\n\t const t = new Set(),\n\t e = new Set(),\n\t i = this.getVisibleSlides(parseFloat(this.option(\"preload\", 0) + \"\") || 0);\n\n\t for (const n of this.slides) i.has(n) ? t.add(n) : e.add(n);\n\n\t for (const e of this.inTransition) t.add(this.slides[e]);\n\n\t for (const e of t) this.createSlideEl(e), this.lazyLoadSlide(e);\n\n\t for (const i of e) t.has(i) || this.removeSlideEl(i);\n\n\t this.markSelectedSlides(), this.repositionSlides();\n\t }\n\n\t markSelectedSlides() {\n\t if (!this.pages[this.page] || !this.pages[this.page].slides) return;\n\t const t = \"aria-hidden\";\n\t let e = this.cn(\"isSelected\");\n\t if (e) for (const i of this.slides) i.el && (i.el.dataset.index = `${i.index}`, this.pages[this.page].slides.includes(i) ? (i.el.classList.contains(e) || (S(i.el, e), this.emit(\"selectSlide\", i)), i.el.removeAttribute(t)) : (i.el.classList.contains(e) && (E(i.el, e), this.emit(\"unselectSlide\", i)), i.el.setAttribute(t, \"true\")));\n\t }\n\n\t flipInfiniteTrack() {\n\t const t = this.panzoom;\n\t if (!t || !this.isInfinite) return;\n\t const e = \"x\" === this.option(\"axis\") ? \"e\" : \"f\",\n\t {\n\t viewportDim: i,\n\t contentDim: n\n\t } = this;\n\t let s = t.current[e],\n\t o = t.target[e] - s,\n\t a = 0,\n\t r = .5 * i,\n\t l = n;\n\t this.isRTL && this.isHorizontal ? (s < -r && (a = -1, s += l), s > l - r && (a = 1, s -= l)) : (s > r && (a = 1, s -= l), s < -l + r && (a = -1, s += l)), a && (t.current[e] = s, t.target[e] = s + o);\n\t }\n\n\t lazyLoadSlide(t) {\n\t const e = this,\n\t i = t && t.el;\n\t if (!i) return;\n\t const s = new Set(),\n\t o = \"f-fadeIn\";\n\t i.querySelectorAll(\"[data-lazy-srcset]\").forEach(t => {\n\t t instanceof HTMLImageElement && s.add(t);\n\t });\n\t let a = Array.from(i.querySelectorAll(\"[data-lazy-src]\"));\n\t i.dataset.lazySrc && a.push(i), a.map(t => {\n\t t instanceof HTMLImageElement ? s.add(t) : x(t) && (t.style.backgroundImage = `url('${t.dataset.lazySrc || \"\"}')`, delete t.dataset.lazySrc);\n\t });\n\n\t const r = (t, i, n) => {\n\t n && (n.remove(), n = null), i.complete && (i.classList.add(o), setTimeout(() => {\n\t i.classList.remove(o);\n\t }, 350), i.style.display = \"\"), this.option(\"adaptiveHeight\") && t.el && this.pages[this.page].slides.indexOf(t) > -1 && (e.updateMetrics(), e.setViewportHeight()), this.emit(\"load\", t);\n\t };\n\n\t for (const e of s) {\n\t let i = null;\n\t e.src = e.dataset.lazySrcset || e.dataset.lazySrc || \"\", delete e.dataset.lazySrc, delete e.dataset.lazySrcset, e.style.display = \"none\", e.addEventListener(\"error\", () => {\n\t r(t, e, i);\n\t }), e.addEventListener(\"load\", () => {\n\t r(t, e, i);\n\t }), setTimeout(() => {\n\t e.parentNode && t.el && (e.complete ? r(t, e, i) : (i = n(w), e.parentNode.insertBefore(i, e)));\n\t }, 300);\n\t }\n\t }\n\n\t onAnimationEnd(t) {\n\t var e;\n\t const i = t.target,\n\t n = i ? parseInt(i.dataset.index || \"\", 10) || 0 : -1,\n\t s = this.slides[n],\n\t o = t.animationName;\n\t if (!i || !s || !o) return;\n\t const a = !!this.inTransition.has(n) && s.transition;\n\t a && o.substring(0, a.length + 2) === `f-${a}` && this.inTransition.delete(n), this.inTransition.size || this.clearTransitions(), n === this.page && (null === (e = this.panzoom) || void 0 === e ? void 0 : e.isResting) && this.emit(\"settle\");\n\t }\n\n\t onDecel(t, e = 0, i = 0) {\n\t const {\n\t isRTL: n,\n\t isHorizontal: s,\n\t axis: o,\n\t pages: a\n\t } = this,\n\t r = a.length,\n\t l = Math.abs(Math.atan2(i, e) / (Math.PI / 180));\n\t let c = 0;\n\t if (c = l > 45 && l < 135 ? s ? 0 : i : s ? e : 0, !r) return;\n\t const h = this.option(\"dragFree\");\n\t let d = this.page,\n\t u = n && s ? 1 : -1;\n\t const p = t.target[o] * u,\n\t f = t.current[o] * u;\n\t let {\n\t pageIndex: m\n\t } = this.getPageFromPosition(p),\n\t {\n\t pageIndex: g\n\t } = this.getPageFromPosition(f);\n\t h ? this.onChange(m) : (d = g, Math.abs(c) > 5 && (d = n && s ? c < 0 ? d - 1 : d + 1 : c < 0 ? d + 1 : d - 1), this.slideTo(d, {\n\t transition: !1,\n\t friction: t.option(\"decelFriction\")\n\t }));\n\t }\n\n\t onClick(t) {\n\t const e = t.target,\n\t i = e && x(e) ? e.dataset : null;\n\t let n, s;\n\t i && (void 0 !== i.carouselPage ? (s = \"slideTo\", n = i.carouselPage) : void 0 !== i.carouselNext ? s = \"slideNext\" : void 0 !== i.carouselPrev && (s = \"slidePrev\")), s ? (t.preventDefault(), t.stopPropagation(), e && !e.hasAttribute(\"disabled\") && this[s](n)) : this.emit(\"click\", t);\n\t }\n\n\t onSlideTo(t) {\n\t const e = t.detail || 0;\n\t this.slideTo(this.getPageForSlide(e), {\n\t friction: 0\n\t });\n\t }\n\n\t onChange(t, e = 0) {\n\t const i = this.page;\n\t this.prevPage = i, this.page = t, this.option(\"adaptiveHeight\") && this.setViewportHeight(), t !== i && (this.markSelectedSlides(), this.emit(\"change\", t, i, e));\n\t }\n\n\t onRefresh() {\n\t let t = this.contentDim,\n\t e = this.viewportDim;\n\t this.updateMetrics(), this.contentDim === t && this.viewportDim === e || this.slideTo(this.page, {\n\t friction: 0,\n\t transition: !1\n\t });\n\t }\n\n\t onResize() {\n\t this.option(\"breakpoints\") && this.processOptions();\n\t }\n\n\t onBeforeTransform(t) {\n\t this.lp !== t.current[this.axis] && (this.flipInfiniteTrack(), this.manageSlideVisiblity()), this.lp = t.current.e;\n\t }\n\n\t onEndAnimation() {\n\t this.inTransition.size || this.emit(\"settle\");\n\t }\n\n\t reInit(t = null, e = null) {\n\t this.destroy(), this.state = L.Init, this.userOptions = t || this.userOptions, this.userPlugins = e || this.userPlugins, this.processOptions();\n\t }\n\n\t slideTo(t = 0, {\n\t friction: e = this.option(\"friction\"),\n\t transition: i = this.option(\"transition\")\n\t } = {}) {\n\t if (this.state === L.Destroy) return;\n\t const {\n\t axis: n,\n\t isHorizontal: s,\n\t isRTL: o,\n\t pages: a,\n\t panzoom: r\n\t } = this,\n\t l = a.length,\n\t c = o && s ? 1 : -1;\n\t if (!r || !l) return;\n\t if (this.transitionTo(t, i)) return;\n\t const h = this.getPageFromIndex(t);\n\t let d = a[h].pos;\n\n\t if (this.isInfinite) {\n\t const e = this.contentDim,\n\t i = r.target[n] * c;\n\t if (2 === l) d += e * Math.floor(parseFloat(t + \"\") / 2);else {\n\t const t = i;\n\t d = [d, d - e, d + e].reduce(function (e, i) {\n\t return Math.abs(i - t) < Math.abs(e - t) ? i : e;\n\t });\n\t }\n\t }\n\n\t d *= c, Math.abs(r.target[n] - d) < .1 || (r.panTo({\n\t x: s ? d : 0,\n\t y: s ? 0 : d,\n\t friction: e\n\t }), this.onChange(h));\n\t }\n\n\t slideToClosest(t) {\n\t if (this.panzoom) {\n\t const {\n\t pageIndex: e\n\t } = this.getPageFromPosition(this.panzoom.current[this.isHorizontal ? \"e\" : \"f\"]);\n\t this.slideTo(e, t);\n\t }\n\t }\n\n\t slideNext() {\n\t this.slideTo(this.page + 1);\n\t }\n\n\t slidePrev() {\n\t this.slideTo(this.page - 1);\n\t }\n\n\t clearTransitions() {\n\t this.inTransition.clear(), E(this.container, this.cn(\"inTransition\"));\n\t const t = [\"to-prev\", \"to-next\", \"from-prev\", \"from-next\"];\n\n\t for (const e of this.slides) {\n\t const i = e.el;\n\n\t if (i) {\n\t i.removeEventListener(\"animationend\", this.onAnimationEnd), i.classList.remove(...t);\n\t const n = e.transition;\n\t n && i.classList.remove(`f-${n}Out`, `f-${n}In`);\n\t }\n\t }\n\n\t this.manageSlideVisiblity();\n\t }\n\n\t prependSlide(t) {\n\t var e, i;\n\t let n = Array.isArray(t) ? t : [t];\n\n\t for (const t of n.reverse()) this.slides.unshift(R(t));\n\n\t for (let t = 0; t < this.slides.length; t++) this.slides[t].index = t;\n\n\t const s = (null === (e = this.pages[this.page]) || void 0 === e ? void 0 : e.pos) || 0;\n\t this.page += n.length, this.updateMetrics();\n\t const o = (null === (i = this.pages[this.page]) || void 0 === i ? void 0 : i.pos) || 0;\n\n\t if (this.panzoom) {\n\t const t = this.isRTL ? s - o : o - s;\n\t this.panzoom.target.e -= t, this.panzoom.current.e -= t, this.panzoom.requestTick();\n\t }\n\t }\n\n\t appendSlide(t) {\n\t let e = Array.isArray(t) ? t : [t];\n\n\t for (const t of e) {\n\t const e = R(t);\n\t e.index = this.slides.length, this.slides.push(e), this.emit(\"initSlide\", t, this.slides.length);\n\t }\n\n\t this.updateMetrics();\n\t }\n\n\t removeSlide(t) {\n\t const e = this.slides.length;\n\t t = (t % e + e) % e, this.removeSlideEl(this.slides[t], !0), this.slides.splice(t, 1);\n\n\t for (let t = 0; t < this.slides.length; t++) this.slides[t].index = t;\n\n\t this.updateMetrics(), this.slideTo(this.page, {\n\t friction: 0,\n\t transition: !1\n\t });\n\t }\n\n\t updateMetrics() {\n\t const {\n\t panzoom: e,\n\t viewport: i,\n\t track: n,\n\t isHorizontal: s\n\t } = this;\n\t if (!n) return;\n\t const o = s ? \"width\" : \"height\";\n\n\t if (i) {\n\t let e = t(i.getBoundingClientRect()[o], 1e3),\n\t n = getComputedStyle(i),\n\t a = \"padding\",\n\t r = s ? \"Right\" : \"Bottom\";\n\t e -= parseFloat(n[a + (s ? \"Left\" : \"Top\")]) + parseFloat(n[a + r]), this.viewportDim = e;\n\t }\n\n\t let a,\n\t r = this.pages.length,\n\t l = 0;\n\n\t for (const [e, i] of this.slides.entries()) {\n\t let n = 0,\n\t s = 0;\n\t !i.el && a ? (n = a.dim, s = a.gap) : (({\n\t dim: n,\n\t gap: s\n\t } = this.getSlideMetrics(i)), a = i), n = t(n, 1e3), s = t(s, 1e3), i.dim = n, i.gap = s, i.pos = l, l += n, (this.isInfinite || e < this.slides.length - 1) && (l += s);\n\t }\n\n\t const c = this.contentDim;\n\t l = t(l, 1e3), this.contentDim = l, e && (e.contentRect[o] = l, e.contentRect[\"e\" === this.axis ? \"fullWidth\" : \"fullHeight\"] = l), this.pages = this.createPages(), this.pages = this.processPages(), this.state === L.Init && this.setInitialPage(), this.page = Math.max(0, Math.min(this.page, this.pages.length - 1)), e && r === this.pages.length && Math.abs(l - c) > .5 && (e.target[this.axis] = -1 * this.pages[this.page].pos, e.current[this.axis] = -1 * this.pages[this.page].pos, e.stop()), this.manageSlideVisiblity(), this.emit(\"refresh\");\n\t }\n\n\t getProgress(e, i = !1) {\n\t void 0 === e && (e = this.page);\n\t const n = this,\n\t s = n.panzoom,\n\t o = n.pages[e] || 0;\n\t if (!o || !s) return 0;\n\t let a = -1 * s.current.e,\n\t r = n.contentDim;\n\t var l = [t((a - o.pos) / (1 * o.dim), 1e3), t((a + r - o.pos) / (1 * o.dim), 1e3), t((a - r - o.pos) / (1 * o.dim), 1e3)].reduce(function (t, e) {\n\t return Math.abs(e) < Math.abs(t) ? e : t;\n\t });\n\t return i ? l : Math.max(-1, Math.min(1, l));\n\t }\n\n\t setViewportHeight() {\n\t const {\n\t page: t,\n\t pages: e,\n\t viewport: i,\n\t isHorizontal: n\n\t } = this;\n\t if (!i || !e[t]) return;\n\t let s = 0;\n\t n && this.track && (this.track.style.height = \"auto\", e[t].slides.forEach(t => {\n\t t.el && (s = Math.max(s, t.el.offsetHeight));\n\t })), i.style.height = s ? `${s}px` : \"\";\n\t }\n\n\t getPageForSlide(t) {\n\t for (const e of this.pages) for (const i of e.slides) if (i.index === t) return e.index;\n\n\t return -1;\n\t }\n\n\t getVisibleSlides(t = 0) {\n\t var e;\n\t const i = new Set();\n\t let {\n\t contentDim: n,\n\t viewportDim: s,\n\t pages: o,\n\t page: a\n\t } = this;\n\t n = n + (null === (e = this.slides[this.slides.length - 1]) || void 0 === e ? void 0 : e.gap) || 0;\n\t let r = 0;\n\t r = this.panzoom ? -1 * this.panzoom.current[this.axis] : o[a] && o[a].pos || 0, this.isInfinite && (r -= Math.floor(r / n) * n), this.isRTL && this.isHorizontal && (r *= -1);\n\t const l = r - s * t,\n\t c = r + s * (t + 1),\n\t h = this.isInfinite ? [-1, 0, 1] : [0];\n\n\t for (const t of this.slides) for (const e of h) {\n\t const s = t.pos + e * n,\n\t o = t.pos + t.dim + t.gap + e * n;\n\t s < c && o > l && i.add(t);\n\t }\n\n\t return i;\n\t }\n\n\t getPageFromPosition(t) {\n\t const {\n\t viewportDim: e,\n\t contentDim: i\n\t } = this,\n\t n = this.pages.length,\n\t s = this.slides.length,\n\t o = this.slides[s - 1];\n\t let a = 0,\n\t r = 0,\n\t l = 0;\n\t const c = this.option(\"center\");\n\t c && (t += .5 * e), this.isInfinite || (t = Math.max(this.slides[0].pos, Math.min(t, o.pos)));\n\t const h = i + o.gap;\n\t l = Math.floor(t / h) || 0, t -= l * h;\n\t let d = o,\n\t u = this.slides.find(e => {\n\t const i = t + (d && !c ? .5 * d.dim : 0);\n\t return d = e, e.pos <= i && e.pos + e.dim + e.gap > i;\n\t });\n\t return u || (u = o), r = this.getPageForSlide(u.index), a = r + l * n, {\n\t page: a,\n\t pageIndex: r\n\t };\n\t }\n\n\t destroy() {\n\t if ([L.Destroy].includes(this.state)) return;\n\t this.state = L.Destroy;\n\t const {\n\t container: t,\n\t viewport: e,\n\t track: i,\n\t slides: n,\n\t panzoom: s\n\t } = this,\n\t o = this.option(\"classes\");\n\t t.removeEventListener(\"click\", this.onClick, {\n\t passive: !1,\n\t capture: !1\n\t }), t.removeEventListener(\"slideTo\", this.onSlideTo), window.removeEventListener(\"resize\", this.onResize), s && (s.destroy(), this.panzoom = null), n && n.forEach(t => {\n\t this.removeSlideEl(t);\n\t }), this.detachPlugins(), e && e.offsetParent && i && i.offsetParent && e.replaceWith(...i.childNodes);\n\n\t for (const [e, i] of Object.entries(o)) \"container\" !== e && i && t.classList.remove(i);\n\n\t this.track = null, this.viewport = null, this.page = 0, this.slides = [];\n\t const a = this.events.get(\"ready\");\n\t this.events = new Map(), a && this.events.set(\"ready\", a);\n\t }\n\n\t}\n\n\tObject.defineProperty(_, \"Panzoom\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: T\n\t}), Object.defineProperty(_, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: z\n\t}), Object.defineProperty(_, \"Plugins\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: B\n\t});\n\n\tconst N = function (t) {\n\t const e = window.pageYOffset,\n\t i = window.pageYOffset + window.innerHeight;\n\t if (!x(t)) return 0;\n\t const n = t.getBoundingClientRect(),\n\t s = n.y + window.pageYOffset,\n\t o = n.y + n.height + window.pageYOffset;\n\t if (e > o || i < s) return 0;\n\t if (e < s && i > o) return 100;\n\t if (s < e && o > i) return 100;\n\t let a = n.height;\n\t s < e && (a -= window.pageYOffset - s), o > i && (a -= o - i);\n\t const r = a / window.innerHeight * 100;\n\t return Math.round(r);\n\t},\n\t W = !(\"undefined\" == typeof window || !window.document || !window.document.createElement);\n\n\tlet $$1;\n\n\tconst X = [\"a[href]\", \"area[href]\", 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])', \"select:not([disabled]):not([aria-hidden])\", \"textarea:not([disabled]):not([aria-hidden])\", \"button:not([disabled]):not([aria-hidden]):not(.fancybox-focus-guard)\", \"iframe\", \"object\", \"embed\", \"video\", \"audio\", \"[contenteditable]\", '[tabindex]:not([tabindex^=\"-\"]):not([disabled]):not([aria-hidden])'].join(\",\"),\n\t Y = t => {\n\t if (t && W) {\n\t void 0 === $$1 && document.createElement(\"div\").focus({\n\t get preventScroll() {\n\t return $$1 = !0, !1;\n\t }\n\n\t });\n\n\t try {\n\t if ($$1) t.focus({\n\t preventScroll: !0\n\t });else {\n\t const e = window.pageXOffset || document.body.scrollTop,\n\t i = window.pageYOffset || document.body.scrollLeft;\n\t t.focus(), document.body.scrollTo({\n\t top: e,\n\t left: i,\n\t behavior: \"auto\"\n\t });\n\t }\n\t } catch (t) {}\n\t }\n\t},\n\t q = {\n\t dragToClose: !0,\n\t hideScrollbar: !0,\n\t Carousel: {\n\t classes: {\n\t container: \"fancybox__carousel\",\n\t viewport: \"fancybox__viewport\",\n\t track: \"fancybox__track\",\n\t slide: \"fancybox__slide\"\n\t }\n\t },\n\t contentClick: \"toggleZoom\",\n\t contentDblClick: !1,\n\t backdropClick: \"close\",\n\t animated: !0,\n\t idle: 3500,\n\t showClass: \"f-zoomInUp\",\n\t hideClass: \"f-fadeOut\",\n\t commonCaption: !1,\n\t parentEl: null,\n\t startIndex: 0,\n\t l10n: Object.assign(Object.assign({}, v), {\n\t CLOSE: \"Close\",\n\t NEXT: \"Next\",\n\t PREV: \"Previous\",\n\t MODAL: \"You can close this modal content with the ESC key\",\n\t ERROR: \"Something Went Wrong, Please Try Again Later\",\n\t IMAGE_ERROR: \"Image Not Found\",\n\t ELEMENT_NOT_FOUND: \"HTML Element Not Found\",\n\t AJAX_NOT_FOUND: \"Error Loading AJAX : Not Found\",\n\t AJAX_FORBIDDEN: \"Error Loading AJAX : Forbidden\",\n\t IFRAME_ERROR: \"Error Loading Page\",\n\t TOGGLE_ZOOM: \"Toggle zoom level\",\n\t TOGGLE_THUMBS: \"Toggle thumbnails\",\n\t TOGGLE_SLIDESHOW: \"Toggle slideshow\",\n\t TOGGLE_FULLSCREEN: \"Toggle full-screen mode\",\n\t DOWNLOAD: \"Download\"\n\t }),\n\t tpl: {\n\t closeButton: '',\n\t main: '
\\n
\\n
\\n
\\n
'\n\t },\n\t groupAll: !1,\n\t groupAttr: \"data-fancybox\",\n\t defaultType: \"image\",\n\t defaultDisplay: \"block\",\n\t autoFocus: !0,\n\t trapFocus: !0,\n\t placeFocusBack: !0,\n\t closeButton: \"auto\",\n\t keyboard: {\n\t Escape: \"close\",\n\t Delete: \"close\",\n\t Backspace: \"close\",\n\t PageUp: \"next\",\n\t PageDown: \"prev\",\n\t ArrowUp: \"prev\",\n\t ArrowDown: \"next\",\n\t ArrowRight: \"next\",\n\t ArrowLeft: \"prev\"\n\t },\n\t Fullscreen: {\n\t autoStart: !1\n\t },\n\t compact: () => window.matchMedia(\"(max-width: 578px), (max-height: 578px)\").matches,\n\t wheel: \"zoom\"\n\t};\n\n\tvar Z, V;\n\t!function (t) {\n\t t[t.Init = 0] = \"Init\", t[t.Ready = 1] = \"Ready\", t[t.Closing = 2] = \"Closing\", t[t.CustomClosing = 3] = \"CustomClosing\", t[t.Destroy = 4] = \"Destroy\";\n\t}(Z || (Z = {})), function (t) {\n\t t[t.Loading = 0] = \"Loading\", t[t.Opening = 1] = \"Opening\", t[t.Ready = 2] = \"Ready\", t[t.Closing = 3] = \"Closing\";\n\t}(V || (V = {}));\n\n\tconst G = () => {\n\t queueMicrotask(() => {\n\t (() => {\n\t const {\n\t slug: t,\n\t index: e\n\t } = U.parseURL(),\n\t i = xt.getInstance();\n\n\t if (i && !1 !== i.option(\"Hash\")) {\n\t const n = i.carousel;\n\n\t if (t && n) {\n\t for (let e of n.slides) if (e.slug && e.slug === t) return n.slideTo(e.index);\n\n\t if (t === i.option(\"slug\")) return n.slideTo(e - 1);\n\t const s = i.getSlide(),\n\t o = s && s.triggerEl && s.triggerEl.dataset;\n\t if (o && o.fancybox === t) return n.slideTo(e - 1);\n\t }\n\n\t U.hasSilentClose = !0, i.close();\n\t }\n\n\t U.startFromUrl();\n\t })();\n\t });\n\t};\n\n\tclass U extends I {\n\t constructor() {\n\t super(...arguments), Object.defineProperty(this, \"origHash\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: \"\"\n\t }), Object.defineProperty(this, \"timer\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t });\n\t }\n\n\t onChange() {\n\t const t = this.instance,\n\t e = t.carousel;\n\t this.timer && clearTimeout(this.timer);\n\t const i = t.getSlide();\n\t if (!e || !i) return;\n\t const n = t.isOpeningSlide(i),\n\t s = new URL(document.URL).hash;\n\t let o,\n\t a = i.slug || void 0;\n\t o = a || this.instance.option(\"slug\"), !o && i.triggerEl && i.triggerEl.dataset && (o = i.triggerEl.dataset.fancybox);\n\t let r = \"\";\n\t o && \"true\" !== o && (r = \"#\" + o + (!a && e.slides.length > 1 ? \"-\" + (i.index + 1) : \"\")), n && (this.origHash = s !== r ? s : \"\"), r && s !== r && (this.timer = setTimeout(() => {\n\t try {\n\t window.history[n ? \"pushState\" : \"replaceState\"]({}, document.title, window.location.pathname + window.location.search + r);\n\t } catch (t) {}\n\t }, 300));\n\t }\n\n\t onClose() {\n\t if (this.timer && clearTimeout(this.timer), !0 !== U.hasSilentClose) try {\n\t window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (this.origHash || \"\"));\n\t } catch (t) {}\n\t }\n\n\t attach() {\n\t this.instance.on(\"Carousel.ready\", this.onChange), this.instance.on(\"Carousel.change\", this.onChange), this.instance.on(\"close\", this.onClose);\n\t }\n\n\t detach() {\n\t this.instance.off(\"Carousel.ready\", this.onChange), this.instance.off(\"Carousel.change\", this.onChange), this.instance.off(\"close\", this.onClose);\n\t }\n\n\t static parseURL() {\n\t const t = window.location.hash.slice(1),\n\t e = t.split(\"-\"),\n\t i = e[e.length - 1],\n\t n = i && /^\\+?\\d+$/.test(i) && parseInt(e.pop() || \"1\", 10) || 1;\n\t return {\n\t hash: t,\n\t slug: e.join(\"-\"),\n\t index: n\n\t };\n\t }\n\n\t static startFromUrl() {\n\t if (U.hasSilentClose = !1, xt.getInstance() || !1 === xt.defaults.Hash) return;\n\t const {\n\t hash: t,\n\t slug: e,\n\t index: i\n\t } = U.parseURL();\n\t if (!e) return;\n\t let n = document.querySelector(`[data-slug=\"${t}\"]`);\n\t if (n && n.dispatchEvent(new CustomEvent(\"click\", {\n\t bubbles: !0,\n\t cancelable: !0\n\t })), xt.getInstance()) return;\n\t const s = document.querySelectorAll(`[data-fancybox=\"${e}\"]`);\n\t s.length && (n = s[i - 1], n && n.dispatchEvent(new CustomEvent(\"click\", {\n\t bubbles: !0,\n\t cancelable: !0\n\t })));\n\t }\n\n\t static destroy() {\n\t window.removeEventListener(\"hashchange\", G, !1);\n\t }\n\n\t}\n\n\tfunction K() {\n\t window.addEventListener(\"hashchange\", G, !1), setTimeout(() => {\n\t U.startFromUrl();\n\t }, 500);\n\t}\n\n\tObject.defineProperty(U, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {}\n\t}), Object.defineProperty(U, \"hasSilentClose\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t}), W && (/complete|interactive|loaded/.test(document.readyState) ? K() : document.addEventListener(\"DOMContentLoaded\", K));\n\n\tclass J extends I {\n\t onCreateSlide(t, e, i) {\n\t const n = this.instance,\n\t s = n.optionFor(i, \"src\") || \"\",\n\t {\n\t el: o,\n\t type: a\n\t } = i;\n\t o && \"image\" === a && \"string\" == typeof s && this.setContent(i, s).then(t => {\n\t const e = i.contentEl,\n\t s = i.imageEl,\n\t a = i.thumbElSrc;\n\t if (n.isClosing() || !e || !s) return;\n\t e.offsetHeight;\n\t const r = !!n.isOpeningSlide(i) && this.getZoomInfo(i);\n\n\t if (this.option(\"protected\")) {\n\t o.addEventListener(\"contextmenu\", t => {\n\t t.preventDefault();\n\t });\n\t const t = document.createElement(\"div\");\n\t S(t, \"fancybox-protected\"), e.appendChild(t);\n\t }\n\n\t if (a && r) {\n\t const s = t.contentRect,\n\t o = Math.max(s.fullWidth, s.fullHeight);\n\t let c = null;\n\t !r.opacity && o > 1200 && (c = document.createElement(\"img\"), S(c, \"fancybox-ghost\"), c.src = a, e.appendChild(c));\n\n\t const h = () => {\n\t c && (S(c, \"f-fadeFastOut\"), setTimeout(() => {\n\t c && (c.remove(), c = null);\n\t }, 200));\n\t };\n\n\t (l = a, new Promise((t, e) => {\n\t const i = new Image();\n\t i.onload = t, i.onerror = e, i.src = l;\n\t })).then(() => {\n\t i.state = V.Opening, this.instance.emit(\"reveal\", i), this.zoomIn(i).then(() => {\n\t h(), this.instance.done(i);\n\t }, () => {\n\t n.hideLoading(i);\n\t }), c && setTimeout(() => {\n\t h();\n\t }, o > 2500 ? 800 : 200);\n\t }, () => {\n\t n.hideLoading(i), n.revealContent(i);\n\t });\n\t } else {\n\t const e = this.optionFor(i, \"initialSize\"),\n\t s = this.optionFor(i, \"zoom\"),\n\t o = {\n\t event: n.prevMouseMoveEvent || n.options.event,\n\t friction: s ? .12 : 0\n\t };\n\t let a = n.optionFor(i, \"showClass\") || void 0,\n\t r = !0;\n\t n.isOpeningSlide(i) && (\"full\" === e ? t.zoomToFull(o) : \"cover\" === e ? t.zoomToCover(o) : \"max\" === e ? t.zoomToMax(o) : r = !1, t.stop(\"current\")), r && a && (a = t.isDragging ? \"f-fadeIn\" : \"\"), n.revealContent(i, a);\n\t }\n\n\t var l;\n\t }, () => {\n\t n.setError(i, \"{{IMAGE_ERROR}}\");\n\t });\n\t }\n\n\t onRemoveSlide(t, e, i) {\n\t i.panzoom && i.panzoom.destroy(), i.panzoom = void 0, i.imageEl = void 0;\n\t }\n\n\t onChange(t, e, i, n) {\n\t for (const t of e.slides) {\n\t const e = t.panzoom;\n\t e && t.index !== i && e.reset(.35);\n\t }\n\t }\n\n\t onClose() {\n\t const t = this.instance,\n\t e = t.container,\n\t i = t.getSlide();\n\t if (!e || !e.parentElement || !i) return;\n\t const {\n\t el: n,\n\t contentEl: s,\n\t panzoom: o\n\t } = i,\n\t a = i.thumbElSrc;\n\t if (!n || !a || !s || !o || o.isContentLoading || o.state === g.Init || o.state === g.Destroy) return;\n\t o.updateMetrics();\n\t let r = this.getZoomInfo(i);\n\t if (!r) return;\n\t this.instance.state = Z.CustomClosing, e.classList.remove(\"is-zooming-in\"), e.classList.add(\"is-zooming-out\"), s.style.backgroundImage = `url('${a}')`;\n\t const l = e.getBoundingClientRect();\n\t Object.assign(e.style, {\n\t position: \"absolute\",\n\t top: `${window.pageYOffset}px`,\n\t left: `${window.pageXOffset}px`,\n\t bottom: \"auto\",\n\t right: \"auto\",\n\t width: `${l.width}px`,\n\t height: `${l.height}px`,\n\t overflow: \"hidden\"\n\t });\n\t const {\n\t x: c,\n\t y: h,\n\t scale: d,\n\t opacity: u\n\t } = r;\n\n\t if (u) {\n\t const t = ((t, e, i, n) => {\n\t const s = e - t,\n\t o = n - i;\n\t return e => i + ((e - t) / s * o || 0);\n\t })(o.scale, d, 1, 0);\n\n\t o.on(\"afterTransform\", () => {\n\t s.style.opacity = t(o.scale) + \"\";\n\t });\n\t }\n\n\t o.on(\"endAnimation\", () => {\n\t t.destroy();\n\t }), o.target.a = d, o.target.b = 0, o.target.c = 0, o.target.d = d, o.panTo({\n\t x: c,\n\t y: h,\n\t scale: d,\n\t friction: u ? .2 : .33,\n\t ignoreBounds: !0\n\t }), o.isResting && t.destroy();\n\t }\n\n\t setContent(t, e) {\n\t return new Promise((i, s) => {\n\t var o, a;\n\t const r = this.instance,\n\t l = t.el;\n\t if (!l) return void s();\n\t r.showLoading(t);\n\t let c = this.optionFor(t, \"content\");\n\t \"string\" == typeof c && (c = n(c)), c && x(c) || (c = document.createElement(\"img\"), c instanceof HTMLImageElement && (c.src = e || \"\", c.alt = (null === (o = t.caption) || void 0 === o ? void 0 : o.replace(/<[^>]+>/gi, \"\").substring(0, 1e3)) || `Image ${t.index + 1} of ${null === (a = r.carousel) || void 0 === a ? void 0 : a.pages.length}`, c.draggable = !1, t.srcset && c.setAttribute(\"srcset\", t.srcset)), t.sizes && c.setAttribute(\"sizes\", t.sizes)), c.classList.add(\"fancybox-image\"), t.imageEl = c, r.setContent(t, c, !1);\n\t t.panzoom = new T(l, u({}, this.option(\"Panzoom\") || {}, {\n\t content: c,\n\t width: r.optionFor(t, \"width\", \"auto\"),\n\t height: r.optionFor(t, \"height\", \"auto\"),\n\t wheel: () => {\n\t const t = r.option(\"wheel\");\n\t return (\"zoom\" === t || \"pan\" == t) && t;\n\t },\n\t click: (e, i) => {\n\t var n, s;\n\t if (r.isCompact || r.isClosing()) return !1;\n\t if (t.index !== (null === (n = r.getSlide()) || void 0 === n ? void 0 : n.index)) return !1;\n\t let o = !i || i.target && (null === (s = t.contentEl) || void 0 === s ? void 0 : s.contains(i.target));\n\t return r.option(o ? \"contentClick\" : \"backdropClick\") || !1;\n\t },\n\t dblClick: () => r.isCompact ? \"toggleZoom\" : r.option(\"contentDblClick\") || !1,\n\t spinner: !1,\n\t panOnlyZoomed: !0,\n\t wheelLimit: 1 / 0,\n\t transformParent: !0,\n\t on: {\n\t ready: t => {\n\t i(t);\n\t },\n\t error: () => {\n\t s();\n\t },\n\t destroy: () => {\n\t s();\n\t }\n\t }\n\t }));\n\t });\n\t }\n\n\t zoomIn(t) {\n\t return new Promise((e, i) => {\n\t const n = this.instance,\n\t s = n.container,\n\t {\n\t panzoom: o,\n\t contentEl: a,\n\t el: r\n\t } = t;\n\t o && o.updateMetrics();\n\t const l = this.getZoomInfo(t);\n\t if (!(l && r && a && o && s)) return void i();\n\n\t const {\n\t x: c,\n\t y: h,\n\t scale: d,\n\t opacity: u\n\t } = l,\n\t p = () => {\n\t t.state !== V.Closing && (u && (a.style.opacity = Math.max(Math.min(1, 1 - (1 - o.scale) / (1 - d)), 0) + \"\"), o.scale >= 1 && o.scale > o.targetScale - .1 && e(o));\n\t },\n\t f = t => {\n\t t.scale < .99 || t.scale > 1.01 || (a.style.opacity = \"\", E(s, \"is-zooming-in\"), t.off(\"endAnimation\", f), t.off(\"touchStart\", f), t.off(\"afterTransform\", p), e(t));\n\t };\n\n\t o.on(\"endAnimation\", f), o.on(\"touchStart\", f), o.on(\"afterTransform\", p), o.on([\"error\", \"destroy\"], () => {\n\t i();\n\t }), o.panTo({\n\t x: c,\n\t y: h,\n\t scale: d,\n\t friction: 0,\n\t ignoreBounds: !0\n\t }), o.stop(\"current\");\n\t const m = {\n\t event: \"mousemove\" === o.panMode ? n.prevMouseMoveEvent || n.options.event : void 0\n\t },\n\t g = this.optionFor(t, \"initialSize\");\n\t S(s, \"is-zooming-in\"), n.hideLoading(t), \"full\" === g ? o.zoomToFull(m) : \"cover\" === g ? o.zoomToCover(m) : \"max\" === g ? o.zoomToMax(m) : o.reset(.172);\n\t });\n\t }\n\n\t getZoomInfo(t) {\n\t const {\n\t el: e,\n\t imageEl: i,\n\t thumbEl: n,\n\t panzoom: s\n\t } = t;\n\t if (!e || !i || !n || !s || N(n) < 3 || !this.optionFor(t, \"zoom\") || this.instance.state === Z.Destroy) return !1;\n\t const {\n\t top: o,\n\t left: a,\n\t width: r,\n\t height: l\n\t } = n.getBoundingClientRect();\n\t let {\n\t top: c,\n\t left: h,\n\t fitWidth: d,\n\t fitHeight: u\n\t } = s.contentRect;\n\t if (!(r && l && d && u)) return !1;\n\t const p = r / d,\n\t f = s.container.getBoundingClientRect();\n\t c += f.top, h += f.left;\n\t const m = -1 * (h + .5 * d - (a + .5 * r)),\n\t g = -1 * (c + .5 * u - (o + .5 * l));\n\t let b = this.option(\"zoomOpacity\") || !1;\n\t return \"auto\" === b && (b = Math.abs(r / l - d / u) > .1), {\n\t x: m,\n\t y: g,\n\t scale: p,\n\t opacity: b\n\t };\n\t }\n\n\t attach() {\n\t this.instance.on(\"Carousel.change\", this.onChange), this.instance.on(\"Carousel.createSlide\", this.onCreateSlide), this.instance.on(\"Carousel.removeSlide\", this.onRemoveSlide), this.instance.on(\"close\", this.onClose);\n\t }\n\n\t detach() {\n\t this.instance.off(\"Carousel.change\", this.onChange), this.instance.off(\"Carousel.createSlide\", this.onCreateSlide), this.instance.off(\"Carousel.removeSlide\", this.onRemoveSlide), this.instance.off(\"close\", this.onClose);\n\t }\n\n\t}\n\n\tObject.defineProperty(J, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {\n\t initialSize: \"fit\",\n\t Panzoom: {\n\t maxScale: 1\n\t },\n\t protected: !1,\n\t zoom: !0,\n\t zoomOpacity: \"auto\"\n\t }\n\t});\n\n\tconst Q = (t, e = {}) => {\n\t const i = new URL(t),\n\t n = new URLSearchParams(i.search),\n\t s = new URLSearchParams();\n\n\t for (const [t, i] of [...n, ...Object.entries(e)]) {\n\t let e = i.toString();\n\t \"t\" === t ? s.set(\"start\", parseInt(e).toString()) : s.set(t, e);\n\t }\n\n\t let o = s.toString(),\n\t a = t.match(/#t=((.*)?\\d+s)/);\n\t return a && (o += `#t=${a[1]}`), o;\n\t},\n\t tt = {\n\t ajax: null,\n\t autoSize: !0,\n\t preload: !0,\n\t videoAutoplay: !0,\n\t videoRatio: 16 / 9,\n\t videoTpl: '',\n\t videoFormat: \"\",\n\t vimeo: {\n\t byline: 1,\n\t color: \"00adef\",\n\t controls: 1,\n\t dnt: 1,\n\t muted: 0\n\t },\n\t youtube: {\n\t controls: 1,\n\t enablejsapi: 1,\n\t nocookie: 1,\n\t rel: 0,\n\t fs: 1\n\t }\n\t},\n\t et = [\"image\", \"html\", \"ajax\", \"inline\", \"clone\", \"iframe\", \"map\", \"pdf\", \"html5video\", \"youtube\", \"vimeo\", \"video\"];\n\n\tclass it extends I {\n\t onInitSlide(t, e, i) {\n\t this.processType(i);\n\t }\n\n\t onCreateSlide(t, e, i) {\n\t this.setContent(i);\n\t }\n\n\t onRemoveSlide(t, e, i) {\n\t i.closeBtnEl && (i.closeBtnEl.remove(), i.closeBtnEl = void 0), i.xhr && (i.xhr.abort(), i.xhr = null), i.iframeEl && (i.iframeEl.onload = i.iframeEl.onerror = null, i.iframeEl.src = \"//about:blank\", i.iframeEl = null);\n\t const n = i.contentEl,\n\t s = i.placeholderEl;\n\t if (\"inline\" === i.type && n && s) n.classList.remove(\"fancybox__content\"), \"none\" !== n.style.display && (n.style.display = \"none\"), s.parentNode && s.parentNode.insertBefore(n, s), s.remove(), i.placeholderEl = null;else for (; i.el && i.el.firstChild;) i.el.removeChild(i.el.firstChild);\n\t }\n\n\t onSelectSlide(t, e, i) {\n\t i.state === V.Ready && this.playVideo();\n\t }\n\n\t onUnselectSlide(t, e, i) {\n\t var n, s;\n\n\t if (\"html5video\" === i.type) {\n\t try {\n\t null === (s = null === (n = i.el) || void 0 === n ? void 0 : n.querySelector(\"video\")) || void 0 === s || s.pause();\n\t } catch (t) {}\n\n\t return;\n\t }\n\n\t let o;\n\t \"vimeo\" === i.type ? o = {\n\t method: \"pause\",\n\t value: \"true\"\n\t } : \"youtube\" === i.type && (o = {\n\t event: \"command\",\n\t func: \"pauseVideo\"\n\t }), o && i.iframeEl && i.iframeEl.contentWindow && i.iframeEl.contentWindow.postMessage(JSON.stringify(o), \"*\"), i.poller && clearTimeout(i.poller);\n\t }\n\n\t onDone(t, e) {\n\t t.isCurrentSlide(e) && !t.isClosing() && this.playVideo();\n\t }\n\n\t onRefresh(t, e) {\n\t e.slides.forEach(t => {\n\t t.el && (this.setAspectRatio(t), this.resizeIframe(t));\n\t });\n\t }\n\n\t onMessage(t) {\n\t try {\n\t let e = JSON.parse(t.data);\n\n\t if (\"https://player.vimeo.com\" === t.origin) {\n\t if (\"ready\" === e.event) for (let e of Array.from(document.getElementsByClassName(\"fancybox__iframe\"))) e instanceof HTMLIFrameElement && e.contentWindow === t.source && (e.dataset.ready = \"true\");\n\t } else if (t.origin.match(/^https:\\/\\/(www.)?youtube(-nocookie)?.com$/) && \"onReady\" === e.event) {\n\t const t = document.getElementById(e.id);\n\t t && (t.dataset.ready = \"true\");\n\t }\n\t } catch (t) {}\n\t }\n\n\t loadAjaxContent(t) {\n\t const e = this.instance.optionFor(t, \"src\") || \"\";\n\t this.instance.showLoading(t);\n\t const i = this.instance,\n\t n = new XMLHttpRequest();\n\t i.showLoading(t), n.onreadystatechange = function () {\n\t n.readyState === XMLHttpRequest.DONE && i.state === Z.Ready && (i.hideLoading(t), 200 === n.status ? i.setContent(t, n.responseText) : i.setError(t, 404 === n.status ? \"{{AJAX_NOT_FOUND}}\" : \"{{AJAX_FORBIDDEN}}\"));\n\t };\n\t const s = t.ajax || null;\n\t n.open(s ? \"POST\" : \"GET\", e + \"\"), n.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\"), n.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\"), n.send(s), t.xhr = n;\n\t }\n\n\t setInlineContent(t) {\n\t let e = null;\n\t if (x(t.src)) e = t.src;else if (\"string\" == typeof t.src) {\n\t const i = t.src.split(\"#\", 2).pop();\n\t e = i ? document.getElementById(i) : null;\n\t }\n\n\t if (e) {\n\t if (\"clone\" === t.type || e.closest(\".fancybox__slide\")) {\n\t e = e.cloneNode(!0);\n\t const i = e.dataset.animationName;\n\t i && (e.classList.remove(i), delete e.dataset.animationName);\n\t let n = e.getAttribute(\"id\");\n\t n = n ? `${n}--clone` : `clone-${this.instance.id}-${t.index}`, e.setAttribute(\"id\", n);\n\t } else if (e.parentNode) {\n\t const i = document.createElement(\"div\");\n\t i.classList.add(\"fancybox-placeholder\"), e.parentNode.insertBefore(i, e), t.placeholderEl = i;\n\t }\n\n\t this.instance.setContent(t, e);\n\t } else this.instance.setError(t, \"{{ELEMENT_NOT_FOUND}}\");\n\t }\n\n\t setIframeContent(t) {\n\t const {\n\t src: e,\n\t el: i\n\t } = t;\n\t if (!e || \"string\" != typeof e || !i) return;\n\t const n = this.instance,\n\t s = document.createElement(\"iframe\");\n\t s.className = \"fancybox__iframe\", s.setAttribute(\"id\", `fancybox__iframe_${n.id}_${t.index}`), s.setAttribute(\"allow\", \"autoplay; fullscreen\"), s.setAttribute(\"scrolling\", \"auto\"), s.onerror = () => {\n\t n.setError(t, \"{{IFRAME_ERROR}}\");\n\t }, t.iframeEl = s;\n\t const o = this.optionFor(t, \"preload\");\n\t if (i.classList.add(\"is-loading\"), \"iframe\" !== t.type || !1 === o) return s.setAttribute(\"src\", t.src + \"\"), this.resizeIframe(t), void n.setContent(t, s);\n\t n.showLoading(t), s.onload = () => {\n\t if (!s.src.length) return;\n\t const e = \"true\" !== s.dataset.ready;\n\t s.dataset.ready = \"true\", this.resizeIframe(t), e ? n.revealContent(t) : n.hideLoading(t);\n\t }, s.setAttribute(\"src\", e), n.setContent(t, s, !1);\n\t }\n\n\t resizeIframe(t) {\n\t const e = t.iframeEl,\n\t i = null == e ? void 0 : e.parentElement;\n\t if (!e || !i) return;\n\t let n = t.autoSize,\n\t s = t.width || 0,\n\t o = t.height || 0;\n\t s && o && (n = !1);\n\t const a = i && i.style;\n\t if (!1 !== t.preload && !1 !== n && a) try {\n\t const t = window.getComputedStyle(i),\n\t n = parseFloat(t.paddingLeft) + parseFloat(t.paddingRight),\n\t r = parseFloat(t.paddingTop) + parseFloat(t.paddingBottom),\n\t l = e.contentWindow;\n\n\t if (l) {\n\t const t = l.document,\n\t e = t.getElementsByTagName(\"html\")[0],\n\t i = t.body;\n\t a.width = \"\", i.style.overflow = \"hidden\", s = s || e.scrollWidth + n, a.width = `${s}px`, i.style.overflow = \"\", a.flex = \"0 0 auto\", a.height = `${i.scrollHeight}px`, o = e.scrollHeight + r;\n\t }\n\t } catch (t) {}\n\n\t if (s || o) {\n\t const t = {\n\t flex: \"0 1 auto\",\n\t width: \"\",\n\t height: \"\"\n\t };\n\t s && (t.width = `${s}px`), o && (t.height = `${o}px`), Object.assign(a, t);\n\t }\n\t }\n\n\t playVideo() {\n\t const t = this.instance.getSlide();\n\t if (!t) return;\n\t const {\n\t el: e\n\t } = t;\n\t if (!e || !e.offsetParent) return;\n\t if (!this.optionFor(t, \"videoAutoplay\")) return;\n\t if (\"html5video\" === t.type) try {\n\t const t = e.querySelector(\"video\");\n\n\t if (t) {\n\t const e = t.play();\n\t void 0 !== e && e.then(() => {}).catch(e => {\n\t t.muted = !0, t.play();\n\t });\n\t }\n\t } catch (t) {}\n\t if (\"youtube\" !== t.type && \"vimeo\" !== t.type) return;\n\n\t const i = () => {\n\t if (t.iframeEl && t.iframeEl.contentWindow) {\n\t let e;\n\t if (\"true\" === t.iframeEl.dataset.ready) return e = \"youtube\" === t.type ? {\n\t event: \"command\",\n\t func: \"playVideo\"\n\t } : {\n\t method: \"play\",\n\t value: \"true\"\n\t }, e && t.iframeEl.contentWindow.postMessage(JSON.stringify(e), \"*\"), void (t.poller = void 0);\n\t \"youtube\" === t.type && (e = {\n\t event: \"listening\",\n\t id: t.iframeEl.getAttribute(\"id\")\n\t }, t.iframeEl.contentWindow.postMessage(JSON.stringify(e), \"*\"));\n\t }\n\n\t t.poller = setTimeout(i, 250);\n\t };\n\n\t i();\n\t }\n\n\t processType(t) {\n\t if (t.html) return t.type = \"html\", t.src = t.html, void (t.html = \"\");\n\t const e = this.instance.optionFor(t, \"src\", \"\");\n\t if (!e || \"string\" != typeof e) return;\n\t let i = t.type,\n\t n = null;\n\n\t if (n = e.match(/(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(?:watch\\?(?:.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(?:.*)|[\\w-]{11}|\\?listType=(?:.*)&list=(?:.*))(?:.*)/i)) {\n\t const s = this.optionFor(t, \"youtube\"),\n\t {\n\t nocookie: o\n\t } = s,\n\t a = function (t, e) {\n\t var i = {};\n\n\t for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e.indexOf(n) < 0 && (i[n] = t[n]);\n\n\t if (null != t && \"function\" == typeof Object.getOwnPropertySymbols) {\n\t var s = 0;\n\n\t for (n = Object.getOwnPropertySymbols(t); s < n.length; s++) e.indexOf(n[s]) < 0 && Object.prototype.propertyIsEnumerable.call(t, n[s]) && (i[n[s]] = t[n[s]]);\n\t }\n\n\t return i;\n\t }(s, [\"nocookie\"]),\n\t r = `www.youtube${o ? \"-nocookie\" : \"\"}.com`,\n\t l = Q(e, a),\n\t c = encodeURIComponent(n[2]);\n\n\t t.videoId = c, t.src = `https://${r}/embed/${c}?${l}`, t.thumbSrc = t.thumbSrc || `https://i.ytimg.com/vi/${c}/mqdefault.jpg`, i = \"youtube\";\n\t } else if (n = e.match(/^.+vimeo.com\\/(?:\\/)?([\\d]+)((\\/|\\?h=)([a-z0-9]+))?(.*)?/)) {\n\t const s = Q(e, this.optionFor(t, \"vimeo\")),\n\t o = encodeURIComponent(n[1]),\n\t a = n[4] || \"\";\n\t t.videoId = o, t.src = `https://player.vimeo.com/video/${o}?${a ? `h=${a}${s ? \"&\" : \"\"}` : \"\"}${s}`, i = \"vimeo\";\n\t }\n\n\t if (!i && t.triggerEl) {\n\t const e = t.triggerEl.dataset.type;\n\t et.includes(e) && (i = e);\n\t }\n\n\t i || \"string\" == typeof e && (\"#\" === e.charAt(0) ? i = \"inline\" : (n = e.match(/\\.(mp4|mov|ogv|webm)((\\?|#).*)?$/i)) ? (i = \"html5video\", t.videoFormat = t.videoFormat || \"video/\" + (\"ogv\" === n[1] ? \"ogg\" : n[1])) : e.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i) ? i = \"image\" : e.match(/\\.(pdf)((\\?|#).*)?$/i) ? i = \"pdf\" : (n = e.match(/(?:maps\\.)?google\\.([a-z]{2,3}(?:\\.[a-z]{2})?)\\/(?:(?:(?:maps\\/(?:place\\/(?:.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(?:\\?ll=))(.*)?/i)) ? (t.src = `https://maps.google.${n[1]}/?ll=${(n[2] ? n[2] + \"&z=\" + Math.floor(parseFloat(n[3])) + (n[4] ? n[4].replace(/^\\//, \"&\") : \"\") : n[4] + \"\").replace(/\\?/, \"&\")}&output=${n[4] && n[4].indexOf(\"layer=c\") > 0 ? \"svembed\" : \"embed\"}`, i = \"map\") : (n = e.match(/(?:maps\\.)?google\\.([a-z]{2,3}(?:\\.[a-z]{2})?)\\/(?:maps\\/search\\/)(.*)/i)) && (t.src = `https://maps.google.${n[1]}/maps?q=${n[2].replace(\"query=\", \"q=\").replace(\"api=1\", \"\")}&output=embed`, i = \"map\")), i = i || this.instance.option(\"defaultType\"), t.type = i, \"image\" === i && (t.thumbSrc = t.thumbSrc || t.src);\n\t }\n\n\t setContent(t) {\n\t const e = this.instance.optionFor(t, \"src\") || \"\";\n\n\t if (t && t.type && e) {\n\t switch (t.type) {\n\t case \"html\":\n\t this.instance.setContent(t, e);\n\t break;\n\n\t case \"html5video\":\n\t const i = this.option(\"videoTpl\");\n\t i && this.instance.setContent(t, i.replace(/\\{\\{src\\}\\}/gi, e + \"\").replace(/\\{\\{format\\}\\}/gi, this.optionFor(t, \"videoFormat\") || \"\").replace(/\\{\\{poster\\}\\}/gi, t.poster || t.thumbSrc || \"\"));\n\t break;\n\n\t case \"inline\":\n\t case \"clone\":\n\t this.setInlineContent(t);\n\t break;\n\n\t case \"ajax\":\n\t this.loadAjaxContent(t);\n\t break;\n\n\t case \"pdf\":\n\t case \"map\":\n\t case \"youtube\":\n\t case \"vimeo\":\n\t t.preload = !1;\n\n\t case \"iframe\":\n\t this.setIframeContent(t);\n\t }\n\n\t this.setAspectRatio(t);\n\t }\n\t }\n\n\t setAspectRatio(t) {\n\t var e;\n\t const i = t.contentEl,\n\t n = this.optionFor(t, \"videoRatio\"),\n\t s = null === (e = t.el) || void 0 === e ? void 0 : e.getBoundingClientRect();\n\t if (!(i && s && n && 1 !== n && t.type && [\"video\", \"youtube\", \"vimeo\", \"html5video\"].includes(t.type))) return;\n\t const o = s.width,\n\t a = s.height;\n\t i.style.aspectRatio = n + \"\", i.style.width = o / a > n ? \"auto\" : \"\", i.style.height = o / a > n ? \"\" : \"auto\";\n\t }\n\n\t attach() {\n\t this.instance.on(\"Carousel.initSlide\", this.onInitSlide), this.instance.on(\"Carousel.createSlide\", this.onCreateSlide), this.instance.on(\"Carousel.removeSlide\", this.onRemoveSlide), this.instance.on(\"Carousel.selectSlide\", this.onSelectSlide), this.instance.on(\"Carousel.unselectSlide\", this.onUnselectSlide), this.instance.on(\"Carousel.Panzoom.refresh\", this.onRefresh), this.instance.on(\"done\", this.onDone), window.addEventListener(\"message\", this.onMessage);\n\t }\n\n\t detach() {\n\t this.instance.off(\"Carousel.initSlide\", this.onInitSlide), this.instance.off(\"Carousel.createSlide\", this.onCreateSlide), this.instance.off(\"Carousel.removeSlide\", this.onRemoveSlide), this.instance.off(\"Carousel.selectSlide\", this.onSelectSlide), this.instance.off(\"Carousel.unselectSlide\", this.onUnselectSlide), this.instance.off(\"Carousel.Panzoom.refresh\", this.onRefresh), this.instance.off(\"done\", this.onDone), window.removeEventListener(\"message\", this.onMessage);\n\t }\n\n\t}\n\n\tObject.defineProperty(it, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: tt\n\t});\n\n\tclass nt extends I {\n\t constructor() {\n\t super(...arguments), Object.defineProperty(this, \"state\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: \"ready\"\n\t }), Object.defineProperty(this, \"inHover\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t }), Object.defineProperty(this, \"timer\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"progressBar\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t });\n\t }\n\n\t get isActive() {\n\t return \"ready\" !== this.state;\n\t }\n\n\t onReady(t) {\n\t this.option(\"autoStart\") && (t.isInfinite || t.page < t.pages.length - 1) && this.start();\n\t }\n\n\t onChange() {\n\t var t;\n\t (null === (t = this.instance.panzoom) || void 0 === t ? void 0 : t.isResting) || (this.removeProgressBar(), this.pause());\n\t }\n\n\t onSettle() {\n\t this.resume();\n\t }\n\n\t onVisibilityChange() {\n\t \"visible\" === document.visibilityState ? this.resume() : this.pause();\n\t }\n\n\t onMouseEnter() {\n\t this.inHover = !0, this.pause();\n\t }\n\n\t onMouseLeave() {\n\t var t;\n\t this.inHover = !1, (null === (t = this.instance.panzoom) || void 0 === t ? void 0 : t.isResting) && this.resume();\n\t }\n\n\t onTimerEnd() {\n\t \"play\" === this.state && (this.instance.isInfinite || this.instance.page !== this.instance.pages.length - 1 ? this.instance.slideNext() : this.instance.slideTo(0));\n\t }\n\n\t removeProgressBar() {\n\t this.progressBar && (this.progressBar.remove(), this.progressBar = null);\n\t }\n\n\t createProgressBar() {\n\t var t;\n\t if (!this.option(\"showProgress\")) return null;\n\t this.removeProgressBar();\n\t const e = this.instance,\n\t i = (null === (t = e.pages[e.page]) || void 0 === t ? void 0 : t.slides) || [];\n\t let n = this.option(\"progressParentEl\");\n\t if (n || (n = (1 === i.length ? i[0].el : null) || e.viewport), !n) return null;\n\t const s = document.createElement(\"div\");\n\t return S(s, \"f-progress\"), n.prepend(s), this.progressBar = s, s.offsetHeight, s;\n\t }\n\n\t set() {\n\t if (this.instance.pages.length < 2) return;\n\t if (this.progressBar) return;\n\t const t = this.option(\"timeout\");\n\t this.state = \"play\", S(this.instance.container, \"has-autoplay\");\n\t let e = this.createProgressBar();\n\t e && (e.style.transitionDuration = `${t}ms`, e.style.transform = \"scaleX(1)\"), this.timer = setTimeout(() => {\n\t this.timer = null, this.inHover || this.onTimerEnd();\n\t }, t), this.emit(\"set\");\n\t }\n\n\t clear() {\n\t this.timer && (clearTimeout(this.timer), this.timer = null), this.removeProgressBar();\n\t }\n\n\t start() {\n\t if (this.set(), this.option(\"pauseOnHover\")) {\n\t const t = this.instance.container;\n\t t.addEventListener(\"mouseenter\", this.onMouseEnter, !1), t.addEventListener(\"mouseleave\", this.onMouseLeave, !1);\n\t }\n\n\t document.addEventListener(\"visibilitychange\", this.onVisibilityChange, !1);\n\t }\n\n\t stop() {\n\t const t = this.instance.container;\n\t this.clear(), this.state = \"ready\", t.removeEventListener(\"mouseenter\", this.onMouseEnter, !1), t.removeEventListener(\"mouseleave\", this.onMouseLeave, !1), document.removeEventListener(\"visibilitychange\", this.onVisibilityChange, !1), E(t, \"has-autoplay\"), this.emit(\"stop\");\n\t }\n\n\t pause() {\n\t \"play\" === this.state && (this.state = \"pause\", this.clear(), this.emit(\"pause\"));\n\t }\n\n\t resume() {\n\t const t = this.instance;\n\t if (t.isInfinite || t.page !== t.pages.length - 1) {\n\t if (\"play\" !== this.state) {\n\t if (\"pause\" === this.state && !this.inHover) {\n\t const t = new Event(\"resume\", {\n\t bubbles: !0,\n\t cancelable: !0\n\t });\n\t this.emit(\"resume\", event), t.defaultPrevented || this.set();\n\t }\n\t } else this.set();\n\t } else this.stop();\n\t }\n\n\t toggle() {\n\t \"play\" === this.state || \"pause\" === this.state ? this.stop() : this.set();\n\t }\n\n\t attach() {\n\t this.instance.on(\"ready\", this.onReady), this.instance.on(\"Panzoom.startAnimation\", this.onChange), this.instance.on(\"Panzoom.endAnimation\", this.onSettle), this.instance.on(\"Panzoom.touchMove\", this.onChange);\n\t }\n\n\t detach() {\n\t this.instance.off(\"ready\", this.onReady), this.instance.off(\"Panzoom.startAnimation\", this.onChange), this.instance.off(\"Panzoom.endAnimation\", this.onSettle), this.instance.off(\"Panzoom.touchMove\", this.onChange), this.stop();\n\t }\n\n\t}\n\n\tObject.defineProperty(nt, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {\n\t autoStart: !0,\n\t pauseOnHover: !0,\n\t progressParentEl: null,\n\t showProgress: !0,\n\t timeout: 3e3\n\t }\n\t});\n\n\tclass st extends I {\n\t constructor() {\n\t super(...arguments), Object.defineProperty(this, \"ref\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t });\n\t }\n\n\t onPrepare(t) {\n\t const e = t.carousel;\n\t if (!e) return;\n\t const i = t.container;\n\t i && (e.options.Autoplay = u(this.option(\"Autoplay\") || {}, {\n\t pauseOnHover: !1,\n\t autoStart: !1,\n\t timeout: this.option(\"timeout\"),\n\t progressParentEl: () => i.querySelector(\".fancybox__toolbar [data-fancybox-toggle-slideshow]\") || i,\n\t on: {\n\t set: e => {\n\t var n;\n\t i.classList.add(\"has-slideshow\"), (null === (n = t.getSlide()) || void 0 === n ? void 0 : n.state) !== V.Ready && e.pause();\n\t },\n\t stop: () => {\n\t i.classList.remove(\"has-slideshow\"), t.isCompact || t.endIdle();\n\t },\n\t resume: (e, i) => {\n\t var n, s, o;\n\t !i || !i.cancelable || (null === (n = t.getSlide()) || void 0 === n ? void 0 : n.state) === V.Ready && (null === (o = null === (s = t.carousel) || void 0 === s ? void 0 : s.panzoom) || void 0 === o ? void 0 : o.isResting) || i.preventDefault();\n\t }\n\t }\n\t }), e.attachPlugins({\n\t Autoplay: nt\n\t }), this.ref = e.plugins.Autoplay);\n\t }\n\n\t onReady(t) {\n\t const e = t.carousel,\n\t i = this.ref;\n\t e && i && this.option(\"playOnStart\") && (e.isInfinite || e.page < e.pages.length - 1) && i.start();\n\t }\n\n\t onDone(t, e) {\n\t const i = this.ref;\n\t if (!i) return;\n\t const n = e.panzoom;\n\t n && n.on(\"startAnimation\", () => {\n\t t.isCurrentSlide(e) && i.stop();\n\t }), t.isCurrentSlide(e) && i.resume();\n\t }\n\n\t onKeydown(t, e) {\n\t var i;\n\t const n = this.ref;\n\t n && e === this.option(\"key\") && \"BUTTON\" !== (null === (i = document.activeElement) || void 0 === i ? void 0 : i.nodeName) && n.toggle();\n\t }\n\n\t attach() {\n\t this.instance.on(\"Carousel.init\", this.onPrepare), this.instance.on(\"Carousel.ready\", this.onReady), this.instance.on(\"done\", this.onDone), this.instance.on(\"keydown\", this.onKeydown);\n\t }\n\n\t detach() {\n\t this.instance.off(\"Carousel.init\", this.onPrepare), this.instance.off(\"Carousel.ready\", this.onReady), this.instance.off(\"done\", this.onDone), this.instance.off(\"keydown\", this.onKeydown);\n\t }\n\n\t}\n\n\tObject.defineProperty(st, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {\n\t key: \" \",\n\t playOnStart: !1,\n\t timeout: 3e3\n\t }\n\t});\n\tconst ot = {\n\t classes: {\n\t container: \"f-thumbs f-carousel__thumbs\",\n\t viewport: \"f-thumbs__viewport\",\n\t track: \"f-thumbs__track\",\n\t slide: \"f-thumbs__slide\",\n\t isResting: \"is-resting\",\n\t isSelected: \"is-selected\",\n\t isLoading: \"is-loading\",\n\t hasThumbs: \"has-thumbs\"\n\t },\n\t minCount: 2,\n\t parentEl: null,\n\t thumbTpl: '',\n\t type: \"modern\"\n\t};\n\tvar at;\n\t!function (t) {\n\t t[t.Init = 0] = \"Init\", t[t.Ready = 1] = \"Ready\", t[t.Hidden = 2] = \"Hidden\", t[t.Disabled = 3] = \"Disabled\";\n\t}(at || (at = {}));\n\tlet rt = class extends I {\n\t constructor() {\n\t super(...arguments), Object.defineProperty(this, \"type\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: \"modern\"\n\t }), Object.defineProperty(this, \"container\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"track\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"carousel\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"panzoom\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"thumbWidth\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"thumbClipWidth\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"thumbHeight\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"thumbGap\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"thumbExtraGap\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"shouldCenter\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !0\n\t }), Object.defineProperty(this, \"state\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: at.Init\n\t });\n\t }\n\n\t formatThumb(t, e) {\n\t return this.instance.localize(e, [[\"%i\", t.index], [\"%d\", t.index + 1], [\"%s\", t.thumbSrc || \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\"]]);\n\t }\n\n\t getSlides() {\n\t const t = [],\n\t e = this.option(\"thumbTpl\") || \"\";\n\t if (e) for (const i of this.instance.slides || []) {\n\t let n = \"\";\n\t i.type && (n = `for-${i.type}`, i.type && [\"video\", \"youtube\", \"vimeo\", \"html5video\"].includes(i.type) && (n += \" for-video\")), t.push({\n\t html: this.formatThumb(i, e),\n\t customClass: n\n\t });\n\t }\n\t return t;\n\t }\n\n\t onInitSlide(t, e) {\n\t const i = e.el;\n\t i && (e.thumbSrc = i.dataset.thumbSrc || e.thumbSrc || \"\", e.thumbClipWidth = parseFloat(i.dataset.thumbClipWidth || \"\") || e.thumbClipWidth || 0, e.thumbHeight = parseFloat(i.dataset.thumbHeight || \"\") || e.thumbHeight || 0);\n\t }\n\n\t onInitSlides() {\n\t this.state === at.Init && this.build();\n\t }\n\n\t onRefreshM() {\n\t this.refreshModern();\n\t }\n\n\t onChangeM() {\n\t \"modern\" === this.type && (this.shouldCenter = !0, this.centerModern());\n\t }\n\n\t onClickModern(t) {\n\t t.preventDefault(), t.stopPropagation();\n\n\t const e = this.instance,\n\t i = e.page,\n\t n = t => {\n\t if (t) {\n\t const e = t.closest(\"[data-carousel-index]\");\n\t if (e) return parseInt(e.dataset.carouselIndex || \"\", 10) || 0;\n\t }\n\n\t return -1;\n\t },\n\t s = (t, e) => {\n\t const i = document.elementFromPoint(t, e);\n\t return i ? n(i) : -1;\n\t };\n\n\t let o = n(t.target);\n\t o < 0 && (o = s(t.clientX + this.thumbGap, t.clientY), o === i && (o = i - 1)), o < 0 && (o = s(t.clientX - this.thumbGap, t.clientY), o === i && (o = i + 1)), o < 0 && (o = (e => {\n\t let n = s(t.clientX - e, t.clientY),\n\t a = s(t.clientX + e, t.clientY);\n\t return o < 0 && n === i && (o = i + 1), o < 0 && a === i && (o = i - 1), o;\n\t })(this.thumbExtraGap)), o === i ? this.centerModern() : o > -1 && o < e.pages.length && e.slideTo(o);\n\t }\n\n\t onTransformM() {\n\t if (\"modern\" !== this.type) return;\n\t const {\n\t instance: t,\n\t container: e,\n\t track: i\n\t } = this,\n\t n = t.panzoom;\n\t if (!(e && i && n && this.panzoom)) return;\n\t o(e, this.cn(\"isResting\"), n.state !== g.Init && n.isResting);\n\t const s = this.thumbGap,\n\t a = this.thumbExtraGap,\n\t r = this.thumbClipWidth;\n\t let l = 0,\n\t c = 0,\n\t h = 0;\n\n\t for (const e of t.slides) {\n\t let i = e.index,\n\t n = e.thumbSlideEl;\n\t if (!n) continue;\n\t o(n, this.cn(\"isSelected\"), i === t.page), c = 1 - Math.abs(t.getProgress(i)), n.style.setProperty(\"--progress\", c ? c + \"\" : \"\");\n\t const d = .5 * ((e.thumbWidth || 0) - r);\n\t l += s, l += d, c && (l -= c * (d + a)), n.style.setProperty(\"--shift\", l - s + \"\"), l += d, c && (l -= c * (d + a)), l -= s, 0 === i && (h = a * c);\n\t }\n\n\t i && (i.style.setProperty(\"--left\", h + \"\"), i.style.setProperty(\"--width\", l + h + s + a * c + \"\")), this.shouldCenter && this.centerModern();\n\t }\n\n\t buildClassic() {\n\t const {\n\t container: t,\n\t track: e\n\t } = this,\n\t i = this.getSlides();\n\t if (!t || !e || !i) return;\n\t const n = new this.instance.constructor(t, u({\n\t track: e,\n\t infinite: !1,\n\t center: !0,\n\t fill: !0,\n\t dragFree: !0,\n\t slidesPerPage: 1,\n\t transition: !1,\n\t Dots: !1,\n\t Navigation: !1,\n\t Sync: {},\n\t classes: {\n\t container: \"f-thumbs\",\n\t viewport: \"f-thumbs__viewport\",\n\t track: \"f-thumbs__track\",\n\t slide: \"f-thumbs__slide\"\n\t }\n\t }, this.option(\"Carousel\") || {}, {\n\t Sync: {\n\t target: this.instance\n\t },\n\t slides: i\n\t }));\n\t this.carousel = n, this.track = e, n.on(\"ready\", () => {\n\t this.emit(\"ready\");\n\t });\n\t }\n\n\t buildModern() {\n\t if (\"modern\" !== this.type) return;\n\t const {\n\t container: t,\n\t track: e,\n\t instance: i\n\t } = this,\n\t s = this.option(\"thumbTpl\") || \"\";\n\t if (!t || !e || !s) return;\n\t S(t, \"is-horizontal\"), this.updateModern();\n\n\t for (const t of i.slides || []) {\n\t const i = document.createElement(\"div\");\n\n\t if (S(i, this.cn(\"slide\")), t.type) {\n\t let e = `for-${t.type}`;\n\t [\"video\", \"youtube\", \"vimeo\", \"html5video\"].includes(t.type) && (e += \" for-video\"), S(i, e);\n\t }\n\n\t i.appendChild(n(this.formatThumb(t, s))), t.thumbSlideEl = i, e.appendChild(i), this.resizeModernSlide(t);\n\t }\n\n\t const o = new i.constructor.Panzoom(t, {\n\t content: e,\n\t lockAxis: \"x\",\n\t zoom: !1,\n\t panOnlyZoomed: !1,\n\t bounds: () => {\n\t let t = 0,\n\t e = 0,\n\t n = i.slides[0],\n\t s = i.slides[i.slides.length - 1],\n\t o = i.slides[i.page];\n\t return n && s && o && (e = -1 * this.getModernThumbPos(0), 0 !== i.page && (e += .5 * (n.thumbWidth || 0)), t = -1 * this.getModernThumbPos(i.slides.length - 1), i.page !== i.slides.length - 1 && (t += (s.thumbWidth || 0) - (o.thumbWidth || 0) - .5 * (s.thumbWidth || 0))), {\n\t x: {\n\t min: t,\n\t max: e\n\t },\n\t y: {\n\t min: 0,\n\t max: 0\n\t }\n\t };\n\t }\n\t });\n\t o.on(\"touchStart\", (t, e) => {\n\t this.shouldCenter = !1;\n\t }), o.on(\"click\", (t, e) => this.onClickModern(e)), o.on(\"ready\", () => {\n\t this.centerModern(), this.emit(\"ready\");\n\t }), o.on([\"afterTransform\", \"refresh\"], t => {\n\t this.lazyLoadModern();\n\t }), this.panzoom = o, this.refreshModern();\n\t }\n\n\t updateModern() {\n\t if (\"modern\" !== this.type) return;\n\t const {\n\t container: t\n\t } = this;\n\t t && (this.thumbGap = parseFloat(getComputedStyle(t).getPropertyValue(\"--f-thumb-gap\")) || 0, this.thumbExtraGap = parseFloat(getComputedStyle(t).getPropertyValue(\"--f-thumb-extra-gap\")) || 0, this.thumbWidth = parseFloat(getComputedStyle(t).getPropertyValue(\"--f-thumb-width\")) || 40, this.thumbClipWidth = parseFloat(getComputedStyle(t).getPropertyValue(\"--f-thumb-clip-width\")) || 40, this.thumbHeight = parseFloat(getComputedStyle(t).getPropertyValue(\"--f-thumb-height\")) || 40);\n\t }\n\n\t refreshModern() {\n\t var t;\n\n\t if (\"modern\" === this.type) {\n\t this.updateModern();\n\n\t for (const t of this.instance.slides || []) this.resizeModernSlide(t);\n\n\t this.onTransformM(), null === (t = this.panzoom) || void 0 === t || t.updateMetrics(!0), this.centerModern(0);\n\t }\n\t }\n\n\t centerModern(e) {\n\t const i = this.instance,\n\t {\n\t container: n,\n\t panzoom: s\n\t } = this;\n\t if (!n || !s || s.state === g.Init) return;\n\t const o = i.page;\n\t let a = this.getModernThumbPos(o),\n\t r = a;\n\n\t for (let t = i.page - 3; t < i.page + 3; t++) {\n\t if (t < 0 || t > i.pages.length - 1 || t === i.page) continue;\n\t const e = 1 - Math.abs(i.getProgress(t));\n\t e > 0 && e < 1 && (r += e * (this.getModernThumbPos(t) - a));\n\t }\n\n\t let l = 100;\n\t void 0 === e && (e = .2, i.inTransition.size > 0 && (e = .12), Math.abs(-1 * s.current.e - r) > s.containerRect.width && (e = .5, l = 0)), s.options.maxVelocity = l, s.applyChange({\n\t panX: t(-1 * r - s.target.e, 1e3),\n\t friction: null === i.prevPage ? 0 : e\n\t });\n\t }\n\n\t lazyLoadModern() {\n\t const {\n\t instance: t,\n\t panzoom: e\n\t } = this;\n\t if (!e) return;\n\t const i = -1 * e.current.e || 0;\n\t let s = this.getModernThumbPos(t.page);\n\t if (e.state !== g.Init || 0 === s) for (const s of t.slides || []) {\n\t const t = s.thumbSlideEl;\n\t if (!t) continue;\n\t const o = t.querySelector(\"img[data-lazy-src]\"),\n\t a = s.index,\n\t r = this.getModernThumbPos(a),\n\t l = i - .5 * e.containerRect.innerWidth,\n\t c = l + e.containerRect.innerWidth;\n\t if (!o || r < l || r > c) continue;\n\t let h = o.dataset.lazySrc;\n\t if (!h || !h.length) continue;\n\t if (delete o.dataset.lazySrc, o.src = h, o.complete) continue;\n\t S(t, this.cn(\"isLoading\"));\n\t const d = n(w);\n\t t.appendChild(d), o.addEventListener(\"load\", () => {\n\t t.offsetParent && (t.classList.remove(this.cn(\"isLoading\")), d.remove());\n\t }, !1);\n\t }\n\t }\n\n\t resizeModernSlide(t) {\n\t if (\"modern\" !== this.type) return;\n\t if (!t.thumbSlideEl) return;\n\t const e = t.thumbClipWidth && t.thumbHeight ? Math.round(this.thumbHeight * (t.thumbClipWidth / t.thumbHeight)) : this.thumbWidth;\n\t t.thumbWidth = e;\n\t }\n\n\t getModernThumbPos(e) {\n\t const i = this.instance.slides[e],\n\t n = this.panzoom;\n\t if (!n || !n.contentRect.fitWidth) return 0;\n\t let s = n.containerRect.innerWidth,\n\t o = n.contentRect.width;\n\t 2 === this.instance.slides.length && (e -= 1, o = 2 * this.thumbClipWidth);\n\t let a = e * (this.thumbClipWidth + this.thumbGap) + this.thumbExtraGap + .5 * (i.thumbWidth || 0);\n\t return a -= o > s ? .5 * s : .5 * o, t(a || 0, 1);\n\t }\n\n\t build() {\n\t const t = this.instance,\n\t e = t.container,\n\t i = this.option(\"minCount\") || 0;\n\n\t if (i) {\n\t let e = 0;\n\n\t for (const i of t.slides || []) i.thumbSrc && e++;\n\n\t if (e < i) return this.cleanup(), void (this.state = at.Disabled);\n\t }\n\n\t const n = this.option(\"type\");\n\t if ([\"modern\", \"classic\"].indexOf(n) < 0) return void (this.state = at.Disabled);\n\t this.type = n;\n\t const s = document.createElement(\"div\");\n\t S(s, this.cn(\"container\")), S(s, `is-${n}`);\n\t const o = this.option(\"parentEl\");\n\t o ? o.appendChild(s) : e.after(s), this.container = s, S(e, this.cn(\"hasThumbs\"));\n\t const a = document.createElement(\"div\");\n\t S(a, this.cn(\"track\")), s.appendChild(a), this.track = a, \"classic\" === n ? this.buildClassic() : this.buildModern(), this.state = at.Ready, s.addEventListener(\"click\", e => {\n\t setTimeout(() => {\n\t var e;\n\t null === (e = null == s ? void 0 : s.querySelector(`[data-carousel-index=\"${t.page}\"]`)) || void 0 === e || e.focus();\n\t }, 100);\n\t });\n\t }\n\n\t cleanup() {\n\t this.carousel && this.carousel.destroy(), this.carousel = null, this.panzoom && this.panzoom.destroy(), this.panzoom = null, this.container && this.container.remove(), this.container = null, this.track = null, this.state = at.Init, E(this.instance.container, this.cn(\"hasThumbs\"));\n\t }\n\n\t attach() {\n\t const {\n\t instance: t\n\t } = this;\n\t t.on(\"initSlide\", this.onInitSlide), t.state === L.Init ? t.on(\"initSlides\", this.onInitSlides) : this.onInitSlides(), t.on(\"Panzoom.afterTransform\", this.onTransformM), t.on(\"Panzoom.refresh\", this.onRefreshM), t.on(\"change\", this.onChangeM);\n\t }\n\n\t detach() {\n\t const {\n\t instance: t\n\t } = this;\n\t t.off(\"initSlide\", this.onInitSlide), t.off(\"initSlides\", this.onInitSlides), t.off(\"Panzoom.afterTransform\", this.onTransformM), t.off(\"Panzoom.refresh\", this.onRefreshM), t.off(\"change\", this.onChangeM), this.cleanup();\n\t }\n\n\t};\n\tObject.defineProperty(rt, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: ot\n\t});\n\tconst lt = Object.assign(Object.assign({}, ot), {\n\t key: \"t\",\n\t showOnStart: !0,\n\t parentEl: null\n\t});\n\n\tclass ct extends I {\n\t constructor() {\n\t super(...arguments), Object.defineProperty(this, \"ref\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"hidden\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t });\n\t }\n\n\t get isEnabled() {\n\t const t = this.ref;\n\t return t && t.state !== at.Disabled;\n\t }\n\n\t get isHidden() {\n\t return this.hidden;\n\t }\n\n\t onInit() {\n\t const t = this.instance,\n\t e = t.carousel;\n\t if (this.ref || !e) return;\n\t const i = this.option(\"parentEl\") || t.footer || t.container;\n\t i && (e.options.Thumbs = u({}, this.options, {\n\t parentEl: i,\n\t classes: {\n\t container: \"f-thumbs fancybox__thumbs\"\n\t },\n\t Carousel: {\n\t Sync: {\n\t friction: t.option(\"Carousel.friction\")\n\t },\n\t on: {\n\t click: (t, e) => {\n\t e.stopPropagation();\n\t }\n\t }\n\t },\n\t on: {\n\t ready: t => {\n\t const e = t.container;\n\t e && this.hidden && (this.refresh(), e.style.transition = \"none\", this.hide(), e.offsetHeight, queueMicrotask(() => {\n\t e.style.transition = \"\", this.show();\n\t }));\n\t }\n\t }\n\t }), e.attachPlugins({\n\t Thumbs: rt\n\t }), this.ref = e.plugins.Thumbs, this.option(\"showOnStart\") || (this.ref.state = at.Hidden, this.hidden = !0));\n\t }\n\n\t onResize() {\n\t var t;\n\t const e = null === (t = this.ref) || void 0 === t ? void 0 : t.container;\n\t e && (e.style.maxHeight = \"\");\n\t }\n\n\t onKeydown(t, e) {\n\t const i = this.option(\"key\");\n\t i && i === e && this.toggle();\n\t }\n\n\t toggle() {\n\t const t = this.ref;\n\t t && t.state !== at.Disabled && (t.state !== at.Hidden ? this.hidden ? this.show() : this.hide() : t.build());\n\t }\n\n\t show() {\n\t const t = this.ref,\n\t e = t && t.state !== at.Disabled && t.container;\n\t e && (this.refresh(), e.offsetHeight, e.removeAttribute(\"aria-hidden\"), e.classList.remove(\"is-hidden\"), this.hidden = !1);\n\t }\n\n\t hide() {\n\t const t = this.ref,\n\t e = t && t.container;\n\t e && (this.refresh(), e.offsetHeight, e.classList.add(\"is-hidden\"), e.setAttribute(\"aria-hidden\", \"true\")), this.hidden = !0;\n\t }\n\n\t refresh() {\n\t const t = this.ref;\n\t if (!t || t.state === at.Disabled) return;\n\t const e = t.container,\n\t i = (null == e ? void 0 : e.firstChild) || null;\n\t e && i && i.childNodes.length && (e.style.maxHeight = `${i.getBoundingClientRect().height}px`);\n\t }\n\n\t attach() {\n\t this.instance.state === Z.Init ? this.instance.on(\"Carousel.init\", this.onInit) : this.onInit(), this.instance.on(\"resize\", this.onResize), this.instance.on(\"keydown\", this.onKeydown);\n\t }\n\n\t detach() {\n\t var t;\n\t this.instance.off(\"Carousel.init\", this.onInit), this.instance.off(\"resize\", this.onResize), this.instance.off(\"keydown\", this.onKeydown), null === (t = this.instance.carousel) || void 0 === t || t.detachPlugins([\"Thumbs\"]), this.ref = null;\n\t }\n\n\t}\n\n\tObject.defineProperty(ct, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: lt\n\t});\n\tconst ht = {\n\t panLeft: {\n\t icon: '',\n\t change: {\n\t panX: -100\n\t }\n\t },\n\t panRight: {\n\t icon: '',\n\t change: {\n\t panX: 100\n\t }\n\t },\n\t panUp: {\n\t icon: '',\n\t change: {\n\t panY: -100\n\t }\n\t },\n\t panDown: {\n\t icon: '',\n\t change: {\n\t panY: 100\n\t }\n\t },\n\t zoomIn: {\n\t icon: '',\n\t action: \"zoomIn\"\n\t },\n\t zoomOut: {\n\t icon: '',\n\t action: \"zoomOut\"\n\t },\n\t toggle1to1: {\n\t icon: '',\n\t action: \"toggleZoom\"\n\t },\n\t toggleZoom: {\n\t icon: '',\n\t action: \"toggleZoom\"\n\t },\n\t iterateZoom: {\n\t icon: '',\n\t action: \"iterateZoom\"\n\t },\n\t rotateCCW: {\n\t icon: '',\n\t action: \"rotateCCW\"\n\t },\n\t rotateCW: {\n\t icon: '',\n\t action: \"rotateCW\"\n\t },\n\t flipX: {\n\t icon: '',\n\t action: \"flipX\"\n\t },\n\t flipY: {\n\t icon: '',\n\t action: \"flipY\"\n\t },\n\t fitX: {\n\t icon: '',\n\t action: \"fitX\"\n\t },\n\t fitY: {\n\t icon: '',\n\t action: \"fitY\"\n\t },\n\t reset: {\n\t icon: '',\n\t action: \"reset\"\n\t },\n\t toggleFS: {\n\t icon: '',\n\t action: \"toggleFS\"\n\t }\n\t};\n\tvar dt;\n\t!function (t) {\n\t t[t.Init = 0] = \"Init\", t[t.Ready = 1] = \"Ready\", t[t.Disabled = 2] = \"Disabled\";\n\t}(dt || (dt = {}));\n\tconst ut = {\n\t absolute: \"auto\",\n\t display: {\n\t left: [\"infobar\"],\n\t middle: [],\n\t right: [\"iterateZoom\", \"slideshow\", \"fullscreen\", \"thumbs\", \"close\"]\n\t },\n\t enabled: \"auto\",\n\t items: {\n\t infobar: {\n\t tpl: '
/
'\n\t },\n\t download: {\n\t tpl: ''\n\t },\n\t prev: {\n\t tpl: ''\n\t },\n\t next: {\n\t tpl: ''\n\t },\n\t slideshow: {\n\t tpl: ''\n\t },\n\t fullscreen: {\n\t tpl: ''\n\t },\n\t thumbs: {\n\t tpl: ''\n\t },\n\t close: {\n\t tpl: ''\n\t }\n\t },\n\t parentEl: null\n\t},\n\t pt = {\n\t tabindex: \"-1\",\n\t width: \"24\",\n\t height: \"24\",\n\t viewBox: \"0 0 24 24\",\n\t xmlns: \"http://www.w3.org/2000/svg\"\n\t};\n\n\tclass ft extends I {\n\t constructor() {\n\t super(...arguments), Object.defineProperty(this, \"state\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: dt.Init\n\t }), Object.defineProperty(this, \"container\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t });\n\t }\n\n\t onReady(t) {\n\t var e;\n\t if (!t.carousel) return;\n\t let i = this.option(\"display\"),\n\t n = this.option(\"absolute\"),\n\t s = this.option(\"enabled\");\n\n\t if (\"auto\" === s) {\n\t const t = this.instance.carousel;\n\t let e = 0;\n\t if (t) for (const i of t.slides) (i.panzoom || \"image\" === i.type) && e++;\n\t e || (s = !1);\n\t }\n\n\t s || (i = void 0);\n\t let o = 0;\n\t const a = {\n\t left: [],\n\t middle: [],\n\t right: []\n\t };\n\t if (i) for (const t of [\"left\", \"middle\", \"right\"]) for (const n of i[t]) {\n\t const i = this.createEl(n);\n\t i && (null === (e = a[t]) || void 0 === e || e.push(i), o++);\n\t }\n\t let r = null;\n\n\t if (o && (r = this.createContainer()), r) {\n\t for (const [t, e] of Object.entries(a)) {\n\t const i = document.createElement(\"div\");\n\t S(i, \"fancybox__toolbar__column is-\" + t);\n\n\t for (const t of e) i.appendChild(t);\n\n\t \"auto\" !== n || \"middle\" !== t || e.length || (n = !0), r.appendChild(i);\n\t }\n\n\t !0 === n && S(r, \"is-absolute\"), this.state = dt.Ready, this.onRefresh();\n\t } else this.state = dt.Disabled;\n\t }\n\n\t onClick(t) {\n\t var e, i;\n\t const n = this.instance,\n\t s = n.getSlide(),\n\t o = null == s ? void 0 : s.panzoom,\n\t a = t.target,\n\t r = a && x(a) ? a.dataset : null;\n\t if (!r) return;\n\t if (void 0 !== r.fancyboxToggleThumbs) return t.preventDefault(), t.stopPropagation(), void (null === (e = n.plugins.Thumbs) || void 0 === e || e.toggle());\n\t if (void 0 !== r.fancyboxToggleFullscreen) return t.preventDefault(), t.stopPropagation(), void this.instance.toggleFullscreen();\n\n\t if (void 0 !== r.fancyboxToggleSlideshow) {\n\t t.preventDefault(), t.stopPropagation();\n\t const e = null === (i = n.carousel) || void 0 === i ? void 0 : i.plugins.Autoplay;\n\t let s = e.isActive;\n\t return o && \"mousemove\" === o.panMode && !s && o.reset(), void (s ? e.stop() : e.start());\n\t }\n\n\t const l = r.panzoomAction,\n\t c = r.panzoomChange;\n\n\t if ((c || l) && (t.preventDefault(), t.stopPropagation()), c) {\n\t let t = {};\n\n\t try {\n\t t = JSON.parse(c);\n\t } catch (t) {}\n\n\t o && o.applyChange(t);\n\t } else l && o && o[l] && o[l]();\n\t }\n\n\t onChange() {\n\t this.onRefresh();\n\t }\n\n\t onRefresh() {\n\t if (this.instance.isClosing()) return;\n\t const t = this.container;\n\t if (!t) return;\n\t const e = this.instance.getSlide();\n\t if (!e || e.state !== V.Ready) return;\n\t const i = e && !e.error && e.panzoom;\n\n\t for (const e of t.querySelectorAll(\"[data-panzoom-action]\")) i ? (e.removeAttribute(\"disabled\"), e.removeAttribute(\"tabindex\")) : (e.setAttribute(\"disabled\", \"\"), e.setAttribute(\"tabindex\", \"-1\"));\n\n\t let n = i && i.canZoomIn(),\n\t s = i && i.canZoomOut();\n\n\t for (const e of t.querySelectorAll('[data-panzoom-action=\"zoomIn\"]')) n ? (e.removeAttribute(\"disabled\"), e.removeAttribute(\"tabindex\")) : (e.setAttribute(\"disabled\", \"\"), e.setAttribute(\"tabindex\", \"-1\"));\n\n\t for (const e of t.querySelectorAll('[data-panzoom-action=\"zoomOut\"]')) s ? (e.removeAttribute(\"disabled\"), e.removeAttribute(\"tabindex\")) : (e.setAttribute(\"disabled\", \"\"), e.setAttribute(\"tabindex\", \"-1\"));\n\n\t for (const e of t.querySelectorAll('[data-panzoom-action=\"toggleZoom\"],[data-panzoom-action=\"iterateZoom\"]')) {\n\t s || n ? (e.removeAttribute(\"disabled\"), e.removeAttribute(\"tabindex\")) : (e.setAttribute(\"disabled\", \"\"), e.setAttribute(\"tabindex\", \"-1\"));\n\t const t = e.querySelector(\"g\");\n\t t && (t.style.display = n ? \"\" : \"none\");\n\t }\n\t }\n\n\t onDone(t, e) {\n\t var i;\n\t null === (i = e.panzoom) || void 0 === i || i.on(\"afterTransform\", () => {\n\t this.instance.isCurrentSlide(e) && this.onRefresh();\n\t }), this.instance.isCurrentSlide(e) && this.onRefresh();\n\t }\n\n\t createContainer() {\n\t const t = this.instance.container;\n\t if (!t) return null;\n\t const e = this.option(\"parentEl\") || t,\n\t i = document.createElement(\"div\");\n\t return S(i, \"fancybox__toolbar\"), e.prepend(i), i.addEventListener(\"click\", this.onClick, {\n\t passive: !1,\n\t capture: !0\n\t }), t && S(t, \"has-toolbar\"), this.container = i, i;\n\t }\n\n\t createEl(t) {\n\t var e;\n\t const i = this.instance.carousel;\n\t if (!i) return null;\n\t if (\"toggleFS\" === t) return null;\n\t if (\"fullscreen\" === t && !this.instance.fsAPI) return null;\n\t let s = null;\n\t const o = i.slides.length || 0;\n\t let a = 0,\n\t r = 0;\n\n\t for (const t of i.slides) (t.panzoom || \"image\" === t.type) && a++, (\"image\" === t.type || t.downloadSrc) && r++;\n\n\t if (o < 2 && [\"infobar\", \"prev\", \"next\"].includes(t)) return s;\n\t if (void 0 !== ht[t] && !a) return null;\n\t if (\"download\" === t && !r) return null;\n\n\t if (\"thumbs\" === t) {\n\t const t = this.instance.plugins.Thumbs;\n\t if (!t || !t.isEnabled) return null;\n\t }\n\n\t if (\"slideshow\" === t) {\n\t if (!(null === (e = this.instance.carousel) || void 0 === e ? void 0 : e.plugins.Autoplay) || o < 2) return null;\n\t }\n\n\t if (void 0 !== ht[t]) {\n\t const e = ht[t];\n\t s = document.createElement(\"button\"), s.setAttribute(\"title\", this.instance.localize(`{{${t.toUpperCase()}}}`)), S(s, \"f-button\"), e.action && (s.dataset.panzoomAction = e.action), e.change && (s.dataset.panzoomChange = JSON.stringify(e.change)), s.appendChild(n(this.instance.localize(e.icon)));\n\t } else {\n\t const e = (this.option(\"items\") || [])[t];\n\t e && (s = n(this.instance.localize(e.tpl)), \"function\" == typeof e.click && s.addEventListener(\"click\", t => {\n\t t.preventDefault(), t.stopPropagation(), \"function\" == typeof e.click && e.click.call(this, this, t);\n\t }));\n\t }\n\n\t const l = null == s ? void 0 : s.querySelector(\"svg\");\n\t if (l) for (const [t, e] of Object.entries(pt)) l.getAttribute(t) || l.setAttribute(t, String(e));\n\t return s;\n\t }\n\n\t removeContainer() {\n\t const t = this.container;\n\t t && t.remove(), this.container = null, this.state = dt.Disabled;\n\t const e = this.instance.container;\n\t e && E(e, \"has-toolbar\");\n\t }\n\n\t attach() {\n\t const t = this,\n\t {\n\t instance: e\n\t } = t;\n\t e.on(\"Carousel.initSlides\", t.onReady), e.on(\"done\", t.onDone), e.on(\"reveal\", t.onChange), e.on(\"Carousel.change\", t.onChange), t.onReady(t.instance);\n\t }\n\n\t detach() {\n\t const t = this,\n\t {\n\t instance: e\n\t } = t;\n\t e.off(\"Carousel.initSlides\", t.onReady), e.off(\"done\", t.onDone), e.off(\"reveal\", t.onChange), e.off(\"Carousel.change\", t.onChange), t.removeContainer();\n\t }\n\n\t}\n\n\tObject.defineProperty(ft, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: ut\n\t});\n\n\tconst mt = {\n\t Hash: U,\n\t Html: it,\n\t Images: J,\n\t Slideshow: st,\n\t Thumbs: ct,\n\t Toolbar: ft\n\t},\n\t gt = function () {\n\t var t = window.getSelection();\n\t return t && \"Range\" === t.type;\n\t};\n\n\tlet bt = null,\n\t vt = null;\n\tconst yt = new Map();\n\tlet wt = 0;\n\n\tclass xt extends m {\n\t get isIdle() {\n\t return this.idle;\n\t }\n\n\t get isCompact() {\n\t return this.option(\"compact\");\n\t }\n\n\t constructor(t = [], e = {}, i = {}) {\n\t super(e), Object.defineProperty(this, \"userSlides\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: []\n\t }), Object.defineProperty(this, \"userPlugins\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {}\n\t }), Object.defineProperty(this, \"idle\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t }), Object.defineProperty(this, \"idleTimer\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"clickTimer\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"pwt\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"ignoreFocusChange\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t }), Object.defineProperty(this, \"state\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: Z.Init\n\t }), Object.defineProperty(this, \"id\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"container\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"footer\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"caption\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"carousel\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"lastFocus\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: null\n\t }), Object.defineProperty(this, \"prevMouseMoveEvent\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), Object.defineProperty(this, \"fsAPI\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: void 0\n\t }), this.fsAPI = (() => {\n\t let t,\n\t e = \"\",\n\t i = \"\",\n\t n = \"\";\n\t return document.fullscreenEnabled ? (e = \"requestFullscreen\", i = \"exitFullscreen\", n = \"fullscreenElement\") : document.webkitFullscreenEnabled && (e = \"webkitRequestFullscreen\", i = \"webkitExitFullscreen\", n = \"webkitFullscreenElement\"), e && (t = {\n\t request: function (t) {\n\t return \"webkitRequestFullscreen\" === e ? t[e](Element.ALLOW_KEYBOARD_INPUT) : t[e]();\n\t },\n\t exit: function () {\n\t return document[n] && document[i]();\n\t },\n\t isFullscreen: function () {\n\t return document[n];\n\t }\n\t }), t;\n\t })(), this.id = e.id || ++wt, yt.set(this.id, this), this.userSlides = t, this.userPlugins = i, queueMicrotask(() => {\n\t this.init();\n\t });\n\t }\n\n\t init() {\n\t if (this.state === Z.Destroy) return;\n\t this.state = Z.Init, this.attachPlugins(Object.assign(Object.assign({}, xt.Plugins), this.userPlugins)), this.emit(\"init\"), !0 === this.option(\"hideScrollbar\") && (() => {\n\t if (!W) return;\n\t const t = document.body;\n\t if (t.classList.contains(\"hide-scrollbar\")) return;\n\t const e = window.innerWidth - document.documentElement.getBoundingClientRect().width,\n\t i = t.currentStyle || window.getComputedStyle(t),\n\t n = parseFloat(i.marginRight);\n\t document.documentElement.style.setProperty(\"--fancybox-scrollbar-compensate\", `${e}px`), n && t.style.setProperty(\"--fancybox-body-margin\", `${n}px`), t.classList.add(\"hide-scrollbar\");\n\t })(), this.initLayout();\n\n\t const t = () => {\n\t this.initCarousel(this.userSlides), this.state = Z.Ready, this.attachEvents(), this.emit(\"ready\"), setTimeout(() => {\n\t this.container && this.container.setAttribute(\"aria-hidden\", \"false\");\n\t }, 16);\n\t };\n\n\t this.option(\"Fullscreen.autoStart\") && this.fsAPI && !this.fsAPI.isFullscreen() ? this.fsAPI.request(this.container).then(() => t()).catch(() => t()) : t();\n\t }\n\n\t initLayout() {\n\t var t, e;\n\t const i = this.option(\"parentEl\") || document.body,\n\t s = n(this.localize(this.option(\"tpl.main\") || \"\"));\n\t s && (s.setAttribute(\"id\", `fancybox-${this.id}`), s.setAttribute(\"aria-label\", this.localize(\"{{MODAL}}\")), s.classList.toggle(\"is-compact\", this.isCompact), S(s, this.option(\"mainClass\") || \"\"), this.container = s, this.footer = s.querySelector(\".fancybox__footer\"), i.appendChild(s), S(document.documentElement, \"with-fancybox\"), bt && vt || (bt = document.createElement(\"span\"), S(bt, \"fancybox-focus-guard\"), bt.setAttribute(\"tabindex\", \"0\"), bt.setAttribute(\"aria-hidden\", \"true\"), bt.setAttribute(\"aria-label\", \"Focus guard\"), vt = bt.cloneNode(), null === (t = s.parentElement) || void 0 === t || t.insertBefore(bt, s), null === (e = s.parentElement) || void 0 === e || e.append(vt)), this.option(\"animated\") && (S(s, \"is-animated\"), setTimeout(() => {\n\t this.isClosing() || E(s, \"is-animated\");\n\t }, 350)), this.emit(\"initLayout\"));\n\t }\n\n\t initCarousel(t) {\n\t const i = this.container;\n\t if (!i) return;\n\t const n = i.querySelector(\".fancybox__carousel\");\n\t if (!n) return;\n\t const s = this.carousel = new _(n, u({}, {\n\t slides: t,\n\t transition: \"fade\",\n\t Panzoom: {\n\t lockAxis: this.option(\"dragToClose\") ? \"xy\" : \"x\",\n\t infinite: !!this.option(\"dragToClose\") && \"y\"\n\t },\n\t Dots: !1,\n\t Navigation: {\n\t classes: {\n\t container: \"fancybox__nav\",\n\t button: \"f-button\",\n\t isNext: \"is-next\",\n\t isPrev: \"is-prev\"\n\t }\n\t },\n\t initialPage: this.option(\"startIndex\"),\n\t l10n: this.option(\"l10n\")\n\t }, this.option(\"Carousel\") || {}));\n\t s.on(\"*\", (t, e, ...i) => {\n\t this.emit(`Carousel.${e}`, t, ...i);\n\t }), s.on([\"ready\", \"change\"], () => {\n\t var t;\n\t const e = this.getSlide();\n\t e && (null === (t = e.panzoom) || void 0 === t || t.updateControls()), this.manageCaption(e);\n\t }), s.on(\"removeSlide\", (t, e) => {\n\t e.closeBtnEl && e.closeBtnEl.remove(), e.closeBtnEl = void 0, e.captionEl && e.captionEl.remove(), e.captionEl = void 0, e.spinnerEl && e.spinnerEl.remove(), e.spinnerEl = void 0, e.state = void 0;\n\t }), s.on(\"Panzoom.touchStart\", () => {\n\t this.isCompact || this.endIdle();\n\t }), s.on(\"settle\", () => {\n\t this.idleTimer || this.isCompact || !this.option(\"idle\") || this.setIdle(), this.option(\"autoFocus\") && this.checkFocus();\n\t }), this.option(\"dragToClose\") && (s.on(\"Panzoom.afterTransform\", (t, i) => {\n\t const n = this.getSlide();\n\t if (n && e(n.el)) return;\n\t const s = this.container;\n\n\t if (s) {\n\t const t = Math.abs(i.current.f),\n\t e = t < 1 ? \"\" : Math.max(.5, Math.min(1, 1 - t / i.contentRect.fitHeight * 1.5));\n\t s.style.setProperty(\"--fancybox-ts\", e ? \"0s\" : \"\"), s.style.setProperty(\"--fancybox-opacity\", e + \"\");\n\t }\n\t }), s.on(\"Panzoom.touchEnd\", (t, i, n) => {\n\t var s;\n\t const o = this.getSlide();\n\t if (o && e(o.el)) return;\n\t if (i.isMobile && document.activeElement && -1 !== [\"TEXTAREA\", \"INPUT\"].indexOf(null === (s = document.activeElement) || void 0 === s ? void 0 : s.nodeName)) return;\n\t const a = Math.abs(i.dragOffset.y);\n\t \"y\" === i.lockedAxis && (a >= 200 || a >= 50 && i.dragOffset.time < 300) && (n && n.cancelable && n.preventDefault(), this.close(n, \"f-throwOut\" + (i.current.f < 0 ? \"Up\" : \"Down\")));\n\t })), s.on([\"change\"], t => {\n\t var e;\n\t let i = null === (e = this.getSlide()) || void 0 === e ? void 0 : e.triggerEl;\n\n\t if (i) {\n\t const e = new CustomEvent(\"slideTo\", {\n\t bubbles: !0,\n\t cancelable: !0,\n\t detail: t.page\n\t });\n\t i.dispatchEvent(e);\n\t }\n\t }), s.on([\"refresh\", \"change\"], t => {\n\t const e = this.container;\n\t if (!e) return;\n\n\t for (const i of e.querySelectorAll(\"[data-fancybox-current-index]\")) i.innerHTML = t.page + 1;\n\n\t for (const i of e.querySelectorAll(\"[data-fancybox-count]\")) i.innerHTML = t.pages.length;\n\n\t if (!t.isInfinite) {\n\t for (const i of e.querySelectorAll(\"[data-fancybox-next]\")) t.page < t.pages.length - 1 ? (i.removeAttribute(\"disabled\"), i.removeAttribute(\"tabindex\")) : (i.setAttribute(\"disabled\", \"\"), i.setAttribute(\"tabindex\", \"-1\"));\n\n\t for (const i of e.querySelectorAll(\"[data-fancybox-prev]\")) t.page > 0 ? (i.removeAttribute(\"disabled\"), i.removeAttribute(\"tabindex\")) : (i.setAttribute(\"disabled\", \"\"), i.setAttribute(\"tabindex\", \"-1\"));\n\t }\n\n\t const i = this.getSlide();\n\t if (!i) return;\n\t let n = i.downloadSrc || \"\";\n\t n || \"image\" !== i.type || i.error || \"string\" != typeof i.src || (n = i.src);\n\n\t for (const t of e.querySelectorAll(\"[data-fancybox-download]\")) {\n\t const e = i.downloadFilename;\n\t n ? (t.removeAttribute(\"disabled\"), t.removeAttribute(\"tabindex\"), t.setAttribute(\"href\", n), t.setAttribute(\"download\", e || n), t.setAttribute(\"target\", \"_blank\")) : (t.setAttribute(\"disabled\", \"\"), t.setAttribute(\"tabindex\", \"-1\"), t.removeAttribute(\"href\"), t.removeAttribute(\"download\"));\n\t }\n\t }), this.emit(\"initCarousel\");\n\t }\n\n\t attachEvents() {\n\t const t = this.container;\n\t t && (t.addEventListener(\"click\", this.onClick, {\n\t passive: !1,\n\t capture: !1\n\t }), t.addEventListener(\"wheel\", this.onWheel, {\n\t passive: !1,\n\t capture: !1\n\t }), document.addEventListener(\"keydown\", this.onKeydown, {\n\t passive: !1,\n\t capture: !0\n\t }), document.addEventListener(\"visibilitychange\", this.onVisibilityChange, !1), document.addEventListener(\"mousemove\", this.onMousemove), this.option(\"trapFocus\") && document.addEventListener(\"focus\", this.onFocus, !0), window.addEventListener(\"resize\", this.onResize));\n\t }\n\n\t detachEvents() {\n\t const t = this.container;\n\t t && (document.removeEventListener(\"keydown\", this.onKeydown, {\n\t passive: !1,\n\t capture: !0\n\t }), t.removeEventListener(\"wheel\", this.onWheel, {\n\t passive: !1,\n\t capture: !1\n\t }), t.removeEventListener(\"click\", this.onClick, {\n\t passive: !1,\n\t capture: !1\n\t }), document.removeEventListener(\"mousemove\", this.onMousemove), window.removeEventListener(\"resize\", this.onResize), document.removeEventListener(\"visibilitychange\", this.onVisibilityChange, !1), document.removeEventListener(\"focus\", this.onFocus, !0));\n\t }\n\n\t onClick(t) {\n\t var e, i;\n\t const {\n\t container: n,\n\t isCompact: s\n\t } = this;\n\t if (!n || this.isClosing()) return;\n\t !s && this.option(\"idle\") && this.resetIdle();\n\t const o = document.activeElement;\n\t if (gt() && o && n.contains(o)) return;\n\t const a = t.composedPath()[0];\n\t if (a === (null === (e = this.carousel) || void 0 === e ? void 0 : e.container)) return;\n\t if (a.closest(\".f-spinner\") || a.closest(\"[data-fancybox-close]\")) return t.preventDefault(), void this.close(t);\n\t if (a.closest(\"[data-fancybox-prev]\")) return t.preventDefault(), void this.prev();\n\t if (a.closest(\"[data-fancybox-next]\")) return t.preventDefault(), void this.next();\n\t if (s && \"image\" === (null === (i = this.getSlide()) || void 0 === i ? void 0 : i.type)) return void (this.clickTimer ? (clearTimeout(this.clickTimer), this.clickTimer = null) : this.clickTimer = setTimeout(() => {\n\t this.toggleIdle(), this.clickTimer = null;\n\t }, 350));\n\t if (this.emit(\"click\", t), t.defaultPrevented) return;\n\t let r = !1;\n\n\t if (a.closest(\".fancybox__content\")) {\n\t if (o) {\n\t if (o.closest(\"[contenteditable]\")) return;\n\t a.matches(X) || o.blur();\n\t }\n\n\t if (gt()) return;\n\t r = this.option(\"contentClick\");\n\t } else a.closest(\".fancybox__carousel\") && !a.matches(X) && (r = this.option(\"backdropClick\"));\n\n\t \"close\" === r ? (t.preventDefault(), this.close(t)) : \"next\" === r ? (t.preventDefault(), this.next()) : \"prev\" === r && (t.preventDefault(), this.prev());\n\t }\n\n\t onWheel(t) {\n\t const e = this.option(\"wheel\", t),\n\t i = \"slide\" === e,\n\t n = [-t.deltaX || 0, -t.deltaY || 0, -t.detail || 0].reduce(function (t, e) {\n\t return Math.abs(e) > Math.abs(t) ? e : t;\n\t }),\n\t s = Math.max(-1, Math.min(1, n)),\n\t o = Date.now();\n\t this.pwt && o - this.pwt < 300 ? i && t.preventDefault() : (this.pwt = o, this.emit(\"wheel\", t), t.defaultPrevented || (\"close\" === e ? (t.preventDefault(), this.close(t)) : \"slide\" === e && (t.preventDefault(), this[s > 0 ? \"prev\" : \"next\"]())));\n\t }\n\n\t onKeydown(t) {\n\t if (!this.isTopmost()) return;\n\t this.isCompact || !this.option(\"idle\") || this.isClosing() || this.resetIdle();\n\t const e = t.key,\n\t i = this.option(\"keyboard\");\n\t if (!i || t.ctrlKey || t.altKey || t.shiftKey) return;\n\t const n = t.composedPath()[0],\n\t s = document.activeElement && document.activeElement.classList,\n\t o = s && s.contains(\"f-button\") || n.dataset.carouselPage || n.dataset.carouselIndex;\n\n\t if (\"Escape\" !== e && !o && x(n)) {\n\t if (n.isContentEditable || -1 !== [\"TEXTAREA\", \"OPTION\", \"INPUT\", \"SELECT\", \"VIDEO\"].indexOf(n.nodeName)) return;\n\t }\n\n\t this.emit(\"keydown\", e, t);\n\t const a = i[e];\n\t \"function\" == typeof this[a] && (t.preventDefault(), this[a]());\n\t }\n\n\t onResize() {\n\t const t = this.container;\n\t if (!t) return;\n\t const e = this.isCompact;\n\t t.classList.toggle(\"is-compact\", e), this.manageCaption(this.getSlide()), this.isCompact ? this.clearIdle() : this.endIdle(), this.emit(\"resize\");\n\t }\n\n\t onFocus(t) {\n\t this.isTopmost() && this.checkFocus(t);\n\t }\n\n\t onMousemove(t) {\n\t this.prevMouseMoveEvent = t, !this.isCompact && this.option(\"idle\") && this.resetIdle();\n\t }\n\n\t onVisibilityChange() {\n\t \"visible\" === document.visibilityState ? this.checkFocus() : this.endIdle();\n\t }\n\n\t manageCloseBtn(t) {\n\t const e = this.optionFor(t, \"closeButton\") || !1;\n\n\t if (\"auto\" === e) {\n\t const t = this.plugins.Toolbar;\n\t if (t && t.state === dt.Ready) return;\n\t }\n\n\t if (!e) return;\n\t if (!t.contentEl || t.closeBtnEl) return;\n\t const i = this.option(\"tpl.closeButton\");\n\n\t if (i) {\n\t const e = n(this.localize(i));\n\t t.closeBtnEl = t.contentEl.appendChild(e), t.el && S(t.el, \"has-close-btn\");\n\t }\n\t }\n\n\t manageCaption(t) {\n\t var e, i;\n\t const n = \"fancybox__caption\",\n\t s = \"has-caption\",\n\t o = this.container;\n\t if (!o) return;\n\t const a = this.isCompact || this.option(\"commonCaption\"),\n\t r = !a;\n\t if (this.caption && this.stop(this.caption), r && this.caption && (this.caption.remove(), this.caption = null), a && !this.caption) for (const t of (null === (e = this.carousel) || void 0 === e ? void 0 : e.slides) || []) t.captionEl && (t.captionEl.remove(), t.captionEl = void 0, E(t.el, s), null === (i = t.el) || void 0 === i || i.removeAttribute(\"aria-labelledby\"));\n\t if (t || (t = this.getSlide()), !t || a && !this.isCurrentSlide(t)) return;\n\t const l = t.el;\n\t let c = this.optionFor(t, \"caption\", \"\");\n\t if (\"string\" != typeof c || !c.length) return void (a && this.caption && this.animate(this.caption, \"f-fadeOut\", () => {\n\t var t;\n\t null === (t = this.caption) || void 0 === t || t.remove(), this.caption = null;\n\t }));\n\t let h = null;\n\n\t if (r) {\n\t if (h = t.captionEl || null, l && !h) {\n\t const e = `fancybox__caption_${this.id}_${t.index}`;\n\t h = document.createElement(\"div\"), S(h, n), h.setAttribute(\"id\", e), t.captionEl = l.appendChild(h), S(l, s), l.setAttribute(\"aria-labelledby\", e);\n\t }\n\t } else {\n\t if (h = this.caption, h || (h = o.querySelector(\".\" + n)), !h) {\n\t h = document.createElement(\"div\"), h.dataset.fancyboxCaption = \"\", S(h, n), h.innerHTML = c;\n\t (this.footer || o).prepend(h);\n\t }\n\n\t S(o, s), this.caption = h;\n\t }\n\n\t h && (h.innerHTML = c);\n\t }\n\n\t checkFocus(t) {\n\t var e;\n\t const i = document.activeElement || null;\n\t i && (null === (e = this.container) || void 0 === e ? void 0 : e.contains(i)) || this.focus(t);\n\t }\n\n\t focus(t) {\n\t var e;\n\t if (this.ignoreFocusChange) return;\n\t const i = document.activeElement || null,\n\t n = (null == t ? void 0 : t.target) || null,\n\t s = this.container,\n\t o = this.getSlide();\n\t if (!s || !(null === (e = this.carousel) || void 0 === e ? void 0 : e.viewport)) return;\n\t if (!t && i && s.contains(i)) return;\n\t const a = o && o.state === V.Ready ? o.el : null;\n\t if (!a || a.contains(i) || s === i) return;\n\t t && t.cancelable && t.preventDefault(), this.ignoreFocusChange = !0;\n\t const r = Array.from(s.querySelectorAll(X));\n\t let l = [],\n\t c = null;\n\n\t for (let t of r) {\n\t const e = !t.offsetParent || t.closest('[aria-hidden=\"true\"]'),\n\t i = a && a.contains(t),\n\t n = !this.carousel.viewport.contains(t);\n\t t === s || (i || n) && !e ? (l.push(t), void 0 !== t.dataset.origTabindex && (t.tabIndex = parseFloat(t.dataset.origTabindex)), t.removeAttribute(\"data-orig-tabindex\"), !t.hasAttribute(\"autoFocus\") && c || (c = t)) : (t.dataset.origTabindex = void 0 === t.dataset.origTabindex ? t.getAttribute(\"tabindex\") || void 0 : t.dataset.origTabindex, t.tabIndex = -1);\n\t }\n\n\t let h = null;\n\t t ? (!n || l.indexOf(n) < 0) && (h = c || s, l.length && (i === vt ? h = l[0] : this.lastFocus !== s && i !== bt || (h = l[l.length - 1]))) : h = o && \"image\" === o.type ? s : c || s, h && Y(h), this.lastFocus = document.activeElement, this.ignoreFocusChange = !1;\n\t }\n\n\t next() {\n\t const t = this.carousel;\n\t t && t.pages.length > 1 && t.slideNext();\n\t }\n\n\t prev() {\n\t const t = this.carousel;\n\t t && t.pages.length > 1 && t.slidePrev();\n\t }\n\n\t jumpTo(...t) {\n\t this.carousel && this.carousel.slideTo(...t);\n\t }\n\n\t isTopmost() {\n\t var t;\n\t return (null === (t = xt.getInstance()) || void 0 === t ? void 0 : t.id) == this.id;\n\t }\n\n\t animate(t = null, e = \"\", i) {\n\t if (!t || !e) return void (i && i());\n\t this.stop(t);\n\n\t const n = s => {\n\t s.target === t && t.dataset.animationName && (t.removeEventListener(\"animationend\", n), delete t.dataset.animationName, i && i(), E(t, e));\n\t };\n\n\t t.dataset.animationName = e, t.addEventListener(\"animationend\", n), S(t, e);\n\t }\n\n\t stop(t) {\n\t t && t.dispatchEvent(new CustomEvent(\"animationend\", {\n\t bubbles: !1,\n\t cancelable: !0,\n\t currentTarget: t\n\t }));\n\t }\n\n\t setContent(t, e = \"\", i = !0) {\n\t if (this.isClosing()) return;\n\t const s = t.el;\n\t if (!s) return;\n\t let o = null;\n\n\t if (x(e) ? o = e : (o = n(e + \"\"), x(o) || (o = document.createElement(\"div\"), o.innerHTML = e + \"\")), [\"img\", \"picture\", \"iframe\", \"video\", \"audio\"].includes(o.nodeName.toLowerCase())) {\n\t const t = document.createElement(\"div\");\n\t t.appendChild(o), o = t;\n\t }\n\n\t x(o) && t.filter && !t.error && (o = o.querySelector(t.filter)), o && x(o) ? (S(o, \"fancybox__content\"), t.id && o.setAttribute(\"id\", t.id), \"none\" !== o.style.display && \"none\" !== getComputedStyle(o).getPropertyValue(\"display\") || (o.style.display = t.display || this.option(\"defaultDisplay\") || \"flex\"), s.classList.add(`has-${t.error ? \"error\" : t.type || \"unknown\"}`), s.prepend(o), t.contentEl = o, i && this.revealContent(t), this.manageCloseBtn(t), this.manageCaption(t)) : this.setError(t, \"{{ELEMENT_NOT_FOUND}}\");\n\t }\n\n\t revealContent(t, e) {\n\t const i = t.el,\n\t n = t.contentEl;\n\t i && n && (this.emit(\"reveal\", t), this.hideLoading(t), t.state = V.Opening, (e = this.isOpeningSlide(t) ? void 0 === e ? this.optionFor(t, \"showClass\") : e : \"f-fadeIn\") ? this.animate(n, e, () => {\n\t this.done(t);\n\t }) : this.done(t));\n\t }\n\n\t done(t) {\n\t this.isClosing() || (t.state = V.Ready, this.emit(\"done\", t), S(t.el, \"is-done\"), this.isCurrentSlide(t) && this.option(\"autoFocus\") && queueMicrotask(() => {\n\t this.option(\"autoFocus\") && (this.option(\"autoFocus\") ? this.focus() : this.checkFocus());\n\t }), this.isOpeningSlide(t) && !this.isCompact && this.option(\"idle\") && this.setIdle());\n\t }\n\n\t isCurrentSlide(t) {\n\t const e = this.getSlide();\n\t return !(!t || !e) && e.index === t.index;\n\t }\n\n\t isOpeningSlide(t) {\n\t var e, i;\n\t return null === (null === (e = this.carousel) || void 0 === e ? void 0 : e.prevPage) && t.index === (null === (i = this.getSlide()) || void 0 === i ? void 0 : i.index);\n\t }\n\n\t showLoading(t) {\n\t t.state = V.Loading;\n\t const e = t.el;\n\t if (!e) return;\n\t S(e, \"is-loading\"), this.emit(\"loading\", t), t.spinnerEl || setTimeout(() => {\n\t if (!this.isClosing() && !t.spinnerEl && t.state === V.Loading) {\n\t let i = n(w);\n\t t.spinnerEl = i, e.prepend(i), this.animate(i, \"f-fadeIn\");\n\t }\n\t }, 250);\n\t }\n\n\t hideLoading(t) {\n\t const e = t.el;\n\t if (!e) return;\n\t const i = t.spinnerEl;\n\t this.isClosing() ? null == i || i.remove() : (E(e, \"is-loading\"), i && this.animate(i, \"f-fadeOut\", () => {\n\t i.remove();\n\t }), t.state === V.Loading && (this.emit(\"loaded\", t), t.state = V.Ready));\n\t }\n\n\t setError(t, e) {\n\t if (this.isClosing()) return;\n\t this.emit(\"error\"), t.error = e, this.hideLoading(t), this.clearContent(t);\n\t const i = document.createElement(\"div\");\n\t i.classList.add(\"fancybox-error\"), i.innerHTML = this.localize(e || \"

{{ERROR}}

\"), this.setContent(t, i);\n\t }\n\n\t clearContent(t) {\n\t var e;\n\t null === (e = this.carousel) || void 0 === e || e.emit(\"removeSlide\", t), t.contentEl && (t.contentEl.remove(), t.contentEl = void 0), t.closeBtnEl && (t.closeBtnEl.remove(), t.closeBtnEl = void 0);\n\t const i = t.el;\n\t i && (E(i, \"is-loading\"), E(i, \"has-error\"), E(i, \"has-unknown\"), E(i, `has-${t.type || \"unknown\"}`));\n\t }\n\n\t getSlide() {\n\t var t;\n\t const e = this.carousel;\n\t return (null === (t = null == e ? void 0 : e.pages[null == e ? void 0 : e.page]) || void 0 === t ? void 0 : t.slides[0]) || void 0;\n\t }\n\n\t close(t, e) {\n\t if (this.isClosing()) return;\n\t const i = new Event(\"shouldClose\", {\n\t bubbles: !0,\n\t cancelable: !0\n\t });\n\t if (this.emit(\"shouldClose\", i, t), i.defaultPrevented) return;\n\t t && t.cancelable && (t.preventDefault(), t.stopPropagation());\n\n\t const n = this.fsAPI,\n\t s = () => {\n\t this.proceedClose(t, e);\n\t };\n\n\t n && n.isFullscreen() ? Promise.resolve(n.exit()).then(() => s()) : s();\n\t }\n\n\t clearIdle() {\n\t this.idleTimer && clearTimeout(this.idleTimer), this.idleTimer = null;\n\t }\n\n\t setIdle(t = !1) {\n\t const e = () => {\n\t this.clearIdle(), this.idle = !0, S(this.container, \"is-idle\"), this.emit(\"setIdle\");\n\t };\n\n\t if (this.clearIdle(), !this.isClosing()) if (t) e();else {\n\t const t = this.option(\"idle\");\n\t t && (this.idleTimer = setTimeout(e, t));\n\t }\n\t }\n\n\t endIdle() {\n\t this.clearIdle(), this.idle && !this.isClosing() && (this.idle = !1, E(this.container, \"is-idle\"), this.emit(\"endIdle\"));\n\t }\n\n\t resetIdle() {\n\t this.endIdle(), this.setIdle();\n\t }\n\n\t toggleIdle() {\n\t this.idle ? this.endIdle() : this.setIdle(!0);\n\t }\n\n\t toggleFullscreen() {\n\t const t = this.fsAPI;\n\t t && (t.isFullscreen() ? t.exit() : this.container && t.request(this.container));\n\t }\n\n\t isClosing() {\n\t return [Z.Closing, Z.CustomClosing, Z.Destroy].includes(this.state);\n\t }\n\n\t proceedClose(t, e) {\n\t var i;\n\t this.state = Z.Closing, this.clearIdle(), this.detachEvents();\n\t const n = this.container,\n\t s = this.carousel,\n\t o = this.getSlide(),\n\t a = o && this.option(\"placeFocusBack\") ? o.triggerEl || this.option(\"trigger\") : null;\n\n\t if (a && (N(a) ? Y(a) : a.focus()), n && (S(n, \"is-closing\"), n.setAttribute(\"aria-hidden\", \"true\"), this.option(\"animated\") && S(n, \"is-animated\"), n.style.pointerEvents = \"none\"), s) {\n\t s.clearTransitions(), null === (i = s.panzoom) || void 0 === i || i.destroy();\n\n\t for (const t of s.slides) {\n\t t.state = V.Closing, this.hideLoading(t);\n\t const e = t.contentEl;\n\t e && this.stop(e);\n\t const i = null == t ? void 0 : t.panzoom;\n\t i && (i.stop(), i.detachEvents(), i.detachObserver()), this.isCurrentSlide(t) || s.emit(\"removeSlide\", t);\n\t }\n\t }\n\n\t this.emit(\"close\", t), this.state !== Z.CustomClosing ? (void 0 === e && o && (e = this.optionFor(o, \"hideClass\")), e && o ? (this.animate(o.contentEl, e, () => {\n\t s && s.emit(\"removeSlide\", o);\n\t }), setTimeout(() => {\n\t this.destroy();\n\t }, 500)) : this.destroy()) : setTimeout(() => {\n\t this.destroy();\n\t }, 500);\n\t }\n\n\t destroy() {\n\t var t;\n\t if (this.state === Z.Destroy) return;\n\t this.state = Z.Destroy, null === (t = this.carousel) || void 0 === t || t.destroy();\n\t const e = this.container;\n\t e && e.remove(), yt.delete(this.id);\n\t const i = xt.getInstance();\n\t i ? i.focus() : (bt && (bt.remove(), bt = null), vt && (vt.remove(), vt = null), E(document.documentElement, \"with-fancybox\"), (() => {\n\t if (!W) return;\n\t const t = document,\n\t e = t.body;\n\t e.classList.remove(\"hide-scrollbar\"), e.style.setProperty(\"--fancybox-body-margin\", \"\"), t.documentElement.style.setProperty(\"--fancybox-scrollbar-compensate\", \"\");\n\t })(), this.emit(\"destroy\"));\n\t }\n\n\t static bind(t, e, i) {\n\t if (!W) return;\n\t let n,\n\t s = \"\",\n\t o = {};\n\t if (void 0 === t ? n = document.body : \"string\" == typeof t ? (n = document.body, s = t, \"object\" == typeof e && (o = e || {})) : (n = t, \"string\" == typeof e && (s = e), \"object\" == typeof i && (o = i || {})), !n || !x(n)) return;\n\t s = s || \"[data-fancybox]\";\n\t const a = xt.openers.get(n) || new Map();\n\t a.set(s, o), xt.openers.set(n, a), 1 === a.size && n.addEventListener(\"click\", xt.fromEvent);\n\t }\n\n\t static unbind(t, e) {\n\t let i,\n\t n = \"\";\n\t if (\"string\" == typeof t ? (i = document.body, n = t) : (i = t, \"string\" == typeof e && (n = e)), !i) return;\n\t const s = xt.openers.get(i);\n\t s && n && s.delete(n), n && s || (xt.openers.delete(i), i.removeEventListener(\"click\", xt.fromEvent));\n\t }\n\n\t static destroy() {\n\t let t;\n\n\t for (; t = xt.getInstance();) t.destroy();\n\n\t for (const t of xt.openers.keys()) t.removeEventListener(\"click\", xt.fromEvent);\n\n\t xt.openers = new Map();\n\t }\n\n\t static fromEvent(t) {\n\t if (t.defaultPrevented) return;\n\t if (t.button && 0 !== t.button) return;\n\t if (t.ctrlKey || t.metaKey || t.shiftKey) return;\n\t let e = t.composedPath()[0];\n\t const i = e.closest(\"[data-fancybox-trigger]\");\n\n\t if (i) {\n\t const t = i.dataset.fancyboxTrigger || \"\",\n\t n = document.querySelectorAll(`[data-fancybox=\"${t}\"]`),\n\t s = parseInt(i.dataset.fancyboxIndex || \"\", 10) || 0;\n\t e = n[s] || e;\n\t }\n\n\t if (!(e && e instanceof Element)) return;\n\t let n, s, o, a;\n\t if ([...xt.openers].reverse().find(([t, i]) => !(!t.contains(e) || ![...i].reverse().find(([i, r]) => {\n\t let l = e.closest(i);\n\t return !!l && (n = t, s = i, o = l, a = r, !0);\n\t }))), !n || !s || !o) return;\n\t a = a || {}, t.preventDefault(), e = o;\n\t let r = [],\n\t l = u({}, q, a);\n\t l.event = t, l.trigger = e, l.delegate = i;\n\t const c = l.groupAll,\n\t h = l.groupAttr,\n\t d = h && e ? e.getAttribute(`${h}`) : \"\";\n\t if ((!e || d || c) && (r = [].slice.call(n.querySelectorAll(s))), e && !c && (r = d ? r.filter(t => t.getAttribute(`${h}`) === d) : [e]), !r.length) return;\n\t const p = xt.getInstance();\n\t return p && p.options.trigger && r.indexOf(p.options.trigger) > -1 ? void 0 : (e && (l.startIndex = r.indexOf(e)), xt.fromNodes(r, l));\n\t }\n\n\t static fromSelector(t, e) {\n\t let i = null,\n\t n = \"\";\n\t if (\"string\" == typeof t ? (i = document.body, n = t) : t instanceof HTMLElement && \"string\" == typeof e && (i = t, n = e), !i || !n) return !1;\n\t const s = xt.openers.get(i);\n\t if (!s) return !1;\n\t const o = s.get(n);\n\t return !!o && xt.fromNodes(Array.from(i.querySelectorAll(n)), o);\n\t }\n\n\t static fromNodes(t, e) {\n\t e = u({}, q, e);\n\t const i = [];\n\n\t for (const n of t) {\n\t const t = n.dataset || {},\n\t s = t.src || n.getAttribute(\"href\") || n.getAttribute(\"currentSrc\") || n.getAttribute(\"src\") || void 0;\n\t let o;\n\t const a = e.delegate;\n\t let r;\n\t a && i.length === e.startIndex && (o = a instanceof HTMLImageElement ? a : a.querySelector(\"img:not([aria-hidden])\")), o || (o = n instanceof HTMLImageElement ? n : n.querySelector(\"img:not([aria-hidden])\")), o && (r = o.currentSrc || o.src || void 0, !r && o.dataset && (r = o.dataset.lazySrc || o.dataset.src || void 0));\n\t const l = {\n\t src: s,\n\t triggerEl: n,\n\t thumbEl: o,\n\t thumbElSrc: r,\n\t thumbSrc: r\n\t };\n\n\t for (const e in t) \"fancybox\" !== e && (l[e] = t[e] + \"\");\n\n\t i.push(l);\n\t }\n\n\t return new xt(i, e);\n\t }\n\n\t static getInstance(t) {\n\t if (t) return yt.get(t);\n\t return Array.from(yt.values()).reverse().find(t => !t.isClosing() && t) || null;\n\t }\n\n\t static getSlide() {\n\t var t;\n\t return (null === (t = xt.getInstance()) || void 0 === t ? void 0 : t.getSlide()) || null;\n\t }\n\n\t static show(t = [], e = {}) {\n\t return new xt(t, e);\n\t }\n\n\t static next() {\n\t const t = xt.getInstance();\n\t t && t.next();\n\t }\n\n\t static prev() {\n\t const t = xt.getInstance();\n\t t && t.prev();\n\t }\n\n\t static close(t = !0, ...e) {\n\t if (t) for (const t of yt.values()) t.close(...e);else {\n\t const t = xt.getInstance();\n\t t && t.close(...e);\n\t }\n\t }\n\n\t}\n\n\tObject.defineProperty(xt, \"version\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: \"5.0.15\"\n\t}), Object.defineProperty(xt, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: q\n\t}), Object.defineProperty(xt, \"Plugins\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: mt\n\t}), Object.defineProperty(xt, \"openers\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: new Map()\n\t});\n\n\tconst globalJS = {\n\t manipulateClass: () => {\n\t $(\".middle #autoClone-MainMenu nav > ul >li.has-dropdown-lv-1\").each(function () {\n\t var checkLength = $(this).find(\">.dropdown >.wrapper >ul >li\");\n\n\t if (checkLength.length < 3 && checkLength.length >= 1 && checkLength.find(\".dropdown\").length != 0) {\n\t $(this).removeClass(\"has-dropdown-lv-1\");\n\t $(this).addClass(\"has-dropdown-lv-2\");\n\t $(this).find(\">.dropdown\").removeClass(\"dropdown-lv-1\");\n\t $(this).find(\">.dropdown\").addClass(\"dropdown-lv-2\");\n\t }\n\n\t if (checkLength.length > 2 && checkLength.find(\".dropdown\").length != 0) {\n\t $(this).removeClass(\"has-dropdown-lv-1\");\n\t $(this).removeClass(\"has-dropdown-lv-2\");\n\t $(this).addClass(\"has-dropdown-lv-3\");\n\t $(this).find(\">.dropdown\").removeClass(\"dropdown-lv-1\");\n\t $(this).find(\">.dropdown\").addClass(\"dropdown-lv-2\");\n\t }\n\t });\n\t },\n\t autoFillNoImage: () => {\n\t setTimeout(() => {\n\t $(\"img\").each(function () {\n\t if ($(this).hasAttr(\"data-src\")) {\n\t if ($(this).attr(\"data-src\") === \"\") {\n\t $(this).attr(\"data-src\", \"/no-image.png\");\n\t $(this).attr(\"src\", \"/no-image.png\");\n\t $(this).addClass(\"noImage\");\n\t }\n\t } else if ($(this).hasAttr(\"src\")) {\n\t if ($(this).attr(\"src\") === \"\") {\n\t $(this).attr(\"src\", \"/no-image.png\");\n\t $(this).addClass(\"noImage\");\n\t }\n\t }\n\t });\n\t }, 150);\n\t },\n\t autoAppend: () => {\n\t var appendId = $(\"[id*='autoAppend-']\");\n\t appendId.each(function (e) {\n\t var id = $(this).attr(\"id\").slice(11); // console.log(id);\n\n\t $(this).appendTo(\"[id*='autoAppendHere-\" + id + \"']\");\n\t var curHeight = $(this).get(0).scrollHeight;\n\t });\n\t },\n\t autoClone: () => {\n\t var cloneId = $(\"[id*='autoClone-']\");\n\t cloneId.each(function (e) {\n\t var id = $(this).attr(\"id\").slice(10); // console.log(id);\n\n\t $(this).clone().appendTo(\"[id*='autoCloneHere-\" + id + \"']\");\n\t });\n\t },\n\t setBackground: () => {\n\t var position = [\"\", \"top\", \"left\", \"right\", \"bottom\"];\n\t jQuery.each(position, function (index, item) {\n\t //\n\t //\n\t $(`[setBackground${item}]`).each(function () {\n\t var background = $(this).attr(\"setBackground\" + item);\n\t $(this).css({\n\t \"background-size\": \"cover\",\n\t \"background-position\": `${item} center`,\n\t \"background-image\": `url(${background})`\n\t });\n\t });\n\t });\n\t },\n\t scrollToTop: () => {\n\t $(window).on(\"scroll\", function () {\n\t if ($(this).scrollTop() >= $(\"header\").outerHeight() * 3) {\n\t $(\"#scrollToTop\").addClass(\"active\");\n\t } else {\n\t $(\"#scrollToTop\").removeClass(\"active\");\n\t }\n\t });\n\t $(\"#scrollToTop\").on(\"click\", function () {\n\t $(\"html,body\").animate({\n\t scrollTop: 0\n\t });\n\t });\n\t },\n\t checkListItem: () => {\n\t $(\"main ul\").each(function () {\n\t $(this).addClass(\"list-item-added\");\n\t });\n\t },\n\t inputButtonSubmit: () => {\n\t $(\"input[type='submit']\").each(function () {\n\t if ($(this).parent().is(\".btn\") && $(this).parent().not(\".has-input-submit\")) {\n\t //\n\t $(this).parent().addClass(\"has-input-submit\");\n\t $(this).parent().attr(\"data-title\", $(this).val());\n\t }\n\t });\n\t },\n\t removePagination: () => {\n\t $(\".pages.productpager\").each(function () {\n\t $(this).closest(\".ModuleContent\").find(\".container\").append($(this));\n\t });\n\t $(\".pages .modulepager\").each(function () {\n\t $(this).find(\"li\").each(function () {\n\t if ($(this).find(\".NextPage\").length) {\n\t $(this).remove();\n\t }\n\n\t if ($(this).find(\".LastPage\").length) {\n\t $(this).remove();\n\t }\n\n\t if ($(this).find(\".BackPage\").length) {\n\t $(this).remove();\n\t }\n\n\t if ($(this).find(\".FirstPage\").length) {\n\t $(this).remove();\n\t }\n\t });\n\t });\n\t },\n\t init: () => {\n\t globalJS.manipulateClass();\n\t globalJS.autoFillNoImage();\n\t globalJS.autoAppend();\n\t globalJS.autoClone();\n\t globalJS.setBackground();\n\t globalJS.scrollToTop();\n\t globalJS.inputButtonSubmit();\n\t globalJS.removePagination();\n\t globalJS.checkListItem();\n\t }\n\t};\n\n\t/**\n\t * SSR Window 4.0.2\n\t * Better handling for window object in SSR environment\n\t * https://github.com/nolimits4web/ssr-window\n\t *\n\t * Copyright 2021, Vladimir Kharlampidi\n\t *\n\t * Licensed under MIT\n\t *\n\t * Released on: December 13, 2021\n\t */\n\n\t/* eslint-disable no-param-reassign */\n\tfunction isObject(obj) {\n\t return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n\t}\n\n\tfunction extend(target = {}, src = {}) {\n\t Object.keys(src).forEach(key => {\n\t if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n\t extend(target[key], src[key]);\n\t }\n\t });\n\t}\n\n\tconst ssrDocument = {\n\t body: {},\n\n\t addEventListener() {},\n\n\t removeEventListener() {},\n\n\t activeElement: {\n\t blur() {},\n\n\t nodeName: ''\n\t },\n\n\t querySelector() {\n\t return null;\n\t },\n\n\t querySelectorAll() {\n\t return [];\n\t },\n\n\t getElementById() {\n\t return null;\n\t },\n\n\t createEvent() {\n\t return {\n\t initEvent() {}\n\n\t };\n\t },\n\n\t createElement() {\n\t return {\n\t children: [],\n\t childNodes: [],\n\t style: {},\n\n\t setAttribute() {},\n\n\t getElementsByTagName() {\n\t return [];\n\t }\n\n\t };\n\t },\n\n\t createElementNS() {\n\t return {};\n\t },\n\n\t importNode() {\n\t return null;\n\t },\n\n\t location: {\n\t hash: '',\n\t host: '',\n\t hostname: '',\n\t href: '',\n\t origin: '',\n\t pathname: '',\n\t protocol: '',\n\t search: ''\n\t }\n\t};\n\n\tfunction getDocument() {\n\t const doc = typeof document !== 'undefined' ? document : {};\n\t extend(doc, ssrDocument);\n\t return doc;\n\t}\n\n\tconst ssrWindow = {\n\t document: ssrDocument,\n\t navigator: {\n\t userAgent: ''\n\t },\n\t location: {\n\t hash: '',\n\t host: '',\n\t hostname: '',\n\t href: '',\n\t origin: '',\n\t pathname: '',\n\t protocol: '',\n\t search: ''\n\t },\n\t history: {\n\t replaceState() {},\n\n\t pushState() {},\n\n\t go() {},\n\n\t back() {}\n\n\t },\n\t CustomEvent: function CustomEvent() {\n\t return this;\n\t },\n\n\t addEventListener() {},\n\n\t removeEventListener() {},\n\n\t getComputedStyle() {\n\t return {\n\t getPropertyValue() {\n\t return '';\n\t }\n\n\t };\n\t },\n\n\t Image() {},\n\n\t Date() {},\n\n\t screen: {},\n\n\t setTimeout() {},\n\n\t clearTimeout() {},\n\n\t matchMedia() {\n\t return {};\n\t },\n\n\t requestAnimationFrame(callback) {\n\t if (typeof setTimeout === 'undefined') {\n\t callback();\n\t return null;\n\t }\n\n\t return setTimeout(callback, 0);\n\t },\n\n\t cancelAnimationFrame(id) {\n\t if (typeof setTimeout === 'undefined') {\n\t return;\n\t }\n\n\t clearTimeout(id);\n\t }\n\n\t};\n\n\tfunction getWindow() {\n\t const win = typeof window !== 'undefined' ? window : {};\n\t extend(win, ssrWindow);\n\t return win;\n\t}\n\n\t/**\n\t * Dom7 4.0.4\n\t * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n\t * https://framework7.io/docs/dom7.html\n\t *\n\t * Copyright 2022, Vladimir Kharlampidi\n\t *\n\t * Licensed under MIT\n\t *\n\t * Released on: January 11, 2022\n\t */\n\t/* eslint-disable no-proto */\n\n\tfunction makeReactive(obj) {\n\t const proto = obj.__proto__;\n\t Object.defineProperty(obj, '__proto__', {\n\t get() {\n\t return proto;\n\t },\n\n\t set(value) {\n\t proto.__proto__ = value;\n\t }\n\n\t });\n\t}\n\n\tclass Dom7 extends Array {\n\t constructor(items) {\n\t if (typeof items === 'number') {\n\t super(items);\n\t } else {\n\t super(...(items || []));\n\t makeReactive(this);\n\t }\n\t }\n\n\t}\n\n\tfunction arrayFlat(arr = []) {\n\t const res = [];\n\t arr.forEach(el => {\n\t if (Array.isArray(el)) {\n\t res.push(...arrayFlat(el));\n\t } else {\n\t res.push(el);\n\t }\n\t });\n\t return res;\n\t}\n\n\tfunction arrayFilter(arr, callback) {\n\t return Array.prototype.filter.call(arr, callback);\n\t}\n\n\tfunction arrayUnique(arr) {\n\t const uniqueArray = [];\n\n\t for (let i = 0; i < arr.length; i += 1) {\n\t if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n\t }\n\n\t return uniqueArray;\n\t}\n\n\n\tfunction qsa(selector, context) {\n\t if (typeof selector !== 'string') {\n\t return [selector];\n\t }\n\n\t const a = [];\n\t const res = context.querySelectorAll(selector);\n\n\t for (let i = 0; i < res.length; i += 1) {\n\t a.push(res[i]);\n\t }\n\n\t return a;\n\t}\n\n\tfunction $$2(selector, context) {\n\t const window = getWindow();\n\t const document = getDocument();\n\t let arr = [];\n\n\t if (!context && selector instanceof Dom7) {\n\t return selector;\n\t }\n\n\t if (!selector) {\n\t return new Dom7(arr);\n\t }\n\n\t if (typeof selector === 'string') {\n\t const html = selector.trim();\n\n\t if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n\t let toCreate = 'div';\n\t if (html.indexOf(' c.split(' ')));\n\t this.forEach(el => {\n\t el.classList.add(...classNames);\n\t });\n\t return this;\n\t}\n\n\tfunction removeClass(...classes) {\n\t const classNames = arrayFlat(classes.map(c => c.split(' ')));\n\t this.forEach(el => {\n\t el.classList.remove(...classNames);\n\t });\n\t return this;\n\t}\n\n\tfunction toggleClass(...classes) {\n\t const classNames = arrayFlat(classes.map(c => c.split(' ')));\n\t this.forEach(el => {\n\t classNames.forEach(className => {\n\t el.classList.toggle(className);\n\t });\n\t });\n\t}\n\n\tfunction hasClass(...classes) {\n\t const classNames = arrayFlat(classes.map(c => c.split(' ')));\n\t return arrayFilter(this, el => {\n\t return classNames.filter(className => el.classList.contains(className)).length > 0;\n\t }).length > 0;\n\t}\n\n\tfunction attr(attrs, value) {\n\t if (arguments.length === 1 && typeof attrs === 'string') {\n\t // Get attr\n\t if (this[0]) return this[0].getAttribute(attrs);\n\t return undefined;\n\t } // Set attrs\n\n\n\t for (let i = 0; i < this.length; i += 1) {\n\t if (arguments.length === 2) {\n\t // String\n\t this[i].setAttribute(attrs, value);\n\t } else {\n\t // Object\n\t for (const attrName in attrs) {\n\t this[i][attrName] = attrs[attrName];\n\t this[i].setAttribute(attrName, attrs[attrName]);\n\t }\n\t }\n\t }\n\n\t return this;\n\t}\n\n\tfunction removeAttr(attr) {\n\t for (let i = 0; i < this.length; i += 1) {\n\t this[i].removeAttribute(attr);\n\t }\n\n\t return this;\n\t}\n\n\tfunction transform(transform) {\n\t for (let i = 0; i < this.length; i += 1) {\n\t this[i].style.transform = transform;\n\t }\n\n\t return this;\n\t}\n\n\tfunction transition(duration) {\n\t for (let i = 0; i < this.length; i += 1) {\n\t this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n\t }\n\n\t return this;\n\t}\n\n\tfunction on(...args) {\n\t let [eventType, targetSelector, listener, capture] = args;\n\n\t if (typeof args[1] === 'function') {\n\t [eventType, listener, capture] = args;\n\t targetSelector = undefined;\n\t }\n\n\t if (!capture) capture = false;\n\n\t function handleLiveEvent(e) {\n\t const target = e.target;\n\t if (!target) return;\n\t const eventData = e.target.dom7EventData || [];\n\n\t if (eventData.indexOf(e) < 0) {\n\t eventData.unshift(e);\n\t }\n\n\t if ($$2(target).is(targetSelector)) listener.apply(target, eventData);else {\n\t const parents = $$2(target).parents(); // eslint-disable-line\n\n\t for (let k = 0; k < parents.length; k += 1) {\n\t if ($$2(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n\t }\n\t }\n\t }\n\n\t function handleEvent(e) {\n\t const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n\t if (eventData.indexOf(e) < 0) {\n\t eventData.unshift(e);\n\t }\n\n\t listener.apply(this, eventData);\n\t }\n\n\t const events = eventType.split(' ');\n\t let j;\n\n\t for (let i = 0; i < this.length; i += 1) {\n\t const el = this[i];\n\n\t if (!targetSelector) {\n\t for (j = 0; j < events.length; j += 1) {\n\t const event = events[j];\n\t if (!el.dom7Listeners) el.dom7Listeners = {};\n\t if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n\t el.dom7Listeners[event].push({\n\t listener,\n\t proxyListener: handleEvent\n\t });\n\t el.addEventListener(event, handleEvent, capture);\n\t }\n\t } else {\n\t // Live events\n\t for (j = 0; j < events.length; j += 1) {\n\t const event = events[j];\n\t if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n\t if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n\t el.dom7LiveListeners[event].push({\n\t listener,\n\t proxyListener: handleLiveEvent\n\t });\n\t el.addEventListener(event, handleLiveEvent, capture);\n\t }\n\t }\n\t }\n\n\t return this;\n\t}\n\n\tfunction off(...args) {\n\t let [eventType, targetSelector, listener, capture] = args;\n\n\t if (typeof args[1] === 'function') {\n\t [eventType, listener, capture] = args;\n\t targetSelector = undefined;\n\t }\n\n\t if (!capture) capture = false;\n\t const events = eventType.split(' ');\n\n\t for (let i = 0; i < events.length; i += 1) {\n\t const event = events[i];\n\n\t for (let j = 0; j < this.length; j += 1) {\n\t const el = this[j];\n\t let handlers;\n\n\t if (!targetSelector && el.dom7Listeners) {\n\t handlers = el.dom7Listeners[event];\n\t } else if (targetSelector && el.dom7LiveListeners) {\n\t handlers = el.dom7LiveListeners[event];\n\t }\n\n\t if (handlers && handlers.length) {\n\t for (let k = handlers.length - 1; k >= 0; k -= 1) {\n\t const handler = handlers[k];\n\n\t if (listener && handler.listener === listener) {\n\t el.removeEventListener(event, handler.proxyListener, capture);\n\t handlers.splice(k, 1);\n\t } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n\t el.removeEventListener(event, handler.proxyListener, capture);\n\t handlers.splice(k, 1);\n\t } else if (!listener) {\n\t el.removeEventListener(event, handler.proxyListener, capture);\n\t handlers.splice(k, 1);\n\t }\n\t }\n\t }\n\t }\n\t }\n\n\t return this;\n\t}\n\n\tfunction trigger(...args) {\n\t const window = getWindow();\n\t const events = args[0].split(' ');\n\t const eventData = args[1];\n\n\t for (let i = 0; i < events.length; i += 1) {\n\t const event = events[i];\n\n\t for (let j = 0; j < this.length; j += 1) {\n\t const el = this[j];\n\n\t if (window.CustomEvent) {\n\t const evt = new window.CustomEvent(event, {\n\t detail: eventData,\n\t bubbles: true,\n\t cancelable: true\n\t });\n\t el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n\t el.dispatchEvent(evt);\n\t el.dom7EventData = [];\n\t delete el.dom7EventData;\n\t }\n\t }\n\t }\n\n\t return this;\n\t}\n\n\tfunction transitionEnd(callback) {\n\t const dom = this;\n\n\t function fireCallBack(e) {\n\t if (e.target !== this) return;\n\t callback.call(this, e);\n\t dom.off('transitionend', fireCallBack);\n\t }\n\n\t if (callback) {\n\t dom.on('transitionend', fireCallBack);\n\t }\n\n\t return this;\n\t}\n\n\tfunction outerWidth(includeMargins) {\n\t if (this.length > 0) {\n\t if (includeMargins) {\n\t const styles = this.styles();\n\t return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n\t }\n\n\t return this[0].offsetWidth;\n\t }\n\n\t return null;\n\t}\n\n\tfunction outerHeight(includeMargins) {\n\t if (this.length > 0) {\n\t if (includeMargins) {\n\t const styles = this.styles();\n\t return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n\t }\n\n\t return this[0].offsetHeight;\n\t }\n\n\t return null;\n\t}\n\n\tfunction offset() {\n\t if (this.length > 0) {\n\t const window = getWindow();\n\t const document = getDocument();\n\t const el = this[0];\n\t const box = el.getBoundingClientRect();\n\t const body = document.body;\n\t const clientTop = el.clientTop || body.clientTop || 0;\n\t const clientLeft = el.clientLeft || body.clientLeft || 0;\n\t const scrollTop = el === window ? window.scrollY : el.scrollTop;\n\t const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n\t return {\n\t top: box.top + scrollTop - clientTop,\n\t left: box.left + scrollLeft - clientLeft\n\t };\n\t }\n\n\t return null;\n\t}\n\n\tfunction styles() {\n\t const window = getWindow();\n\t if (this[0]) return window.getComputedStyle(this[0], null);\n\t return {};\n\t}\n\n\tfunction css(props, value) {\n\t const window = getWindow();\n\t let i;\n\n\t if (arguments.length === 1) {\n\t if (typeof props === 'string') {\n\t // .css('width')\n\t if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n\t } else {\n\t // .css({ width: '100px' })\n\t for (i = 0; i < this.length; i += 1) {\n\t for (const prop in props) {\n\t this[i].style[prop] = props[prop];\n\t }\n\t }\n\n\t return this;\n\t }\n\t }\n\n\t if (arguments.length === 2 && typeof props === 'string') {\n\t // .css('width', '100px')\n\t for (i = 0; i < this.length; i += 1) {\n\t this[i].style[props] = value;\n\t }\n\n\t return this;\n\t }\n\n\t return this;\n\t}\n\n\tfunction each(callback) {\n\t if (!callback) return this;\n\t this.forEach((el, index) => {\n\t callback.apply(el, [el, index]);\n\t });\n\t return this;\n\t}\n\n\tfunction filter(callback) {\n\t const result = arrayFilter(this, callback);\n\t return $$2(result);\n\t}\n\n\tfunction html(html) {\n\t if (typeof html === 'undefined') {\n\t return this[0] ? this[0].innerHTML : null;\n\t }\n\n\t for (let i = 0; i < this.length; i += 1) {\n\t this[i].innerHTML = html;\n\t }\n\n\t return this;\n\t}\n\n\tfunction text(text) {\n\t if (typeof text === 'undefined') {\n\t return this[0] ? this[0].textContent.trim() : null;\n\t }\n\n\t for (let i = 0; i < this.length; i += 1) {\n\t this[i].textContent = text;\n\t }\n\n\t return this;\n\t}\n\n\tfunction is(selector) {\n\t const window = getWindow();\n\t const document = getDocument();\n\t const el = this[0];\n\t let compareWith;\n\t let i;\n\t if (!el || typeof selector === 'undefined') return false;\n\n\t if (typeof selector === 'string') {\n\t if (el.matches) return el.matches(selector);\n\t if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n\t if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\t compareWith = $$2(selector);\n\n\t for (i = 0; i < compareWith.length; i += 1) {\n\t if (compareWith[i] === el) return true;\n\t }\n\n\t return false;\n\t }\n\n\t if (selector === document) {\n\t return el === document;\n\t }\n\n\t if (selector === window) {\n\t return el === window;\n\t }\n\n\t if (selector.nodeType || selector instanceof Dom7) {\n\t compareWith = selector.nodeType ? [selector] : selector;\n\n\t for (i = 0; i < compareWith.length; i += 1) {\n\t if (compareWith[i] === el) return true;\n\t }\n\n\t return false;\n\t }\n\n\t return false;\n\t}\n\n\tfunction index() {\n\t let child = this[0];\n\t let i;\n\n\t if (child) {\n\t i = 0; // eslint-disable-next-line\n\n\t while ((child = child.previousSibling) !== null) {\n\t if (child.nodeType === 1) i += 1;\n\t }\n\n\t return i;\n\t }\n\n\t return undefined;\n\t}\n\n\tfunction eq(index) {\n\t if (typeof index === 'undefined') return this;\n\t const length = this.length;\n\n\t if (index > length - 1) {\n\t return $$2([]);\n\t }\n\n\t if (index < 0) {\n\t const returnIndex = length + index;\n\t if (returnIndex < 0) return $$2([]);\n\t return $$2([this[returnIndex]]);\n\t }\n\n\t return $$2([this[index]]);\n\t}\n\n\tfunction append(...els) {\n\t let newChild;\n\t const document = getDocument();\n\n\t for (let k = 0; k < els.length; k += 1) {\n\t newChild = els[k];\n\n\t for (let i = 0; i < this.length; i += 1) {\n\t if (typeof newChild === 'string') {\n\t const tempDiv = document.createElement('div');\n\t tempDiv.innerHTML = newChild;\n\n\t while (tempDiv.firstChild) {\n\t this[i].appendChild(tempDiv.firstChild);\n\t }\n\t } else if (newChild instanceof Dom7) {\n\t for (let j = 0; j < newChild.length; j += 1) {\n\t this[i].appendChild(newChild[j]);\n\t }\n\t } else {\n\t this[i].appendChild(newChild);\n\t }\n\t }\n\t }\n\n\t return this;\n\t}\n\n\tfunction prepend(newChild) {\n\t const document = getDocument();\n\t let i;\n\t let j;\n\n\t for (i = 0; i < this.length; i += 1) {\n\t if (typeof newChild === 'string') {\n\t const tempDiv = document.createElement('div');\n\t tempDiv.innerHTML = newChild;\n\n\t for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n\t this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n\t }\n\t } else if (newChild instanceof Dom7) {\n\t for (j = 0; j < newChild.length; j += 1) {\n\t this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n\t }\n\t } else {\n\t this[i].insertBefore(newChild, this[i].childNodes[0]);\n\t }\n\t }\n\n\t return this;\n\t}\n\n\tfunction next(selector) {\n\t if (this.length > 0) {\n\t if (selector) {\n\t if (this[0].nextElementSibling && $$2(this[0].nextElementSibling).is(selector)) {\n\t return $$2([this[0].nextElementSibling]);\n\t }\n\n\t return $$2([]);\n\t }\n\n\t if (this[0].nextElementSibling) return $$2([this[0].nextElementSibling]);\n\t return $$2([]);\n\t }\n\n\t return $$2([]);\n\t}\n\n\tfunction nextAll(selector) {\n\t const nextEls = [];\n\t let el = this[0];\n\t if (!el) return $$2([]);\n\n\t while (el.nextElementSibling) {\n\t const next = el.nextElementSibling; // eslint-disable-line\n\n\t if (selector) {\n\t if ($$2(next).is(selector)) nextEls.push(next);\n\t } else nextEls.push(next);\n\n\t el = next;\n\t }\n\n\t return $$2(nextEls);\n\t}\n\n\tfunction prev(selector) {\n\t if (this.length > 0) {\n\t const el = this[0];\n\n\t if (selector) {\n\t if (el.previousElementSibling && $$2(el.previousElementSibling).is(selector)) {\n\t return $$2([el.previousElementSibling]);\n\t }\n\n\t return $$2([]);\n\t }\n\n\t if (el.previousElementSibling) return $$2([el.previousElementSibling]);\n\t return $$2([]);\n\t }\n\n\t return $$2([]);\n\t}\n\n\tfunction prevAll(selector) {\n\t const prevEls = [];\n\t let el = this[0];\n\t if (!el) return $$2([]);\n\n\t while (el.previousElementSibling) {\n\t const prev = el.previousElementSibling; // eslint-disable-line\n\n\t if (selector) {\n\t if ($$2(prev).is(selector)) prevEls.push(prev);\n\t } else prevEls.push(prev);\n\n\t el = prev;\n\t }\n\n\t return $$2(prevEls);\n\t}\n\n\tfunction parent(selector) {\n\t const parents = []; // eslint-disable-line\n\n\t for (let i = 0; i < this.length; i += 1) {\n\t if (this[i].parentNode !== null) {\n\t if (selector) {\n\t if ($$2(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n\t } else {\n\t parents.push(this[i].parentNode);\n\t }\n\t }\n\t }\n\n\t return $$2(parents);\n\t}\n\n\tfunction parents(selector) {\n\t const parents = []; // eslint-disable-line\n\n\t for (let i = 0; i < this.length; i += 1) {\n\t let parent = this[i].parentNode; // eslint-disable-line\n\n\t while (parent) {\n\t if (selector) {\n\t if ($$2(parent).is(selector)) parents.push(parent);\n\t } else {\n\t parents.push(parent);\n\t }\n\n\t parent = parent.parentNode;\n\t }\n\t }\n\n\t return $$2(parents);\n\t}\n\n\tfunction closest(selector) {\n\t let closest = this; // eslint-disable-line\n\n\t if (typeof selector === 'undefined') {\n\t return $$2([]);\n\t }\n\n\t if (!closest.is(selector)) {\n\t closest = closest.parents(selector).eq(0);\n\t }\n\n\t return closest;\n\t}\n\n\tfunction find(selector) {\n\t const foundElements = [];\n\n\t for (let i = 0; i < this.length; i += 1) {\n\t const found = this[i].querySelectorAll(selector);\n\n\t for (let j = 0; j < found.length; j += 1) {\n\t foundElements.push(found[j]);\n\t }\n\t }\n\n\t return $$2(foundElements);\n\t}\n\n\tfunction children(selector) {\n\t const children = []; // eslint-disable-line\n\n\t for (let i = 0; i < this.length; i += 1) {\n\t const childNodes = this[i].children;\n\n\t for (let j = 0; j < childNodes.length; j += 1) {\n\t if (!selector || $$2(childNodes[j]).is(selector)) {\n\t children.push(childNodes[j]);\n\t }\n\t }\n\t }\n\n\t return $$2(children);\n\t}\n\n\tfunction remove() {\n\t for (let i = 0; i < this.length; i += 1) {\n\t if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n\t }\n\n\t return this;\n\t}\n\n\tconst Methods = {\n\t addClass,\n\t removeClass,\n\t hasClass,\n\t toggleClass,\n\t attr,\n\t removeAttr,\n\t transform,\n\t transition,\n\t on,\n\t off,\n\t trigger,\n\t transitionEnd,\n\t outerWidth,\n\t outerHeight,\n\t styles,\n\t offset,\n\t css,\n\t each,\n\t html,\n\t text,\n\t is,\n\t index,\n\t eq,\n\t append,\n\t prepend,\n\t next,\n\t nextAll,\n\t prev,\n\t prevAll,\n\t parent,\n\t parents,\n\t closest,\n\t find,\n\t children,\n\t filter,\n\t remove\n\t};\n\tObject.keys(Methods).forEach(methodName => {\n\t Object.defineProperty($$2.fn, methodName, {\n\t value: Methods[methodName],\n\t writable: true\n\t });\n\t});\n\n\tfunction deleteProps(obj) {\n\t const object = obj;\n\t Object.keys(object).forEach(key => {\n\t try {\n\t object[key] = null;\n\t } catch (e) {// no getter for object\n\t }\n\n\t try {\n\t delete object[key];\n\t } catch (e) {// something got wrong\n\t }\n\t });\n\t}\n\n\tfunction nextTick(callback, delay) {\n\t if (delay === void 0) {\n\t delay = 0;\n\t }\n\n\t return setTimeout(callback, delay);\n\t}\n\n\tfunction now() {\n\t return Date.now();\n\t}\n\n\tfunction getComputedStyle$1(el) {\n\t const window = getWindow();\n\t let style;\n\n\t if (window.getComputedStyle) {\n\t style = window.getComputedStyle(el, null);\n\t }\n\n\t if (!style && el.currentStyle) {\n\t style = el.currentStyle;\n\t }\n\n\t if (!style) {\n\t style = el.style;\n\t }\n\n\t return style;\n\t}\n\n\tfunction getTranslate(el, axis) {\n\t if (axis === void 0) {\n\t axis = 'x';\n\t }\n\n\t const window = getWindow();\n\t let matrix;\n\t let curTransform;\n\t let transformMatrix;\n\t const curStyle = getComputedStyle$1(el);\n\n\t if (window.WebKitCSSMatrix) {\n\t curTransform = curStyle.transform || curStyle.webkitTransform;\n\n\t if (curTransform.split(',').length > 6) {\n\t curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n\t } // Some old versions of Webkit choke when 'none' is passed; pass\n\t // empty string instead in this case\n\n\n\t transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n\t } else {\n\t transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n\t matrix = transformMatrix.toString().split(',');\n\t }\n\n\t if (axis === 'x') {\n\t // Latest Chrome and webkits Fix\n\t if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n\t else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n\t else curTransform = parseFloat(matrix[4]);\n\t }\n\n\t if (axis === 'y') {\n\t // Latest Chrome and webkits Fix\n\t if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n\t else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n\t else curTransform = parseFloat(matrix[5]);\n\t }\n\n\t return curTransform || 0;\n\t}\n\n\tfunction isObject$1(o) {\n\t return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n\t}\n\n\tfunction isNode(node) {\n\t // eslint-disable-next-line\n\t if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n\t return node instanceof HTMLElement;\n\t }\n\n\t return node && (node.nodeType === 1 || node.nodeType === 11);\n\t}\n\n\tfunction extend$1() {\n\t const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n\t const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n\t for (let i = 1; i < arguments.length; i += 1) {\n\t const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n\t if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n\t const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n\t for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n\t const nextKey = keysArray[nextIndex];\n\t const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n\t if (desc !== undefined && desc.enumerable) {\n\t if (isObject$1(to[nextKey]) && isObject$1(nextSource[nextKey])) {\n\t if (nextSource[nextKey].__swiper__) {\n\t to[nextKey] = nextSource[nextKey];\n\t } else {\n\t extend$1(to[nextKey], nextSource[nextKey]);\n\t }\n\t } else if (!isObject$1(to[nextKey]) && isObject$1(nextSource[nextKey])) {\n\t to[nextKey] = {};\n\n\t if (nextSource[nextKey].__swiper__) {\n\t to[nextKey] = nextSource[nextKey];\n\t } else {\n\t extend$1(to[nextKey], nextSource[nextKey]);\n\t }\n\t } else {\n\t to[nextKey] = nextSource[nextKey];\n\t }\n\t }\n\t }\n\t }\n\t }\n\n\t return to;\n\t}\n\n\tfunction setCSSProperty(el, varName, varValue) {\n\t el.style.setProperty(varName, varValue);\n\t}\n\n\tfunction animateCSSModeScroll(_ref) {\n\t let {\n\t swiper,\n\t targetPosition,\n\t side\n\t } = _ref;\n\t const window = getWindow();\n\t const startPosition = -swiper.translate;\n\t let startTime = null;\n\t let time;\n\t const duration = swiper.params.speed;\n\t swiper.wrapperEl.style.scrollSnapType = 'none';\n\t window.cancelAnimationFrame(swiper.cssModeFrameID);\n\t const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n\t const isOutOfBound = (current, target) => {\n\t return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n\t };\n\n\t const animate = () => {\n\t time = new Date().getTime();\n\n\t if (startTime === null) {\n\t startTime = time;\n\t }\n\n\t const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n\t const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n\t let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n\t if (isOutOfBound(currentPosition, targetPosition)) {\n\t currentPosition = targetPosition;\n\t }\n\n\t swiper.wrapperEl.scrollTo({\n\t [side]: currentPosition\n\t });\n\n\t if (isOutOfBound(currentPosition, targetPosition)) {\n\t swiper.wrapperEl.style.overflow = 'hidden';\n\t swiper.wrapperEl.style.scrollSnapType = '';\n\t setTimeout(() => {\n\t swiper.wrapperEl.style.overflow = '';\n\t swiper.wrapperEl.scrollTo({\n\t [side]: currentPosition\n\t });\n\t });\n\t window.cancelAnimationFrame(swiper.cssModeFrameID);\n\t return;\n\t }\n\n\t swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n\t };\n\n\t animate();\n\t}\n\n\tlet support;\n\n\tfunction calcSupport() {\n\t const window = getWindow();\n\t const document = getDocument();\n\t return {\n\t smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n\t touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n\t passiveListener: function checkPassiveListener() {\n\t let supportsPassive = false;\n\n\t try {\n\t const opts = Object.defineProperty({}, 'passive', {\n\t // eslint-disable-next-line\n\t get() {\n\t supportsPassive = true;\n\t }\n\n\t });\n\t window.addEventListener('testPassiveListener', null, opts);\n\t } catch (e) {// No support\n\t }\n\n\t return supportsPassive;\n\t }(),\n\t gestures: function checkGestures() {\n\t return 'ongesturestart' in window;\n\t }()\n\t };\n\t}\n\n\tfunction getSupport() {\n\t if (!support) {\n\t support = calcSupport();\n\t }\n\n\t return support;\n\t}\n\n\tlet deviceCached;\n\n\tfunction calcDevice(_temp) {\n\t let {\n\t userAgent\n\t } = _temp === void 0 ? {} : _temp;\n\t const support = getSupport();\n\t const window = getWindow();\n\t const platform = window.navigator.platform;\n\t const ua = userAgent || window.navigator.userAgent;\n\t const device = {\n\t ios: false,\n\t android: false\n\t };\n\t const screenWidth = window.screen.width;\n\t const screenHeight = window.screen.height;\n\t const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n\t let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n\t const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n\t const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n\t const windows = platform === 'Win32';\n\t let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n\t const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n\t if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n\t ipad = ua.match(/(Version)\\/([\\d.]+)/);\n\t if (!ipad) ipad = [0, 1, '13_0_0'];\n\t macos = false;\n\t } // Android\n\n\n\t if (android && !windows) {\n\t device.os = 'android';\n\t device.android = true;\n\t }\n\n\t if (ipad || iphone || ipod) {\n\t device.os = 'ios';\n\t device.ios = true;\n\t } // Export object\n\n\n\t return device;\n\t}\n\n\tfunction getDevice(overrides) {\n\t if (overrides === void 0) {\n\t overrides = {};\n\t }\n\n\t if (!deviceCached) {\n\t deviceCached = calcDevice(overrides);\n\t }\n\n\t return deviceCached;\n\t}\n\n\tlet browser;\n\n\tfunction calcBrowser() {\n\t const window = getWindow();\n\n\t function isSafari() {\n\t const ua = window.navigator.userAgent.toLowerCase();\n\t return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n\t }\n\n\t return {\n\t isSafari: isSafari(),\n\t isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n\t };\n\t}\n\n\tfunction getBrowser() {\n\t if (!browser) {\n\t browser = calcBrowser();\n\t }\n\n\t return browser;\n\t}\n\n\tfunction Resize(_ref) {\n\t let {\n\t swiper,\n\t on,\n\t emit\n\t } = _ref;\n\t const window = getWindow();\n\t let observer = null;\n\t let animationFrame = null;\n\n\t const resizeHandler = () => {\n\t if (!swiper || swiper.destroyed || !swiper.initialized) return;\n\t emit('beforeResize');\n\t emit('resize');\n\t };\n\n\t const createObserver = () => {\n\t if (!swiper || swiper.destroyed || !swiper.initialized) return;\n\t observer = new ResizeObserver(entries => {\n\t animationFrame = window.requestAnimationFrame(() => {\n\t const {\n\t width,\n\t height\n\t } = swiper;\n\t let newWidth = width;\n\t let newHeight = height;\n\t entries.forEach(_ref2 => {\n\t let {\n\t contentBoxSize,\n\t contentRect,\n\t target\n\t } = _ref2;\n\t if (target && target !== swiper.el) return;\n\t newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n\t newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n\t });\n\n\t if (newWidth !== width || newHeight !== height) {\n\t resizeHandler();\n\t }\n\t });\n\t });\n\t observer.observe(swiper.el);\n\t };\n\n\t const removeObserver = () => {\n\t if (animationFrame) {\n\t window.cancelAnimationFrame(animationFrame);\n\t }\n\n\t if (observer && observer.unobserve && swiper.el) {\n\t observer.unobserve(swiper.el);\n\t observer = null;\n\t }\n\t };\n\n\t const orientationChangeHandler = () => {\n\t if (!swiper || swiper.destroyed || !swiper.initialized) return;\n\t emit('orientationchange');\n\t };\n\n\t on('init', () => {\n\t if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n\t createObserver();\n\t return;\n\t }\n\n\t window.addEventListener('resize', resizeHandler);\n\t window.addEventListener('orientationchange', orientationChangeHandler);\n\t });\n\t on('destroy', () => {\n\t removeObserver();\n\t window.removeEventListener('resize', resizeHandler);\n\t window.removeEventListener('orientationchange', orientationChangeHandler);\n\t });\n\t}\n\n\tfunction Observer(_ref) {\n\t let {\n\t swiper,\n\t extendParams,\n\t on,\n\t emit\n\t } = _ref;\n\t const observers = [];\n\t const window = getWindow();\n\n\t const attach = function (target, options) {\n\t if (options === void 0) {\n\t options = {};\n\t }\n\n\t const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n\t const observer = new ObserverFunc(mutations => {\n\t // The observerUpdate event should only be triggered\n\t // once despite the number of mutations. Additional\n\t // triggers are redundant and are very costly\n\t if (mutations.length === 1) {\n\t emit('observerUpdate', mutations[0]);\n\t return;\n\t }\n\n\t const observerUpdate = function observerUpdate() {\n\t emit('observerUpdate', mutations[0]);\n\t };\n\n\t if (window.requestAnimationFrame) {\n\t window.requestAnimationFrame(observerUpdate);\n\t } else {\n\t window.setTimeout(observerUpdate, 0);\n\t }\n\t });\n\t observer.observe(target, {\n\t attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n\t childList: typeof options.childList === 'undefined' ? true : options.childList,\n\t characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n\t });\n\t observers.push(observer);\n\t };\n\n\t const init = () => {\n\t if (!swiper.params.observer) return;\n\n\t if (swiper.params.observeParents) {\n\t const containerParents = swiper.$el.parents();\n\n\t for (let i = 0; i < containerParents.length; i += 1) {\n\t attach(containerParents[i]);\n\t }\n\t } // Observe container\n\n\n\t attach(swiper.$el[0], {\n\t childList: swiper.params.observeSlideChildren\n\t }); // Observe wrapper\n\n\t attach(swiper.$wrapperEl[0], {\n\t attributes: false\n\t });\n\t };\n\n\t const destroy = () => {\n\t observers.forEach(observer => {\n\t observer.disconnect();\n\t });\n\t observers.splice(0, observers.length);\n\t };\n\n\t extendParams({\n\t observer: false,\n\t observeParents: false,\n\t observeSlideChildren: false\n\t });\n\t on('init', init);\n\t on('destroy', destroy);\n\t}\n\n\t/* eslint-disable no-underscore-dangle */\n\tvar eventsEmitter = {\n\t on(events, handler, priority) {\n\t const self = this;\n\t if (!self.eventsListeners || self.destroyed) return self;\n\t if (typeof handler !== 'function') return self;\n\t const method = priority ? 'unshift' : 'push';\n\t events.split(' ').forEach(event => {\n\t if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n\t self.eventsListeners[event][method](handler);\n\t });\n\t return self;\n\t },\n\n\t once(events, handler, priority) {\n\t const self = this;\n\t if (!self.eventsListeners || self.destroyed) return self;\n\t if (typeof handler !== 'function') return self;\n\n\t function onceHandler() {\n\t self.off(events, onceHandler);\n\n\t if (onceHandler.__emitterProxy) {\n\t delete onceHandler.__emitterProxy;\n\t }\n\n\t for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\n\t handler.apply(self, args);\n\t }\n\n\t onceHandler.__emitterProxy = handler;\n\t return self.on(events, onceHandler, priority);\n\t },\n\n\t onAny(handler, priority) {\n\t const self = this;\n\t if (!self.eventsListeners || self.destroyed) return self;\n\t if (typeof handler !== 'function') return self;\n\t const method = priority ? 'unshift' : 'push';\n\n\t if (self.eventsAnyListeners.indexOf(handler) < 0) {\n\t self.eventsAnyListeners[method](handler);\n\t }\n\n\t return self;\n\t },\n\n\t offAny(handler) {\n\t const self = this;\n\t if (!self.eventsListeners || self.destroyed) return self;\n\t if (!self.eventsAnyListeners) return self;\n\t const index = self.eventsAnyListeners.indexOf(handler);\n\n\t if (index >= 0) {\n\t self.eventsAnyListeners.splice(index, 1);\n\t }\n\n\t return self;\n\t },\n\n\t off(events, handler) {\n\t const self = this;\n\t if (!self.eventsListeners || self.destroyed) return self;\n\t if (!self.eventsListeners) return self;\n\t events.split(' ').forEach(event => {\n\t if (typeof handler === 'undefined') {\n\t self.eventsListeners[event] = [];\n\t } else if (self.eventsListeners[event]) {\n\t self.eventsListeners[event].forEach((eventHandler, index) => {\n\t if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n\t self.eventsListeners[event].splice(index, 1);\n\t }\n\t });\n\t }\n\t });\n\t return self;\n\t },\n\n\t emit() {\n\t const self = this;\n\t if (!self.eventsListeners || self.destroyed) return self;\n\t if (!self.eventsListeners) return self;\n\t let events;\n\t let data;\n\t let context;\n\n\t for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n\t events = args[0];\n\t data = args.slice(1, args.length);\n\t context = self;\n\t } else {\n\t events = args[0].events;\n\t data = args[0].data;\n\t context = args[0].context || self;\n\t }\n\n\t data.unshift(context);\n\t const eventsArray = Array.isArray(events) ? events : events.split(' ');\n\t eventsArray.forEach(event => {\n\t if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n\t self.eventsAnyListeners.forEach(eventHandler => {\n\t eventHandler.apply(context, [event, ...data]);\n\t });\n\t }\n\n\t if (self.eventsListeners && self.eventsListeners[event]) {\n\t self.eventsListeners[event].forEach(eventHandler => {\n\t eventHandler.apply(context, data);\n\t });\n\t }\n\t });\n\t return self;\n\t }\n\n\t};\n\n\tfunction updateSize() {\n\t const swiper = this;\n\t let width;\n\t let height;\n\t const $el = swiper.$el;\n\n\t if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n\t width = swiper.params.width;\n\t } else {\n\t width = $el[0].clientWidth;\n\t }\n\n\t if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n\t height = swiper.params.height;\n\t } else {\n\t height = $el[0].clientHeight;\n\t }\n\n\t if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n\t return;\n\t } // Subtract paddings\n\n\n\t width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n\t height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n\t if (Number.isNaN(width)) width = 0;\n\t if (Number.isNaN(height)) height = 0;\n\t Object.assign(swiper, {\n\t width,\n\t height,\n\t size: swiper.isHorizontal() ? width : height\n\t });\n\t}\n\n\tfunction updateSlides() {\n\t const swiper = this;\n\n\t function getDirectionLabel(property) {\n\t if (swiper.isHorizontal()) {\n\t return property;\n\t } // prettier-ignore\n\n\n\t return {\n\t 'width': 'height',\n\t 'margin-top': 'margin-left',\n\t 'margin-bottom ': 'margin-right',\n\t 'margin-left': 'margin-top',\n\t 'margin-right': 'margin-bottom',\n\t 'padding-left': 'padding-top',\n\t 'padding-right': 'padding-bottom',\n\t 'marginRight': 'marginBottom'\n\t }[property];\n\t }\n\n\t function getDirectionPropertyValue(node, label) {\n\t return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n\t }\n\n\t const params = swiper.params;\n\t const {\n\t $wrapperEl,\n\t size: swiperSize,\n\t rtlTranslate: rtl,\n\t wrongRTL\n\t } = swiper;\n\t const isVirtual = swiper.virtual && params.virtual.enabled;\n\t const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n\t const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n\t const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n\t let snapGrid = [];\n\t const slidesGrid = [];\n\t const slidesSizesGrid = [];\n\t let offsetBefore = params.slidesOffsetBefore;\n\n\t if (typeof offsetBefore === 'function') {\n\t offsetBefore = params.slidesOffsetBefore.call(swiper);\n\t }\n\n\t let offsetAfter = params.slidesOffsetAfter;\n\n\t if (typeof offsetAfter === 'function') {\n\t offsetAfter = params.slidesOffsetAfter.call(swiper);\n\t }\n\n\t const previousSnapGridLength = swiper.snapGrid.length;\n\t const previousSlidesGridLength = swiper.slidesGrid.length;\n\t let spaceBetween = params.spaceBetween;\n\t let slidePosition = -offsetBefore;\n\t let prevSlideSize = 0;\n\t let index = 0;\n\n\t if (typeof swiperSize === 'undefined') {\n\t return;\n\t }\n\n\t if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n\t spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n\t }\n\n\t swiper.virtualSize = -spaceBetween; // reset margins\n\n\t if (rtl) slides.css({\n\t marginLeft: '',\n\t marginBottom: '',\n\t marginTop: ''\n\t });else slides.css({\n\t marginRight: '',\n\t marginBottom: '',\n\t marginTop: ''\n\t }); // reset cssMode offsets\n\n\t if (params.centeredSlides && params.cssMode) {\n\t setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n\t setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n\t }\n\n\t const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n\t if (gridEnabled) {\n\t swiper.grid.initSlides(slidesLength);\n\t } // Calc slides\n\n\n\t let slideSize;\n\t const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n\t return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n\t }).length > 0;\n\n\t for (let i = 0; i < slidesLength; i += 1) {\n\t slideSize = 0;\n\t const slide = slides.eq(i);\n\n\t if (gridEnabled) {\n\t swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n\t }\n\n\t if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n\t if (params.slidesPerView === 'auto') {\n\t if (shouldResetSlideSize) {\n\t slides[i].style[getDirectionLabel('width')] = ``;\n\t }\n\n\t const slideStyles = getComputedStyle(slide[0]);\n\t const currentTransform = slide[0].style.transform;\n\t const currentWebKitTransform = slide[0].style.webkitTransform;\n\n\t if (currentTransform) {\n\t slide[0].style.transform = 'none';\n\t }\n\n\t if (currentWebKitTransform) {\n\t slide[0].style.webkitTransform = 'none';\n\t }\n\n\t if (params.roundLengths) {\n\t slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n\t } else {\n\t // eslint-disable-next-line\n\t const width = getDirectionPropertyValue(slideStyles, 'width');\n\t const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n\t const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n\t const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n\t const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n\t const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n\t if (boxSizing && boxSizing === 'border-box') {\n\t slideSize = width + marginLeft + marginRight;\n\t } else {\n\t const {\n\t clientWidth,\n\t offsetWidth\n\t } = slide[0];\n\t slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n\t }\n\t }\n\n\t if (currentTransform) {\n\t slide[0].style.transform = currentTransform;\n\t }\n\n\t if (currentWebKitTransform) {\n\t slide[0].style.webkitTransform = currentWebKitTransform;\n\t }\n\n\t if (params.roundLengths) slideSize = Math.floor(slideSize);\n\t } else {\n\t slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n\t if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n\t if (slides[i]) {\n\t slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n\t }\n\t }\n\n\t if (slides[i]) {\n\t slides[i].swiperSlideSize = slideSize;\n\t }\n\n\t slidesSizesGrid.push(slideSize);\n\n\t if (params.centeredSlides) {\n\t slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n\t if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n\t if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n\t if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n\t if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n\t if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n\t slidesGrid.push(slidePosition);\n\t } else {\n\t if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n\t if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n\t slidesGrid.push(slidePosition);\n\t slidePosition = slidePosition + slideSize + spaceBetween;\n\t }\n\n\t swiper.virtualSize += slideSize + spaceBetween;\n\t prevSlideSize = slideSize;\n\t index += 1;\n\t }\n\n\t swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n\t if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n\t $wrapperEl.css({\n\t width: `${swiper.virtualSize + params.spaceBetween}px`\n\t });\n\t }\n\n\t if (params.setWrapperSize) {\n\t $wrapperEl.css({\n\t [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n\t });\n\t }\n\n\t if (gridEnabled) {\n\t swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n\t } // Remove last grid elements depending on width\n\n\n\t if (!params.centeredSlides) {\n\t const newSlidesGrid = [];\n\n\t for (let i = 0; i < snapGrid.length; i += 1) {\n\t let slidesGridItem = snapGrid[i];\n\t if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n\t if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n\t newSlidesGrid.push(slidesGridItem);\n\t }\n\t }\n\n\t snapGrid = newSlidesGrid;\n\n\t if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n\t snapGrid.push(swiper.virtualSize - swiperSize);\n\t }\n\t }\n\n\t if (snapGrid.length === 0) snapGrid = [0];\n\n\t if (params.spaceBetween !== 0) {\n\t const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n\t slides.filter((_, slideIndex) => {\n\t if (!params.cssMode) return true;\n\n\t if (slideIndex === slides.length - 1) {\n\t return false;\n\t }\n\n\t return true;\n\t }).css({\n\t [key]: `${spaceBetween}px`\n\t });\n\t }\n\n\t if (params.centeredSlides && params.centeredSlidesBounds) {\n\t let allSlidesSize = 0;\n\t slidesSizesGrid.forEach(slideSizeValue => {\n\t allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n\t });\n\t allSlidesSize -= params.spaceBetween;\n\t const maxSnap = allSlidesSize - swiperSize;\n\t snapGrid = snapGrid.map(snap => {\n\t if (snap < 0) return -offsetBefore;\n\t if (snap > maxSnap) return maxSnap + offsetAfter;\n\t return snap;\n\t });\n\t }\n\n\t if (params.centerInsufficientSlides) {\n\t let allSlidesSize = 0;\n\t slidesSizesGrid.forEach(slideSizeValue => {\n\t allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n\t });\n\t allSlidesSize -= params.spaceBetween;\n\n\t if (allSlidesSize < swiperSize) {\n\t const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n\t snapGrid.forEach((snap, snapIndex) => {\n\t snapGrid[snapIndex] = snap - allSlidesOffset;\n\t });\n\t slidesGrid.forEach((snap, snapIndex) => {\n\t slidesGrid[snapIndex] = snap + allSlidesOffset;\n\t });\n\t }\n\t }\n\n\t Object.assign(swiper, {\n\t slides,\n\t snapGrid,\n\t slidesGrid,\n\t slidesSizesGrid\n\t });\n\n\t if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n\t setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n\t setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n\t const addToSnapGrid = -swiper.snapGrid[0];\n\t const addToSlidesGrid = -swiper.slidesGrid[0];\n\t swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n\t swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n\t }\n\n\t if (slidesLength !== previousSlidesLength) {\n\t swiper.emit('slidesLengthChange');\n\t }\n\n\t if (snapGrid.length !== previousSnapGridLength) {\n\t if (swiper.params.watchOverflow) swiper.checkOverflow();\n\t swiper.emit('snapGridLengthChange');\n\t }\n\n\t if (slidesGrid.length !== previousSlidesGridLength) {\n\t swiper.emit('slidesGridLengthChange');\n\t }\n\n\t if (params.watchSlidesProgress) {\n\t swiper.updateSlidesOffset();\n\t }\n\n\t if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n\t const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n\t const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n\t if (slidesLength <= params.maxBackfaceHiddenSlides) {\n\t if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n\t } else if (hasClassBackfaceClassAdded) {\n\t swiper.$el.removeClass(backFaceHiddenClass);\n\t }\n\t }\n\t}\n\n\tfunction updateAutoHeight(speed) {\n\t const swiper = this;\n\t const activeSlides = [];\n\t const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\t let newHeight = 0;\n\t let i;\n\n\t if (typeof speed === 'number') {\n\t swiper.setTransition(speed);\n\t } else if (speed === true) {\n\t swiper.setTransition(swiper.params.speed);\n\t }\n\n\t const getSlideByIndex = index => {\n\t if (isVirtual) {\n\t return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n\t }\n\n\t return swiper.slides.eq(index)[0];\n\t }; // Find slides currently in view\n\n\n\t if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n\t if (swiper.params.centeredSlides) {\n\t (swiper.visibleSlides || $$2([])).each(slide => {\n\t activeSlides.push(slide);\n\t });\n\t } else {\n\t for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n\t const index = swiper.activeIndex + i;\n\t if (index > swiper.slides.length && !isVirtual) break;\n\t activeSlides.push(getSlideByIndex(index));\n\t }\n\t }\n\t } else {\n\t activeSlides.push(getSlideByIndex(swiper.activeIndex));\n\t } // Find new height from highest slide in view\n\n\n\t for (i = 0; i < activeSlides.length; i += 1) {\n\t if (typeof activeSlides[i] !== 'undefined') {\n\t const height = activeSlides[i].offsetHeight;\n\t newHeight = height > newHeight ? height : newHeight;\n\t }\n\t } // Update Height\n\n\n\t if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n\t}\n\n\tfunction updateSlidesOffset() {\n\t const swiper = this;\n\t const slides = swiper.slides;\n\n\t for (let i = 0; i < slides.length; i += 1) {\n\t slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n\t }\n\t}\n\n\tfunction updateSlidesProgress(translate) {\n\t if (translate === void 0) {\n\t translate = this && this.translate || 0;\n\t }\n\n\t const swiper = this;\n\t const params = swiper.params;\n\t const {\n\t slides,\n\t rtlTranslate: rtl,\n\t snapGrid\n\t } = swiper;\n\t if (slides.length === 0) return;\n\t if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\t let offsetCenter = -translate;\n\t if (rtl) offsetCenter = translate; // Visible Slides\n\n\t slides.removeClass(params.slideVisibleClass);\n\t swiper.visibleSlidesIndexes = [];\n\t swiper.visibleSlides = [];\n\n\t for (let i = 0; i < slides.length; i += 1) {\n\t const slide = slides[i];\n\t let slideOffset = slide.swiperSlideOffset;\n\n\t if (params.cssMode && params.centeredSlides) {\n\t slideOffset -= slides[0].swiperSlideOffset;\n\t }\n\n\t const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\t const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\t const slideBefore = -(offsetCenter - slideOffset);\n\t const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n\t const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n\t if (isVisible) {\n\t swiper.visibleSlides.push(slide);\n\t swiper.visibleSlidesIndexes.push(i);\n\t slides.eq(i).addClass(params.slideVisibleClass);\n\t }\n\n\t slide.progress = rtl ? -slideProgress : slideProgress;\n\t slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n\t }\n\n\t swiper.visibleSlides = $$2(swiper.visibleSlides);\n\t}\n\n\tfunction updateProgress(translate) {\n\t const swiper = this;\n\n\t if (typeof translate === 'undefined') {\n\t const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n\t translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n\t }\n\n\t const params = swiper.params;\n\t const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\t let {\n\t progress,\n\t isBeginning,\n\t isEnd\n\t } = swiper;\n\t const wasBeginning = isBeginning;\n\t const wasEnd = isEnd;\n\n\t if (translatesDiff === 0) {\n\t progress = 0;\n\t isBeginning = true;\n\t isEnd = true;\n\t } else {\n\t progress = (translate - swiper.minTranslate()) / translatesDiff;\n\t isBeginning = progress <= 0;\n\t isEnd = progress >= 1;\n\t }\n\n\t Object.assign(swiper, {\n\t progress,\n\t isBeginning,\n\t isEnd\n\t });\n\t if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n\t if (isBeginning && !wasBeginning) {\n\t swiper.emit('reachBeginning toEdge');\n\t }\n\n\t if (isEnd && !wasEnd) {\n\t swiper.emit('reachEnd toEdge');\n\t }\n\n\t if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n\t swiper.emit('fromEdge');\n\t }\n\n\t swiper.emit('progress', progress);\n\t}\n\n\tfunction updateSlidesClasses() {\n\t const swiper = this;\n\t const {\n\t slides,\n\t params,\n\t $wrapperEl,\n\t activeIndex,\n\t realIndex\n\t } = swiper;\n\t const isVirtual = swiper.virtual && params.virtual.enabled;\n\t slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n\t let activeSlide;\n\n\t if (isVirtual) {\n\t activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n\t } else {\n\t activeSlide = slides.eq(activeIndex);\n\t } // Active classes\n\n\n\t activeSlide.addClass(params.slideActiveClass);\n\n\t if (params.loop) {\n\t // Duplicate to all looped slides\n\t if (activeSlide.hasClass(params.slideDuplicateClass)) {\n\t $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n\t } else {\n\t $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n\t }\n\t } // Next Slide\n\n\n\t let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n\t if (params.loop && nextSlide.length === 0) {\n\t nextSlide = slides.eq(0);\n\t nextSlide.addClass(params.slideNextClass);\n\t } // Prev Slide\n\n\n\t let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n\t if (params.loop && prevSlide.length === 0) {\n\t prevSlide = slides.eq(-1);\n\t prevSlide.addClass(params.slidePrevClass);\n\t }\n\n\t if (params.loop) {\n\t // Duplicate to all looped slides\n\t if (nextSlide.hasClass(params.slideDuplicateClass)) {\n\t $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n\t } else {\n\t $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n\t }\n\n\t if (prevSlide.hasClass(params.slideDuplicateClass)) {\n\t $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n\t } else {\n\t $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n\t }\n\t }\n\n\t swiper.emitSlidesClasses();\n\t}\n\n\tfunction updateActiveIndex(newActiveIndex) {\n\t const swiper = this;\n\t const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\t const {\n\t slidesGrid,\n\t snapGrid,\n\t params,\n\t activeIndex: previousIndex,\n\t realIndex: previousRealIndex,\n\t snapIndex: previousSnapIndex\n\t } = swiper;\n\t let activeIndex = newActiveIndex;\n\t let snapIndex;\n\n\t if (typeof activeIndex === 'undefined') {\n\t for (let i = 0; i < slidesGrid.length; i += 1) {\n\t if (typeof slidesGrid[i + 1] !== 'undefined') {\n\t if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n\t activeIndex = i;\n\t } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n\t activeIndex = i + 1;\n\t }\n\t } else if (translate >= slidesGrid[i]) {\n\t activeIndex = i;\n\t }\n\t } // Normalize slideIndex\n\n\n\t if (params.normalizeSlideIndex) {\n\t if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n\t }\n\t }\n\n\t if (snapGrid.indexOf(translate) >= 0) {\n\t snapIndex = snapGrid.indexOf(translate);\n\t } else {\n\t const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n\t snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n\t }\n\n\t if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n\t if (activeIndex === previousIndex) {\n\t if (snapIndex !== previousSnapIndex) {\n\t swiper.snapIndex = snapIndex;\n\t swiper.emit('snapIndexChange');\n\t }\n\n\t return;\n\t } // Get real index\n\n\n\t const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\t Object.assign(swiper, {\n\t snapIndex,\n\t realIndex,\n\t previousIndex,\n\t activeIndex\n\t });\n\t swiper.emit('activeIndexChange');\n\t swiper.emit('snapIndexChange');\n\n\t if (previousRealIndex !== realIndex) {\n\t swiper.emit('realIndexChange');\n\t }\n\n\t if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n\t swiper.emit('slideChange');\n\t }\n\t}\n\n\tfunction updateClickedSlide(e) {\n\t const swiper = this;\n\t const params = swiper.params;\n\t const slide = $$2(e).closest(`.${params.slideClass}`)[0];\n\t let slideFound = false;\n\t let slideIndex;\n\n\t if (slide) {\n\t for (let i = 0; i < swiper.slides.length; i += 1) {\n\t if (swiper.slides[i] === slide) {\n\t slideFound = true;\n\t slideIndex = i;\n\t break;\n\t }\n\t }\n\t }\n\n\t if (slide && slideFound) {\n\t swiper.clickedSlide = slide;\n\n\t if (swiper.virtual && swiper.params.virtual.enabled) {\n\t swiper.clickedIndex = parseInt($$2(slide).attr('data-swiper-slide-index'), 10);\n\t } else {\n\t swiper.clickedIndex = slideIndex;\n\t }\n\t } else {\n\t swiper.clickedSlide = undefined;\n\t swiper.clickedIndex = undefined;\n\t return;\n\t }\n\n\t if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n\t swiper.slideToClickedSlide();\n\t }\n\t}\n\n\tvar update = {\n\t updateSize,\n\t updateSlides,\n\t updateAutoHeight,\n\t updateSlidesOffset,\n\t updateSlidesProgress,\n\t updateProgress,\n\t updateSlidesClasses,\n\t updateActiveIndex,\n\t updateClickedSlide\n\t};\n\n\tfunction getSwiperTranslate(axis) {\n\t if (axis === void 0) {\n\t axis = this.isHorizontal() ? 'x' : 'y';\n\t }\n\n\t const swiper = this;\n\t const {\n\t params,\n\t rtlTranslate: rtl,\n\t translate,\n\t $wrapperEl\n\t } = swiper;\n\n\t if (params.virtualTranslate) {\n\t return rtl ? -translate : translate;\n\t }\n\n\t if (params.cssMode) {\n\t return translate;\n\t }\n\n\t let currentTranslate = getTranslate($wrapperEl[0], axis);\n\t if (rtl) currentTranslate = -currentTranslate;\n\t return currentTranslate || 0;\n\t}\n\n\tfunction setTranslate(translate, byController) {\n\t const swiper = this;\n\t const {\n\t rtlTranslate: rtl,\n\t params,\n\t $wrapperEl,\n\t wrapperEl,\n\t progress\n\t } = swiper;\n\t let x = 0;\n\t let y = 0;\n\t const z = 0;\n\n\t if (swiper.isHorizontal()) {\n\t x = rtl ? -translate : translate;\n\t } else {\n\t y = translate;\n\t }\n\n\t if (params.roundLengths) {\n\t x = Math.floor(x);\n\t y = Math.floor(y);\n\t }\n\n\t if (params.cssMode) {\n\t wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n\t } else if (!params.virtualTranslate) {\n\t $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n\t }\n\n\t swiper.previousTranslate = swiper.translate;\n\t swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n\t let newProgress;\n\t const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n\t if (translatesDiff === 0) {\n\t newProgress = 0;\n\t } else {\n\t newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n\t }\n\n\t if (newProgress !== progress) {\n\t swiper.updateProgress(translate);\n\t }\n\n\t swiper.emit('setTranslate', swiper.translate, byController);\n\t}\n\n\tfunction minTranslate() {\n\t return -this.snapGrid[0];\n\t}\n\n\tfunction maxTranslate() {\n\t return -this.snapGrid[this.snapGrid.length - 1];\n\t}\n\n\tfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n\t if (translate === void 0) {\n\t translate = 0;\n\t }\n\n\t if (speed === void 0) {\n\t speed = this.params.speed;\n\t }\n\n\t if (runCallbacks === void 0) {\n\t runCallbacks = true;\n\t }\n\n\t if (translateBounds === void 0) {\n\t translateBounds = true;\n\t }\n\n\t const swiper = this;\n\t const {\n\t params,\n\t wrapperEl\n\t } = swiper;\n\n\t if (swiper.animating && params.preventInteractionOnTransition) {\n\t return false;\n\t }\n\n\t const minTranslate = swiper.minTranslate();\n\t const maxTranslate = swiper.maxTranslate();\n\t let newTranslate;\n\t if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n\t swiper.updateProgress(newTranslate);\n\n\t if (params.cssMode) {\n\t const isH = swiper.isHorizontal();\n\n\t if (speed === 0) {\n\t wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n\t } else {\n\t if (!swiper.support.smoothScroll) {\n\t animateCSSModeScroll({\n\t swiper,\n\t targetPosition: -newTranslate,\n\t side: isH ? 'left' : 'top'\n\t });\n\t return true;\n\t }\n\n\t wrapperEl.scrollTo({\n\t [isH ? 'left' : 'top']: -newTranslate,\n\t behavior: 'smooth'\n\t });\n\t }\n\n\t return true;\n\t }\n\n\t if (speed === 0) {\n\t swiper.setTransition(0);\n\t swiper.setTranslate(newTranslate);\n\n\t if (runCallbacks) {\n\t swiper.emit('beforeTransitionStart', speed, internal);\n\t swiper.emit('transitionEnd');\n\t }\n\t } else {\n\t swiper.setTransition(speed);\n\t swiper.setTranslate(newTranslate);\n\n\t if (runCallbacks) {\n\t swiper.emit('beforeTransitionStart', speed, internal);\n\t swiper.emit('transitionStart');\n\t }\n\n\t if (!swiper.animating) {\n\t swiper.animating = true;\n\n\t if (!swiper.onTranslateToWrapperTransitionEnd) {\n\t swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n\t if (!swiper || swiper.destroyed) return;\n\t if (e.target !== this) return;\n\t swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n\t swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n\t swiper.onTranslateToWrapperTransitionEnd = null;\n\t delete swiper.onTranslateToWrapperTransitionEnd;\n\n\t if (runCallbacks) {\n\t swiper.emit('transitionEnd');\n\t }\n\t };\n\t }\n\n\t swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n\t swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n\t }\n\t }\n\n\t return true;\n\t}\n\n\tvar translate = {\n\t getTranslate: getSwiperTranslate,\n\t setTranslate,\n\t minTranslate,\n\t maxTranslate,\n\t translateTo\n\t};\n\n\tfunction setTransition(duration, byController) {\n\t const swiper = this;\n\n\t if (!swiper.params.cssMode) {\n\t swiper.$wrapperEl.transition(duration);\n\t }\n\n\t swiper.emit('setTransition', duration, byController);\n\t}\n\n\tfunction transitionEmit(_ref) {\n\t let {\n\t swiper,\n\t runCallbacks,\n\t direction,\n\t step\n\t } = _ref;\n\t const {\n\t activeIndex,\n\t previousIndex\n\t } = swiper;\n\t let dir = direction;\n\n\t if (!dir) {\n\t if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n\t }\n\n\t swiper.emit(`transition${step}`);\n\n\t if (runCallbacks && activeIndex !== previousIndex) {\n\t if (dir === 'reset') {\n\t swiper.emit(`slideResetTransition${step}`);\n\t return;\n\t }\n\n\t swiper.emit(`slideChangeTransition${step}`);\n\n\t if (dir === 'next') {\n\t swiper.emit(`slideNextTransition${step}`);\n\t } else {\n\t swiper.emit(`slidePrevTransition${step}`);\n\t }\n\t }\n\t}\n\n\tfunction transitionStart(runCallbacks, direction) {\n\t if (runCallbacks === void 0) {\n\t runCallbacks = true;\n\t }\n\n\t const swiper = this;\n\t const {\n\t params\n\t } = swiper;\n\t if (params.cssMode) return;\n\n\t if (params.autoHeight) {\n\t swiper.updateAutoHeight();\n\t }\n\n\t transitionEmit({\n\t swiper,\n\t runCallbacks,\n\t direction,\n\t step: 'Start'\n\t });\n\t}\n\n\tfunction transitionEnd$1(runCallbacks, direction) {\n\t if (runCallbacks === void 0) {\n\t runCallbacks = true;\n\t }\n\n\t const swiper = this;\n\t const {\n\t params\n\t } = swiper;\n\t swiper.animating = false;\n\t if (params.cssMode) return;\n\t swiper.setTransition(0);\n\t transitionEmit({\n\t swiper,\n\t runCallbacks,\n\t direction,\n\t step: 'End'\n\t });\n\t}\n\n\tvar transition$1 = {\n\t setTransition,\n\t transitionStart,\n\t transitionEnd: transitionEnd$1\n\t};\n\n\tfunction slideTo(index, speed, runCallbacks, internal, initial) {\n\t if (index === void 0) {\n\t index = 0;\n\t }\n\n\t if (speed === void 0) {\n\t speed = this.params.speed;\n\t }\n\n\t if (runCallbacks === void 0) {\n\t runCallbacks = true;\n\t }\n\n\t if (typeof index !== 'number' && typeof index !== 'string') {\n\t throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n\t }\n\n\t if (typeof index === 'string') {\n\t /**\n\t * The `index` argument converted from `string` to `number`.\n\t * @type {number}\n\t */\n\t const indexAsNumber = parseInt(index, 10);\n\t /**\n\t * Determines whether the `index` argument is a valid `number`\n\t * after being converted from the `string` type.\n\t * @type {boolean}\n\t */\n\n\t const isValidNumber = isFinite(indexAsNumber);\n\n\t if (!isValidNumber) {\n\t throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n\t } // Knowing that the converted `index` is a valid number,\n\t // we can update the original argument's value.\n\n\n\t index = indexAsNumber;\n\t }\n\n\t const swiper = this;\n\t let slideIndex = index;\n\t if (slideIndex < 0) slideIndex = 0;\n\t const {\n\t params,\n\t snapGrid,\n\t slidesGrid,\n\t previousIndex,\n\t activeIndex,\n\t rtlTranslate: rtl,\n\t wrapperEl,\n\t enabled\n\t } = swiper;\n\n\t if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n\t return false;\n\t }\n\n\t const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n\t let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n\t if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n\t if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n\t swiper.emit('beforeSlideChangeStart');\n\t }\n\n\t const translate = -snapGrid[snapIndex]; // Update progress\n\n\t swiper.updateProgress(translate); // Normalize slideIndex\n\n\t if (params.normalizeSlideIndex) {\n\t for (let i = 0; i < slidesGrid.length; i += 1) {\n\t const normalizedTranslate = -Math.floor(translate * 100);\n\t const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n\t const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n\t if (typeof slidesGrid[i + 1] !== 'undefined') {\n\t if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n\t slideIndex = i;\n\t } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n\t slideIndex = i + 1;\n\t }\n\t } else if (normalizedTranslate >= normalizedGrid) {\n\t slideIndex = i;\n\t }\n\t }\n\t } // Directions locks\n\n\n\t if (swiper.initialized && slideIndex !== activeIndex) {\n\t if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n\t return false;\n\t }\n\n\t if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n\t if ((activeIndex || 0) !== slideIndex) return false;\n\t }\n\t }\n\n\t let direction;\n\t if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n\t if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n\t swiper.updateActiveIndex(slideIndex); // Update Height\n\n\t if (params.autoHeight) {\n\t swiper.updateAutoHeight();\n\t }\n\n\t swiper.updateSlidesClasses();\n\n\t if (params.effect !== 'slide') {\n\t swiper.setTranslate(translate);\n\t }\n\n\t if (direction !== 'reset') {\n\t swiper.transitionStart(runCallbacks, direction);\n\t swiper.transitionEnd(runCallbacks, direction);\n\t }\n\n\t return false;\n\t }\n\n\t if (params.cssMode) {\n\t const isH = swiper.isHorizontal();\n\t const t = rtl ? translate : -translate;\n\n\t if (speed === 0) {\n\t const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n\t if (isVirtual) {\n\t swiper.wrapperEl.style.scrollSnapType = 'none';\n\t swiper._immediateVirtual = true;\n\t }\n\n\t wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n\t if (isVirtual) {\n\t requestAnimationFrame(() => {\n\t swiper.wrapperEl.style.scrollSnapType = '';\n\t swiper._swiperImmediateVirtual = false;\n\t });\n\t }\n\t } else {\n\t if (!swiper.support.smoothScroll) {\n\t animateCSSModeScroll({\n\t swiper,\n\t targetPosition: t,\n\t side: isH ? 'left' : 'top'\n\t });\n\t return true;\n\t }\n\n\t wrapperEl.scrollTo({\n\t [isH ? 'left' : 'top']: t,\n\t behavior: 'smooth'\n\t });\n\t }\n\n\t return true;\n\t }\n\n\t swiper.setTransition(speed);\n\t swiper.setTranslate(translate);\n\t swiper.updateActiveIndex(slideIndex);\n\t swiper.updateSlidesClasses();\n\t swiper.emit('beforeTransitionStart', speed, internal);\n\t swiper.transitionStart(runCallbacks, direction);\n\n\t if (speed === 0) {\n\t swiper.transitionEnd(runCallbacks, direction);\n\t } else if (!swiper.animating) {\n\t swiper.animating = true;\n\n\t if (!swiper.onSlideToWrapperTransitionEnd) {\n\t swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n\t if (!swiper || swiper.destroyed) return;\n\t if (e.target !== this) return;\n\t swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n\t swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n\t swiper.onSlideToWrapperTransitionEnd = null;\n\t delete swiper.onSlideToWrapperTransitionEnd;\n\t swiper.transitionEnd(runCallbacks, direction);\n\t };\n\t }\n\n\t swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n\t swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n\t }\n\n\t return true;\n\t}\n\n\tfunction slideToLoop(index, speed, runCallbacks, internal) {\n\t if (index === void 0) {\n\t index = 0;\n\t }\n\n\t if (speed === void 0) {\n\t speed = this.params.speed;\n\t }\n\n\t if (runCallbacks === void 0) {\n\t runCallbacks = true;\n\t }\n\n\t if (typeof index === 'string') {\n\t /**\n\t * The `index` argument converted from `string` to `number`.\n\t * @type {number}\n\t */\n\t const indexAsNumber = parseInt(index, 10);\n\t /**\n\t * Determines whether the `index` argument is a valid `number`\n\t * after being converted from the `string` type.\n\t * @type {boolean}\n\t */\n\n\t const isValidNumber = isFinite(indexAsNumber);\n\n\t if (!isValidNumber) {\n\t throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n\t } // Knowing that the converted `index` is a valid number,\n\t // we can update the original argument's value.\n\n\n\t index = indexAsNumber;\n\t }\n\n\t const swiper = this;\n\t let newIndex = index;\n\n\t if (swiper.params.loop) {\n\t newIndex += swiper.loopedSlides;\n\t }\n\n\t return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n\t}\n\n\t/* eslint no-unused-vars: \"off\" */\n\tfunction slideNext(speed, runCallbacks, internal) {\n\t if (speed === void 0) {\n\t speed = this.params.speed;\n\t }\n\n\t if (runCallbacks === void 0) {\n\t runCallbacks = true;\n\t }\n\n\t const swiper = this;\n\t const {\n\t animating,\n\t enabled,\n\t params\n\t } = swiper;\n\t if (!enabled) return swiper;\n\t let perGroup = params.slidesPerGroup;\n\n\t if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n\t perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n\t }\n\n\t const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n\t if (params.loop) {\n\t if (animating && params.loopPreventsSlide) return false;\n\t swiper.loopFix(); // eslint-disable-next-line\n\n\t swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n\t }\n\n\t if (params.rewind && swiper.isEnd) {\n\t return swiper.slideTo(0, speed, runCallbacks, internal);\n\t }\n\n\t return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n\t}\n\n\t/* eslint no-unused-vars: \"off\" */\n\tfunction slidePrev(speed, runCallbacks, internal) {\n\t if (speed === void 0) {\n\t speed = this.params.speed;\n\t }\n\n\t if (runCallbacks === void 0) {\n\t runCallbacks = true;\n\t }\n\n\t const swiper = this;\n\t const {\n\t params,\n\t animating,\n\t snapGrid,\n\t slidesGrid,\n\t rtlTranslate,\n\t enabled\n\t } = swiper;\n\t if (!enabled) return swiper;\n\n\t if (params.loop) {\n\t if (animating && params.loopPreventsSlide) return false;\n\t swiper.loopFix(); // eslint-disable-next-line\n\n\t swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n\t }\n\n\t const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n\t function normalize(val) {\n\t if (val < 0) return -Math.floor(Math.abs(val));\n\t return Math.floor(val);\n\t }\n\n\t const normalizedTranslate = normalize(translate);\n\t const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n\t let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n\t if (typeof prevSnap === 'undefined' && params.cssMode) {\n\t let prevSnapIndex;\n\t snapGrid.forEach((snap, snapIndex) => {\n\t if (normalizedTranslate >= snap) {\n\t // prevSnap = snap;\n\t prevSnapIndex = snapIndex;\n\t }\n\t });\n\n\t if (typeof prevSnapIndex !== 'undefined') {\n\t prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n\t }\n\t }\n\n\t let prevIndex = 0;\n\n\t if (typeof prevSnap !== 'undefined') {\n\t prevIndex = slidesGrid.indexOf(prevSnap);\n\t if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n\t if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n\t prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n\t prevIndex = Math.max(prevIndex, 0);\n\t }\n\t }\n\n\t if (params.rewind && swiper.isBeginning) {\n\t const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n\t return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n\t }\n\n\t return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n\t}\n\n\t/* eslint no-unused-vars: \"off\" */\n\tfunction slideReset(speed, runCallbacks, internal) {\n\t if (speed === void 0) {\n\t speed = this.params.speed;\n\t }\n\n\t if (runCallbacks === void 0) {\n\t runCallbacks = true;\n\t }\n\n\t const swiper = this;\n\t return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n\t}\n\n\t/* eslint no-unused-vars: \"off\" */\n\tfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n\t if (speed === void 0) {\n\t speed = this.params.speed;\n\t }\n\n\t if (runCallbacks === void 0) {\n\t runCallbacks = true;\n\t }\n\n\t if (threshold === void 0) {\n\t threshold = 0.5;\n\t }\n\n\t const swiper = this;\n\t let index = swiper.activeIndex;\n\t const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n\t const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n\t const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n\t if (translate >= swiper.snapGrid[snapIndex]) {\n\t // The current translate is on or after the current snap index, so the choice\n\t // is between the current index and the one after it.\n\t const currentSnap = swiper.snapGrid[snapIndex];\n\t const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n\t if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n\t index += swiper.params.slidesPerGroup;\n\t }\n\t } else {\n\t // The current translate is before the current snap index, so the choice\n\t // is between the current index and the one before it.\n\t const prevSnap = swiper.snapGrid[snapIndex - 1];\n\t const currentSnap = swiper.snapGrid[snapIndex];\n\n\t if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n\t index -= swiper.params.slidesPerGroup;\n\t }\n\t }\n\n\t index = Math.max(index, 0);\n\t index = Math.min(index, swiper.slidesGrid.length - 1);\n\t return swiper.slideTo(index, speed, runCallbacks, internal);\n\t}\n\n\tfunction slideToClickedSlide() {\n\t const swiper = this;\n\t const {\n\t params,\n\t $wrapperEl\n\t } = swiper;\n\t const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n\t let slideToIndex = swiper.clickedIndex;\n\t let realIndex;\n\n\t if (params.loop) {\n\t if (swiper.animating) return;\n\t realIndex = parseInt($$2(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n\t if (params.centeredSlides) {\n\t if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n\t swiper.loopFix();\n\t slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n\t nextTick(() => {\n\t swiper.slideTo(slideToIndex);\n\t });\n\t } else {\n\t swiper.slideTo(slideToIndex);\n\t }\n\t } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n\t swiper.loopFix();\n\t slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n\t nextTick(() => {\n\t swiper.slideTo(slideToIndex);\n\t });\n\t } else {\n\t swiper.slideTo(slideToIndex);\n\t }\n\t } else {\n\t swiper.slideTo(slideToIndex);\n\t }\n\t}\n\n\tvar slide = {\n\t slideTo,\n\t slideToLoop,\n\t slideNext,\n\t slidePrev,\n\t slideReset,\n\t slideToClosest,\n\t slideToClickedSlide\n\t};\n\n\tfunction loopCreate() {\n\t const swiper = this;\n\t const document = getDocument();\n\t const {\n\t params,\n\t $wrapperEl\n\t } = swiper; // Remove duplicated slides\n\n\t const $selector = $wrapperEl.children().length > 0 ? $$2($wrapperEl.children()[0].parentNode) : $wrapperEl;\n\t $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\t let slides = $selector.children(`.${params.slideClass}`);\n\n\t if (params.loopFillGroupWithBlank) {\n\t const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n\t if (blankSlidesNum !== params.slidesPerGroup) {\n\t for (let i = 0; i < blankSlidesNum; i += 1) {\n\t const blankNode = $$2(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n\t $selector.append(blankNode);\n\t }\n\n\t slides = $selector.children(`.${params.slideClass}`);\n\t }\n\t }\n\n\t if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\t swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n\t swiper.loopedSlides += params.loopAdditionalSlides;\n\n\t if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n\t swiper.loopedSlides = slides.length;\n\t }\n\n\t const prependSlides = [];\n\t const appendSlides = [];\n\t slides.each((el, index) => {\n\t $$2(el).attr('data-swiper-slide-index', index);\n\t });\n\n\t for (let i = 0; i < swiper.loopedSlides; i += 1) {\n\t const index = i - Math.floor(i / slides.length) * slides.length;\n\t appendSlides.push(slides.eq(index)[0]);\n\t prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n\t }\n\n\t for (let i = 0; i < appendSlides.length; i += 1) {\n\t $selector.append($$2(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n\t }\n\n\t for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n\t $selector.prepend($$2(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n\t }\n\t}\n\n\tfunction loopFix() {\n\t const swiper = this;\n\t swiper.emit('beforeLoopFix');\n\t const {\n\t activeIndex,\n\t slides,\n\t loopedSlides,\n\t allowSlidePrev,\n\t allowSlideNext,\n\t snapGrid,\n\t rtlTranslate: rtl\n\t } = swiper;\n\t let newIndex;\n\t swiper.allowSlidePrev = true;\n\t swiper.allowSlideNext = true;\n\t const snapTranslate = -snapGrid[activeIndex];\n\t const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n\t if (activeIndex < loopedSlides) {\n\t newIndex = slides.length - loopedSlides * 3 + activeIndex;\n\t newIndex += loopedSlides;\n\t const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n\t if (slideChanged && diff !== 0) {\n\t swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n\t }\n\t } else if (activeIndex >= slides.length - loopedSlides) {\n\t // Fix For Positive Oversliding\n\t newIndex = -slides.length + activeIndex + loopedSlides;\n\t newIndex += loopedSlides;\n\t const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n\t if (slideChanged && diff !== 0) {\n\t swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n\t }\n\t }\n\n\t swiper.allowSlidePrev = allowSlidePrev;\n\t swiper.allowSlideNext = allowSlideNext;\n\t swiper.emit('loopFix');\n\t}\n\n\tfunction loopDestroy() {\n\t const swiper = this;\n\t const {\n\t $wrapperEl,\n\t params,\n\t slides\n\t } = swiper;\n\t $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n\t slides.removeAttr('data-swiper-slide-index');\n\t}\n\n\tvar loop = {\n\t loopCreate,\n\t loopFix,\n\t loopDestroy\n\t};\n\n\tfunction setGrabCursor(moving) {\n\t const swiper = this;\n\t if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n\t const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n\t el.style.cursor = 'move';\n\t el.style.cursor = moving ? 'grabbing' : 'grab';\n\t}\n\n\tfunction unsetGrabCursor() {\n\t const swiper = this;\n\n\t if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n\t return;\n\t }\n\n\t swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n\t}\n\n\tvar grabCursor = {\n\t setGrabCursor,\n\t unsetGrabCursor\n\t};\n\n\tfunction closestElement(selector, base) {\n\t if (base === void 0) {\n\t base = this;\n\t }\n\n\t function __closestFrom(el) {\n\t if (!el || el === getDocument() || el === getWindow()) return null;\n\t if (el.assignedSlot) el = el.assignedSlot;\n\t const found = el.closest(selector);\n\n\t if (!found && !el.getRootNode) {\n\t return null;\n\t }\n\n\t return found || __closestFrom(el.getRootNode().host);\n\t }\n\n\t return __closestFrom(base);\n\t}\n\n\tfunction onTouchStart(event) {\n\t const swiper = this;\n\t const document = getDocument();\n\t const window = getWindow();\n\t const data = swiper.touchEventsData;\n\t const {\n\t params,\n\t touches,\n\t enabled\n\t } = swiper;\n\t if (!enabled) return;\n\n\t if (swiper.animating && params.preventInteractionOnTransition) {\n\t return;\n\t }\n\n\t if (!swiper.animating && params.cssMode && params.loop) {\n\t swiper.loopFix();\n\t }\n\n\t let e = event;\n\t if (e.originalEvent) e = e.originalEvent;\n\t let $targetEl = $$2(e.target);\n\n\t if (params.touchEventsTarget === 'wrapper') {\n\t if (!$targetEl.closest(swiper.wrapperEl).length) return;\n\t }\n\n\t data.isTouchEvent = e.type === 'touchstart';\n\t if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n\t if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n\t if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n\t const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n\t if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n\t $targetEl = $$2(event.path[0]);\n\t }\n\n\t const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n\t 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\t if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n\t swiper.allowClick = true;\n\t return;\n\t }\n\n\t if (params.swipeHandler) {\n\t if (!$targetEl.closest(params.swipeHandler)[0]) return;\n\t }\n\n\t touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n\t touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n\t const startX = touches.currentX;\n\t const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n\t const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n\t const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n\t if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n\t if (edgeSwipeDetection === 'prevent') {\n\t event.preventDefault();\n\t } else {\n\t return;\n\t }\n\t }\n\n\t Object.assign(data, {\n\t isTouched: true,\n\t isMoved: false,\n\t allowTouchCallbacks: true,\n\t isScrolling: undefined,\n\t startMoving: undefined\n\t });\n\t touches.startX = startX;\n\t touches.startY = startY;\n\t data.touchStartTime = now();\n\t swiper.allowClick = true;\n\t swiper.updateSize();\n\t swiper.swipeDirection = undefined;\n\t if (params.threshold > 0) data.allowThresholdMove = false;\n\n\t if (e.type !== 'touchstart') {\n\t let preventDefault = true;\n\n\t if ($targetEl.is(data.focusableElements)) {\n\t preventDefault = false;\n\n\t if ($targetEl[0].nodeName === 'SELECT') {\n\t data.isTouched = false;\n\t }\n\t }\n\n\t if (document.activeElement && $$2(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n\t document.activeElement.blur();\n\t }\n\n\t const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n\t if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n\t e.preventDefault();\n\t }\n\t }\n\n\t if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n\t swiper.freeMode.onTouchStart();\n\t }\n\n\t swiper.emit('touchStart', e);\n\t}\n\n\tfunction onTouchMove(event) {\n\t const document = getDocument();\n\t const swiper = this;\n\t const data = swiper.touchEventsData;\n\t const {\n\t params,\n\t touches,\n\t rtlTranslate: rtl,\n\t enabled\n\t } = swiper;\n\t if (!enabled) return;\n\t let e = event;\n\t if (e.originalEvent) e = e.originalEvent;\n\n\t if (!data.isTouched) {\n\t if (data.startMoving && data.isScrolling) {\n\t swiper.emit('touchMoveOpposite', e);\n\t }\n\n\t return;\n\t }\n\n\t if (data.isTouchEvent && e.type !== 'touchmove') return;\n\t const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n\t const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n\t const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n\t if (e.preventedByNestedSwiper) {\n\t touches.startX = pageX;\n\t touches.startY = pageY;\n\t return;\n\t }\n\n\t if (!swiper.allowTouchMove) {\n\t if (!$$2(e.target).is(data.focusableElements)) {\n\t swiper.allowClick = false;\n\t }\n\n\t if (data.isTouched) {\n\t Object.assign(touches, {\n\t startX: pageX,\n\t startY: pageY,\n\t currentX: pageX,\n\t currentY: pageY\n\t });\n\t data.touchStartTime = now();\n\t }\n\n\t return;\n\t }\n\n\t if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n\t if (swiper.isVertical()) {\n\t // Vertical\n\t if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n\t data.isTouched = false;\n\t data.isMoved = false;\n\t return;\n\t }\n\t } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n\t return;\n\t }\n\t }\n\n\t if (data.isTouchEvent && document.activeElement) {\n\t if (e.target === document.activeElement && $$2(e.target).is(data.focusableElements)) {\n\t data.isMoved = true;\n\t swiper.allowClick = false;\n\t return;\n\t }\n\t }\n\n\t if (data.allowTouchCallbacks) {\n\t swiper.emit('touchMove', e);\n\t }\n\n\t if (e.targetTouches && e.targetTouches.length > 1) return;\n\t touches.currentX = pageX;\n\t touches.currentY = pageY;\n\t const diffX = touches.currentX - touches.startX;\n\t const diffY = touches.currentY - touches.startY;\n\t if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n\t if (typeof data.isScrolling === 'undefined') {\n\t let touchAngle;\n\n\t if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n\t data.isScrolling = false;\n\t } else {\n\t // eslint-disable-next-line\n\t if (diffX * diffX + diffY * diffY >= 25) {\n\t touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n\t data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n\t }\n\t }\n\t }\n\n\t if (data.isScrolling) {\n\t swiper.emit('touchMoveOpposite', e);\n\t }\n\n\t if (typeof data.startMoving === 'undefined') {\n\t if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n\t data.startMoving = true;\n\t }\n\t }\n\n\t if (data.isScrolling) {\n\t data.isTouched = false;\n\t return;\n\t }\n\n\t if (!data.startMoving) {\n\t return;\n\t }\n\n\t swiper.allowClick = false;\n\n\t if (!params.cssMode && e.cancelable) {\n\t e.preventDefault();\n\t }\n\n\t if (params.touchMoveStopPropagation && !params.nested) {\n\t e.stopPropagation();\n\t }\n\n\t if (!data.isMoved) {\n\t if (params.loop && !params.cssMode) {\n\t swiper.loopFix();\n\t }\n\n\t data.startTranslate = swiper.getTranslate();\n\t swiper.setTransition(0);\n\n\t if (swiper.animating) {\n\t swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n\t }\n\n\t data.allowMomentumBounce = false; // Grab Cursor\n\n\t if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n\t swiper.setGrabCursor(true);\n\t }\n\n\t swiper.emit('sliderFirstMove', e);\n\t }\n\n\t swiper.emit('sliderMove', e);\n\t data.isMoved = true;\n\t let diff = swiper.isHorizontal() ? diffX : diffY;\n\t touches.diff = diff;\n\t diff *= params.touchRatio;\n\t if (rtl) diff = -diff;\n\t swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n\t data.currentTranslate = diff + data.startTranslate;\n\t let disableParentSwiper = true;\n\t let resistanceRatio = params.resistanceRatio;\n\n\t if (params.touchReleaseOnEdges) {\n\t resistanceRatio = 0;\n\t }\n\n\t if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n\t disableParentSwiper = false;\n\t if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n\t } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n\t disableParentSwiper = false;\n\t if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n\t }\n\n\t if (disableParentSwiper) {\n\t e.preventedByNestedSwiper = true;\n\t } // Directions locks\n\n\n\t if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n\t data.currentTranslate = data.startTranslate;\n\t }\n\n\t if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n\t data.currentTranslate = data.startTranslate;\n\t }\n\n\t if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n\t data.currentTranslate = data.startTranslate;\n\t } // Threshold\n\n\n\t if (params.threshold > 0) {\n\t if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n\t if (!data.allowThresholdMove) {\n\t data.allowThresholdMove = true;\n\t touches.startX = touches.currentX;\n\t touches.startY = touches.currentY;\n\t data.currentTranslate = data.startTranslate;\n\t touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n\t return;\n\t }\n\t } else {\n\t data.currentTranslate = data.startTranslate;\n\t return;\n\t }\n\t }\n\n\t if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n\t if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n\t swiper.updateActiveIndex();\n\t swiper.updateSlidesClasses();\n\t }\n\n\t if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n\t swiper.freeMode.onTouchMove();\n\t } // Update progress\n\n\n\t swiper.updateProgress(data.currentTranslate); // Update translate\n\n\t swiper.setTranslate(data.currentTranslate);\n\t}\n\n\tfunction onTouchEnd(event) {\n\t const swiper = this;\n\t const data = swiper.touchEventsData;\n\t const {\n\t params,\n\t touches,\n\t rtlTranslate: rtl,\n\t slidesGrid,\n\t enabled\n\t } = swiper;\n\t if (!enabled) return;\n\t let e = event;\n\t if (e.originalEvent) e = e.originalEvent;\n\n\t if (data.allowTouchCallbacks) {\n\t swiper.emit('touchEnd', e);\n\t }\n\n\t data.allowTouchCallbacks = false;\n\n\t if (!data.isTouched) {\n\t if (data.isMoved && params.grabCursor) {\n\t swiper.setGrabCursor(false);\n\t }\n\n\t data.isMoved = false;\n\t data.startMoving = false;\n\t return;\n\t } // Return Grab Cursor\n\n\n\t if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n\t swiper.setGrabCursor(false);\n\t } // Time diff\n\n\n\t const touchEndTime = now();\n\t const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n\t if (swiper.allowClick) {\n\t const pathTree = e.path || e.composedPath && e.composedPath();\n\t swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n\t swiper.emit('tap click', e);\n\n\t if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n\t swiper.emit('doubleTap doubleClick', e);\n\t }\n\t }\n\n\t data.lastClickTime = now();\n\t nextTick(() => {\n\t if (!swiper.destroyed) swiper.allowClick = true;\n\t });\n\n\t if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n\t data.isTouched = false;\n\t data.isMoved = false;\n\t data.startMoving = false;\n\t return;\n\t }\n\n\t data.isTouched = false;\n\t data.isMoved = false;\n\t data.startMoving = false;\n\t let currentPos;\n\n\t if (params.followFinger) {\n\t currentPos = rtl ? swiper.translate : -swiper.translate;\n\t } else {\n\t currentPos = -data.currentTranslate;\n\t }\n\n\t if (params.cssMode) {\n\t return;\n\t }\n\n\t if (swiper.params.freeMode && params.freeMode.enabled) {\n\t swiper.freeMode.onTouchEnd({\n\t currentPos\n\t });\n\t return;\n\t } // Find current slide\n\n\n\t let stopIndex = 0;\n\t let groupSize = swiper.slidesSizesGrid[0];\n\n\t for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n\t const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n\t if (typeof slidesGrid[i + increment] !== 'undefined') {\n\t if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n\t stopIndex = i;\n\t groupSize = slidesGrid[i + increment] - slidesGrid[i];\n\t }\n\t } else if (currentPos >= slidesGrid[i]) {\n\t stopIndex = i;\n\t groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n\t }\n\t }\n\n\t let rewindFirstIndex = null;\n\t let rewindLastIndex = null;\n\n\t if (params.rewind) {\n\t if (swiper.isBeginning) {\n\t rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n\t } else if (swiper.isEnd) {\n\t rewindFirstIndex = 0;\n\t }\n\t } // Find current slide size\n\n\n\t const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n\t const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n\t if (timeDiff > params.longSwipesMs) {\n\t // Long touches\n\t if (!params.longSwipes) {\n\t swiper.slideTo(swiper.activeIndex);\n\t return;\n\t }\n\n\t if (swiper.swipeDirection === 'next') {\n\t if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n\t }\n\n\t if (swiper.swipeDirection === 'prev') {\n\t if (ratio > 1 - params.longSwipesRatio) {\n\t swiper.slideTo(stopIndex + increment);\n\t } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n\t swiper.slideTo(rewindLastIndex);\n\t } else {\n\t swiper.slideTo(stopIndex);\n\t }\n\t }\n\t } else {\n\t // Short swipes\n\t if (!params.shortSwipes) {\n\t swiper.slideTo(swiper.activeIndex);\n\t return;\n\t }\n\n\t const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n\t if (!isNavButtonTarget) {\n\t if (swiper.swipeDirection === 'next') {\n\t swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n\t }\n\n\t if (swiper.swipeDirection === 'prev') {\n\t swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n\t }\n\t } else if (e.target === swiper.navigation.nextEl) {\n\t swiper.slideTo(stopIndex + increment);\n\t } else {\n\t swiper.slideTo(stopIndex);\n\t }\n\t }\n\t}\n\n\tfunction onResize() {\n\t const swiper = this;\n\t const {\n\t params,\n\t el\n\t } = swiper;\n\t if (el && el.offsetWidth === 0) return; // Breakpoints\n\n\t if (params.breakpoints) {\n\t swiper.setBreakpoint();\n\t } // Save locks\n\n\n\t const {\n\t allowSlideNext,\n\t allowSlidePrev,\n\t snapGrid\n\t } = swiper; // Disable locks on resize\n\n\t swiper.allowSlideNext = true;\n\t swiper.allowSlidePrev = true;\n\t swiper.updateSize();\n\t swiper.updateSlides();\n\t swiper.updateSlidesClasses();\n\n\t if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n\t swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n\t } else {\n\t swiper.slideTo(swiper.activeIndex, 0, false, true);\n\t }\n\n\t if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n\t swiper.autoplay.run();\n\t } // Return locks after resize\n\n\n\t swiper.allowSlidePrev = allowSlidePrev;\n\t swiper.allowSlideNext = allowSlideNext;\n\n\t if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n\t swiper.checkOverflow();\n\t }\n\t}\n\n\tfunction onClick(e) {\n\t const swiper = this;\n\t if (!swiper.enabled) return;\n\n\t if (!swiper.allowClick) {\n\t if (swiper.params.preventClicks) e.preventDefault();\n\n\t if (swiper.params.preventClicksPropagation && swiper.animating) {\n\t e.stopPropagation();\n\t e.stopImmediatePropagation();\n\t }\n\t }\n\t}\n\n\tfunction onScroll() {\n\t const swiper = this;\n\t const {\n\t wrapperEl,\n\t rtlTranslate,\n\t enabled\n\t } = swiper;\n\t if (!enabled) return;\n\t swiper.previousTranslate = swiper.translate;\n\n\t if (swiper.isHorizontal()) {\n\t swiper.translate = -wrapperEl.scrollLeft;\n\t } else {\n\t swiper.translate = -wrapperEl.scrollTop;\n\t } // eslint-disable-next-line\n\n\n\t if (swiper.translate === 0) swiper.translate = 0;\n\t swiper.updateActiveIndex();\n\t swiper.updateSlidesClasses();\n\t let newProgress;\n\t const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n\t if (translatesDiff === 0) {\n\t newProgress = 0;\n\t } else {\n\t newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n\t }\n\n\t if (newProgress !== swiper.progress) {\n\t swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n\t }\n\n\t swiper.emit('setTranslate', swiper.translate, false);\n\t}\n\n\tlet dummyEventAttached = false;\n\n\tfunction dummyEventListener() {}\n\n\tconst events = (swiper, method) => {\n\t const document = getDocument();\n\t const {\n\t params,\n\t touchEvents,\n\t el,\n\t wrapperEl,\n\t device,\n\t support\n\t } = swiper;\n\t const capture = !!params.nested;\n\t const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\t const swiperMethod = method; // Touch Events\n\n\t if (!support.touch) {\n\t el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n\t document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n\t document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n\t } else {\n\t const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n\t passive: true,\n\t capture: false\n\t } : false;\n\t el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n\t el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n\t passive: false,\n\t capture\n\t } : capture);\n\t el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n\t if (touchEvents.cancel) {\n\t el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n\t }\n\t } // Prevent Links Clicks\n\n\n\t if (params.preventClicks || params.preventClicksPropagation) {\n\t el[domMethod]('click', swiper.onClick, true);\n\t }\n\n\t if (params.cssMode) {\n\t wrapperEl[domMethod]('scroll', swiper.onScroll);\n\t } // Resize handler\n\n\n\t if (params.updateOnWindowResize) {\n\t swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n\t } else {\n\t swiper[swiperMethod]('observerUpdate', onResize, true);\n\t }\n\t};\n\n\tfunction attachEvents() {\n\t const swiper = this;\n\t const document = getDocument();\n\t const {\n\t params,\n\t support\n\t } = swiper;\n\t swiper.onTouchStart = onTouchStart.bind(swiper);\n\t swiper.onTouchMove = onTouchMove.bind(swiper);\n\t swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n\t if (params.cssMode) {\n\t swiper.onScroll = onScroll.bind(swiper);\n\t }\n\n\t swiper.onClick = onClick.bind(swiper);\n\n\t if (support.touch && !dummyEventAttached) {\n\t document.addEventListener('touchstart', dummyEventListener);\n\t dummyEventAttached = true;\n\t }\n\n\t events(swiper, 'on');\n\t}\n\n\tfunction detachEvents() {\n\t const swiper = this;\n\t events(swiper, 'off');\n\t}\n\n\tvar events$1 = {\n\t attachEvents,\n\t detachEvents\n\t};\n\n\tconst isGridEnabled = (swiper, params) => {\n\t return swiper.grid && params.grid && params.grid.rows > 1;\n\t};\n\n\tfunction setBreakpoint() {\n\t const swiper = this;\n\t const {\n\t activeIndex,\n\t initialized,\n\t loopedSlides = 0,\n\t params,\n\t $el\n\t } = swiper;\n\t const breakpoints = params.breakpoints;\n\t if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n\t const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n\t if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n\t const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\t const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n\t const wasMultiRow = isGridEnabled(swiper, params);\n\t const isMultiRow = isGridEnabled(swiper, breakpointParams);\n\t const wasEnabled = params.enabled;\n\n\t if (wasMultiRow && !isMultiRow) {\n\t $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n\t swiper.emitContainerClasses();\n\t } else if (!wasMultiRow && isMultiRow) {\n\t $el.addClass(`${params.containerModifierClass}grid`);\n\n\t if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n\t $el.addClass(`${params.containerModifierClass}grid-column`);\n\t }\n\n\t swiper.emitContainerClasses();\n\t } // Toggle navigation, pagination, scrollbar\n\n\n\t ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n\t const wasModuleEnabled = params[prop] && params[prop].enabled;\n\t const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n\t if (wasModuleEnabled && !isModuleEnabled) {\n\t swiper[prop].disable();\n\t }\n\n\t if (!wasModuleEnabled && isModuleEnabled) {\n\t swiper[prop].enable();\n\t }\n\t });\n\t const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n\t const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n\t if (directionChanged && initialized) {\n\t swiper.changeDirection();\n\t }\n\n\t extend$1(swiper.params, breakpointParams);\n\t const isEnabled = swiper.params.enabled;\n\t Object.assign(swiper, {\n\t allowTouchMove: swiper.params.allowTouchMove,\n\t allowSlideNext: swiper.params.allowSlideNext,\n\t allowSlidePrev: swiper.params.allowSlidePrev\n\t });\n\n\t if (wasEnabled && !isEnabled) {\n\t swiper.disable();\n\t } else if (!wasEnabled && isEnabled) {\n\t swiper.enable();\n\t }\n\n\t swiper.currentBreakpoint = breakpoint;\n\t swiper.emit('_beforeBreakpoint', breakpointParams);\n\n\t if (needsReLoop && initialized) {\n\t swiper.loopDestroy();\n\t swiper.loopCreate();\n\t swiper.updateSlides();\n\t swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n\t }\n\n\t swiper.emit('breakpoint', breakpointParams);\n\t}\n\n\tfunction getBreakpoint(breakpoints, base, containerEl) {\n\t if (base === void 0) {\n\t base = 'window';\n\t }\n\n\t if (!breakpoints || base === 'container' && !containerEl) return undefined;\n\t let breakpoint = false;\n\t const window = getWindow();\n\t const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n\t const points = Object.keys(breakpoints).map(point => {\n\t if (typeof point === 'string' && point.indexOf('@') === 0) {\n\t const minRatio = parseFloat(point.substr(1));\n\t const value = currentHeight * minRatio;\n\t return {\n\t value,\n\t point\n\t };\n\t }\n\n\t return {\n\t value: point,\n\t point\n\t };\n\t });\n\t points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n\t for (let i = 0; i < points.length; i += 1) {\n\t const {\n\t point,\n\t value\n\t } = points[i];\n\n\t if (base === 'window') {\n\t if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n\t breakpoint = point;\n\t }\n\t } else if (value <= containerEl.clientWidth) {\n\t breakpoint = point;\n\t }\n\t }\n\n\t return breakpoint || 'max';\n\t}\n\n\tvar breakpoints = {\n\t setBreakpoint,\n\t getBreakpoint\n\t};\n\n\tfunction prepareClasses(entries, prefix) {\n\t const resultClasses = [];\n\t entries.forEach(item => {\n\t if (typeof item === 'object') {\n\t Object.keys(item).forEach(classNames => {\n\t if (item[classNames]) {\n\t resultClasses.push(prefix + classNames);\n\t }\n\t });\n\t } else if (typeof item === 'string') {\n\t resultClasses.push(prefix + item);\n\t }\n\t });\n\t return resultClasses;\n\t}\n\n\tfunction addClasses() {\n\t const swiper = this;\n\t const {\n\t classNames,\n\t params,\n\t rtl,\n\t $el,\n\t device,\n\t support\n\t } = swiper; // prettier-ignore\n\n\t const suffixes = prepareClasses(['initialized', params.direction, {\n\t 'pointer-events': !support.touch\n\t }, {\n\t 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n\t }, {\n\t 'autoheight': params.autoHeight\n\t }, {\n\t 'rtl': rtl\n\t }, {\n\t 'grid': params.grid && params.grid.rows > 1\n\t }, {\n\t 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n\t }, {\n\t 'android': device.android\n\t }, {\n\t 'ios': device.ios\n\t }, {\n\t 'css-mode': params.cssMode\n\t }, {\n\t 'centered': params.cssMode && params.centeredSlides\n\t }, {\n\t 'watch-progress': params.watchSlidesProgress\n\t }], params.containerModifierClass);\n\t classNames.push(...suffixes);\n\t $el.addClass([...classNames].join(' '));\n\t swiper.emitContainerClasses();\n\t}\n\n\tfunction removeClasses() {\n\t const swiper = this;\n\t const {\n\t $el,\n\t classNames\n\t } = swiper;\n\t $el.removeClass(classNames.join(' '));\n\t swiper.emitContainerClasses();\n\t}\n\n\tvar classes = {\n\t addClasses,\n\t removeClasses\n\t};\n\n\tfunction loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n\t const window = getWindow();\n\t let image;\n\n\t function onReady() {\n\t if (callback) callback();\n\t }\n\n\t const isPicture = $$2(imageEl).parent('picture')[0];\n\n\t if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n\t if (src) {\n\t image = new window.Image();\n\t image.onload = onReady;\n\t image.onerror = onReady;\n\n\t if (sizes) {\n\t image.sizes = sizes;\n\t }\n\n\t if (srcset) {\n\t image.srcset = srcset;\n\t }\n\n\t if (src) {\n\t image.src = src;\n\t }\n\t } else {\n\t onReady();\n\t }\n\t } else {\n\t // image already loaded...\n\t onReady();\n\t }\n\t}\n\n\tfunction preloadImages() {\n\t const swiper = this;\n\t swiper.imagesToLoad = swiper.$el.find('img');\n\n\t function onReady() {\n\t if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n\t if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n\t if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n\t if (swiper.params.updateOnImagesReady) swiper.update();\n\t swiper.emit('imagesReady');\n\t }\n\t }\n\n\t for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n\t const imageEl = swiper.imagesToLoad[i];\n\t swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n\t }\n\t}\n\n\tvar images = {\n\t loadImage,\n\t preloadImages\n\t};\n\n\tfunction checkOverflow() {\n\t const swiper = this;\n\t const {\n\t isLocked: wasLocked,\n\t params\n\t } = swiper;\n\t const {\n\t slidesOffsetBefore\n\t } = params;\n\n\t if (slidesOffsetBefore) {\n\t const lastSlideIndex = swiper.slides.length - 1;\n\t const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n\t swiper.isLocked = swiper.size > lastSlideRightEdge;\n\t } else {\n\t swiper.isLocked = swiper.snapGrid.length === 1;\n\t }\n\n\t if (params.allowSlideNext === true) {\n\t swiper.allowSlideNext = !swiper.isLocked;\n\t }\n\n\t if (params.allowSlidePrev === true) {\n\t swiper.allowSlidePrev = !swiper.isLocked;\n\t }\n\n\t if (wasLocked && wasLocked !== swiper.isLocked) {\n\t swiper.isEnd = false;\n\t }\n\n\t if (wasLocked !== swiper.isLocked) {\n\t swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\t }\n\t}\n\n\tvar checkOverflow$1 = {\n\t checkOverflow\n\t};\n\n\tvar defaults = {\n\t init: true,\n\t direction: 'horizontal',\n\t touchEventsTarget: 'wrapper',\n\t initialSlide: 0,\n\t speed: 300,\n\t cssMode: false,\n\t updateOnWindowResize: true,\n\t resizeObserver: true,\n\t nested: false,\n\t createElements: false,\n\t enabled: true,\n\t focusableElements: 'input, select, option, textarea, button, video, label',\n\t // Overrides\n\t width: null,\n\t height: null,\n\t //\n\t preventInteractionOnTransition: false,\n\t // ssr\n\t userAgent: null,\n\t url: null,\n\t // To support iOS's swipe-to-go-back gesture (when being used in-app).\n\t edgeSwipeDetection: false,\n\t edgeSwipeThreshold: 20,\n\t // Autoheight\n\t autoHeight: false,\n\t // Set wrapper width\n\t setWrapperSize: false,\n\t // Virtual Translate\n\t virtualTranslate: false,\n\t // Effects\n\t effect: 'slide',\n\t // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\t // Breakpoints\n\t breakpoints: undefined,\n\t breakpointsBase: 'window',\n\t // Slides grid\n\t spaceBetween: 0,\n\t slidesPerView: 1,\n\t slidesPerGroup: 1,\n\t slidesPerGroupSkip: 0,\n\t slidesPerGroupAuto: false,\n\t centeredSlides: false,\n\t centeredSlidesBounds: false,\n\t slidesOffsetBefore: 0,\n\t // in px\n\t slidesOffsetAfter: 0,\n\t // in px\n\t normalizeSlideIndex: true,\n\t centerInsufficientSlides: false,\n\t // Disable swiper and hide navigation when container not overflow\n\t watchOverflow: true,\n\t // Round length\n\t roundLengths: false,\n\t // Touches\n\t touchRatio: 1,\n\t touchAngle: 45,\n\t simulateTouch: true,\n\t shortSwipes: true,\n\t longSwipes: true,\n\t longSwipesRatio: 0.5,\n\t longSwipesMs: 300,\n\t followFinger: true,\n\t allowTouchMove: true,\n\t threshold: 0,\n\t touchMoveStopPropagation: false,\n\t touchStartPreventDefault: true,\n\t touchStartForcePreventDefault: false,\n\t touchReleaseOnEdges: false,\n\t // Unique Navigation Elements\n\t uniqueNavElements: true,\n\t // Resistance\n\t resistance: true,\n\t resistanceRatio: 0.85,\n\t // Progress\n\t watchSlidesProgress: false,\n\t // Cursor\n\t grabCursor: false,\n\t // Clicks\n\t preventClicks: true,\n\t preventClicksPropagation: true,\n\t slideToClickedSlide: false,\n\t // Images\n\t preloadImages: true,\n\t updateOnImagesReady: true,\n\t // loop\n\t loop: false,\n\t loopAdditionalSlides: 0,\n\t loopedSlides: null,\n\t loopedSlidesLimit: true,\n\t loopFillGroupWithBlank: false,\n\t loopPreventsSlide: true,\n\t // rewind\n\t rewind: false,\n\t // Swiping/no swiping\n\t allowSlidePrev: true,\n\t allowSlideNext: true,\n\t swipeHandler: null,\n\t // '.swipe-handler',\n\t noSwiping: true,\n\t noSwipingClass: 'swiper-no-swiping',\n\t noSwipingSelector: null,\n\t // Passive Listeners\n\t passiveListeners: true,\n\t maxBackfaceHiddenSlides: 10,\n\t // NS\n\t containerModifierClass: 'swiper-',\n\t // NEW\n\t slideClass: 'swiper-slide',\n\t slideBlankClass: 'swiper-slide-invisible-blank',\n\t slideActiveClass: 'swiper-slide-active',\n\t slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n\t slideVisibleClass: 'swiper-slide-visible',\n\t slideDuplicateClass: 'swiper-slide-duplicate',\n\t slideNextClass: 'swiper-slide-next',\n\t slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n\t slidePrevClass: 'swiper-slide-prev',\n\t slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n\t wrapperClass: 'swiper-wrapper',\n\t // Callbacks\n\t runCallbacksOnInit: true,\n\t // Internals\n\t _emitClasses: false\n\t};\n\n\tfunction moduleExtendParams(params, allModulesParams) {\n\t return function extendParams(obj) {\n\t if (obj === void 0) {\n\t obj = {};\n\t }\n\n\t const moduleParamName = Object.keys(obj)[0];\n\t const moduleParams = obj[moduleParamName];\n\n\t if (typeof moduleParams !== 'object' || moduleParams === null) {\n\t extend$1(allModulesParams, obj);\n\t return;\n\t }\n\n\t if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n\t params[moduleParamName] = {\n\t auto: true\n\t };\n\t }\n\n\t if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n\t extend$1(allModulesParams, obj);\n\t return;\n\t }\n\n\t if (params[moduleParamName] === true) {\n\t params[moduleParamName] = {\n\t enabled: true\n\t };\n\t }\n\n\t if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n\t params[moduleParamName].enabled = true;\n\t }\n\n\t if (!params[moduleParamName]) params[moduleParamName] = {\n\t enabled: false\n\t };\n\t extend$1(allModulesParams, obj);\n\t };\n\t}\n\n\t/* eslint no-param-reassign: \"off\" */\n\tconst prototypes = {\n\t eventsEmitter,\n\t update,\n\t translate,\n\t transition: transition$1,\n\t slide,\n\t loop,\n\t grabCursor,\n\t events: events$1,\n\t breakpoints,\n\t checkOverflow: checkOverflow$1,\n\t classes,\n\t images\n\t};\n\tconst extendedDefaults = {};\n\n\tclass Swiper {\n\t constructor() {\n\t let el;\n\t let params;\n\n\t for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\n\t if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n\t params = args[0];\n\t } else {\n\t [el, params] = args;\n\t }\n\n\t if (!params) params = {};\n\t params = extend$1({}, params);\n\t if (el && !params.el) params.el = el;\n\n\t if (params.el && $$2(params.el).length > 1) {\n\t const swipers = [];\n\t $$2(params.el).each(containerEl => {\n\t const newParams = extend$1({}, params, {\n\t el: containerEl\n\t });\n\t swipers.push(new Swiper(newParams));\n\t });\n\t return swipers;\n\t } // Swiper Instance\n\n\n\t const swiper = this;\n\t swiper.__swiper__ = true;\n\t swiper.support = getSupport();\n\t swiper.device = getDevice({\n\t userAgent: params.userAgent\n\t });\n\t swiper.browser = getBrowser();\n\t swiper.eventsListeners = {};\n\t swiper.eventsAnyListeners = [];\n\t swiper.modules = [...swiper.__modules__];\n\n\t if (params.modules && Array.isArray(params.modules)) {\n\t swiper.modules.push(...params.modules);\n\t }\n\n\t const allModulesParams = {};\n\t swiper.modules.forEach(mod => {\n\t mod({\n\t swiper,\n\t extendParams: moduleExtendParams(params, allModulesParams),\n\t on: swiper.on.bind(swiper),\n\t once: swiper.once.bind(swiper),\n\t off: swiper.off.bind(swiper),\n\t emit: swiper.emit.bind(swiper)\n\t });\n\t }); // Extend defaults with modules params\n\n\t const swiperParams = extend$1({}, defaults, allModulesParams); // Extend defaults with passed params\n\n\t swiper.params = extend$1({}, swiperParams, extendedDefaults, params);\n\t swiper.originalParams = extend$1({}, swiper.params);\n\t swiper.passedParams = extend$1({}, params); // add event listeners\n\n\t if (swiper.params && swiper.params.on) {\n\t Object.keys(swiper.params.on).forEach(eventName => {\n\t swiper.on(eventName, swiper.params.on[eventName]);\n\t });\n\t }\n\n\t if (swiper.params && swiper.params.onAny) {\n\t swiper.onAny(swiper.params.onAny);\n\t } // Save Dom lib\n\n\n\t swiper.$ = $$2; // Extend Swiper\n\n\t Object.assign(swiper, {\n\t enabled: swiper.params.enabled,\n\t el,\n\t // Classes\n\t classNames: [],\n\t // Slides\n\t slides: $$2(),\n\t slidesGrid: [],\n\t snapGrid: [],\n\t slidesSizesGrid: [],\n\n\t // isDirection\n\t isHorizontal() {\n\t return swiper.params.direction === 'horizontal';\n\t },\n\n\t isVertical() {\n\t return swiper.params.direction === 'vertical';\n\t },\n\n\t // Indexes\n\t activeIndex: 0,\n\t realIndex: 0,\n\t //\n\t isBeginning: true,\n\t isEnd: false,\n\t // Props\n\t translate: 0,\n\t previousTranslate: 0,\n\t progress: 0,\n\t velocity: 0,\n\t animating: false,\n\t // Locks\n\t allowSlideNext: swiper.params.allowSlideNext,\n\t allowSlidePrev: swiper.params.allowSlidePrev,\n\t // Touch Events\n\t touchEvents: function touchEvents() {\n\t const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n\t const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n\t swiper.touchEventsTouch = {\n\t start: touch[0],\n\t move: touch[1],\n\t end: touch[2],\n\t cancel: touch[3]\n\t };\n\t swiper.touchEventsDesktop = {\n\t start: desktop[0],\n\t move: desktop[1],\n\t end: desktop[2]\n\t };\n\t return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n\t }(),\n\t touchEventsData: {\n\t isTouched: undefined,\n\t isMoved: undefined,\n\t allowTouchCallbacks: undefined,\n\t touchStartTime: undefined,\n\t isScrolling: undefined,\n\t currentTranslate: undefined,\n\t startTranslate: undefined,\n\t allowThresholdMove: undefined,\n\t // Form elements to match\n\t focusableElements: swiper.params.focusableElements,\n\t // Last click time\n\t lastClickTime: now(),\n\t clickTimeout: undefined,\n\t // Velocities\n\t velocities: [],\n\t allowMomentumBounce: undefined,\n\t isTouchEvent: undefined,\n\t startMoving: undefined\n\t },\n\t // Clicks\n\t allowClick: true,\n\t // Touches\n\t allowTouchMove: swiper.params.allowTouchMove,\n\t touches: {\n\t startX: 0,\n\t startY: 0,\n\t currentX: 0,\n\t currentY: 0,\n\t diff: 0\n\t },\n\t // Images\n\t imagesToLoad: [],\n\t imagesLoaded: 0\n\t });\n\t swiper.emit('_swiper'); // Init\n\n\t if (swiper.params.init) {\n\t swiper.init();\n\t } // Return app instance\n\n\n\t return swiper;\n\t }\n\n\t enable() {\n\t const swiper = this;\n\t if (swiper.enabled) return;\n\t swiper.enabled = true;\n\n\t if (swiper.params.grabCursor) {\n\t swiper.setGrabCursor();\n\t }\n\n\t swiper.emit('enable');\n\t }\n\n\t disable() {\n\t const swiper = this;\n\t if (!swiper.enabled) return;\n\t swiper.enabled = false;\n\n\t if (swiper.params.grabCursor) {\n\t swiper.unsetGrabCursor();\n\t }\n\n\t swiper.emit('disable');\n\t }\n\n\t setProgress(progress, speed) {\n\t const swiper = this;\n\t progress = Math.min(Math.max(progress, 0), 1);\n\t const min = swiper.minTranslate();\n\t const max = swiper.maxTranslate();\n\t const current = (max - min) * progress + min;\n\t swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n\t swiper.updateActiveIndex();\n\t swiper.updateSlidesClasses();\n\t }\n\n\t emitContainerClasses() {\n\t const swiper = this;\n\t if (!swiper.params._emitClasses || !swiper.el) return;\n\t const cls = swiper.el.className.split(' ').filter(className => {\n\t return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n\t });\n\t swiper.emit('_containerClasses', cls.join(' '));\n\t }\n\n\t getSlideClasses(slideEl) {\n\t const swiper = this;\n\t if (swiper.destroyed) return '';\n\t return slideEl.className.split(' ').filter(className => {\n\t return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n\t }).join(' ');\n\t }\n\n\t emitSlidesClasses() {\n\t const swiper = this;\n\t if (!swiper.params._emitClasses || !swiper.el) return;\n\t const updates = [];\n\t swiper.slides.each(slideEl => {\n\t const classNames = swiper.getSlideClasses(slideEl);\n\t updates.push({\n\t slideEl,\n\t classNames\n\t });\n\t swiper.emit('_slideClass', slideEl, classNames);\n\t });\n\t swiper.emit('_slideClasses', updates);\n\t }\n\n\t slidesPerViewDynamic(view, exact) {\n\t if (view === void 0) {\n\t view = 'current';\n\t }\n\n\t if (exact === void 0) {\n\t exact = false;\n\t }\n\n\t const swiper = this;\n\t const {\n\t params,\n\t slides,\n\t slidesGrid,\n\t slidesSizesGrid,\n\t size: swiperSize,\n\t activeIndex\n\t } = swiper;\n\t let spv = 1;\n\n\t if (params.centeredSlides) {\n\t let slideSize = slides[activeIndex].swiperSlideSize;\n\t let breakLoop;\n\n\t for (let i = activeIndex + 1; i < slides.length; i += 1) {\n\t if (slides[i] && !breakLoop) {\n\t slideSize += slides[i].swiperSlideSize;\n\t spv += 1;\n\t if (slideSize > swiperSize) breakLoop = true;\n\t }\n\t }\n\n\t for (let i = activeIndex - 1; i >= 0; i -= 1) {\n\t if (slides[i] && !breakLoop) {\n\t slideSize += slides[i].swiperSlideSize;\n\t spv += 1;\n\t if (slideSize > swiperSize) breakLoop = true;\n\t }\n\t }\n\t } else {\n\t // eslint-disable-next-line\n\t if (view === 'current') {\n\t for (let i = activeIndex + 1; i < slides.length; i += 1) {\n\t const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n\t if (slideInView) {\n\t spv += 1;\n\t }\n\t }\n\t } else {\n\t // previous\n\t for (let i = activeIndex - 1; i >= 0; i -= 1) {\n\t const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n\t if (slideInView) {\n\t spv += 1;\n\t }\n\t }\n\t }\n\t }\n\n\t return spv;\n\t }\n\n\t update() {\n\t const swiper = this;\n\t if (!swiper || swiper.destroyed) return;\n\t const {\n\t snapGrid,\n\t params\n\t } = swiper; // Breakpoints\n\n\t if (params.breakpoints) {\n\t swiper.setBreakpoint();\n\t }\n\n\t swiper.updateSize();\n\t swiper.updateSlides();\n\t swiper.updateProgress();\n\t swiper.updateSlidesClasses();\n\n\t function setTranslate() {\n\t const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n\t const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n\t swiper.setTranslate(newTranslate);\n\t swiper.updateActiveIndex();\n\t swiper.updateSlidesClasses();\n\t }\n\n\t let translated;\n\n\t if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n\t setTranslate();\n\n\t if (swiper.params.autoHeight) {\n\t swiper.updateAutoHeight();\n\t }\n\t } else {\n\t if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n\t translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n\t } else {\n\t translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n\t }\n\n\t if (!translated) {\n\t setTranslate();\n\t }\n\t }\n\n\t if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n\t swiper.checkOverflow();\n\t }\n\n\t swiper.emit('update');\n\t }\n\n\t changeDirection(newDirection, needUpdate) {\n\t if (needUpdate === void 0) {\n\t needUpdate = true;\n\t }\n\n\t const swiper = this;\n\t const currentDirection = swiper.params.direction;\n\n\t if (!newDirection) {\n\t // eslint-disable-next-line\n\t newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n\t }\n\n\t if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n\t return swiper;\n\t }\n\n\t swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n\t swiper.emitContainerClasses();\n\t swiper.params.direction = newDirection;\n\t swiper.slides.each(slideEl => {\n\t if (newDirection === 'vertical') {\n\t slideEl.style.width = '';\n\t } else {\n\t slideEl.style.height = '';\n\t }\n\t });\n\t swiper.emit('changeDirection');\n\t if (needUpdate) swiper.update();\n\t return swiper;\n\t }\n\n\t changeLanguageDirection(direction) {\n\t const swiper = this;\n\t if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n\t swiper.rtl = direction === 'rtl';\n\t swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n\t if (swiper.rtl) {\n\t swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n\t swiper.el.dir = 'rtl';\n\t } else {\n\t swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n\t swiper.el.dir = 'ltr';\n\t }\n\n\t swiper.update();\n\t }\n\n\t mount(el) {\n\t const swiper = this;\n\t if (swiper.mounted) return true; // Find el\n\n\t const $el = $$2(el || swiper.params.el);\n\t el = $el[0];\n\n\t if (!el) {\n\t return false;\n\t }\n\n\t el.swiper = swiper;\n\n\t const getWrapperSelector = () => {\n\t return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n\t };\n\n\t const getWrapper = () => {\n\t if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n\t const res = $$2(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n\t res.children = options => $el.children(options);\n\n\t return res;\n\t }\n\n\t if (!$el.children) {\n\t return $$2($el).children(getWrapperSelector());\n\t }\n\n\t return $el.children(getWrapperSelector());\n\t }; // Find Wrapper\n\n\n\t let $wrapperEl = getWrapper();\n\n\t if ($wrapperEl.length === 0 && swiper.params.createElements) {\n\t const document = getDocument();\n\t const wrapper = document.createElement('div');\n\t $wrapperEl = $$2(wrapper);\n\t wrapper.className = swiper.params.wrapperClass;\n\t $el.append(wrapper);\n\t $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n\t $wrapperEl.append(slideEl);\n\t });\n\t }\n\n\t Object.assign(swiper, {\n\t $el,\n\t el,\n\t $wrapperEl,\n\t wrapperEl: $wrapperEl[0],\n\t mounted: true,\n\t // RTL\n\t rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n\t rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n\t wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n\t });\n\t return true;\n\t }\n\n\t init(el) {\n\t const swiper = this;\n\t if (swiper.initialized) return swiper;\n\t const mounted = swiper.mount(el);\n\t if (mounted === false) return swiper;\n\t swiper.emit('beforeInit'); // Set breakpoint\n\n\t if (swiper.params.breakpoints) {\n\t swiper.setBreakpoint();\n\t } // Add Classes\n\n\n\t swiper.addClasses(); // Create loop\n\n\t if (swiper.params.loop) {\n\t swiper.loopCreate();\n\t } // Update size\n\n\n\t swiper.updateSize(); // Update slides\n\n\t swiper.updateSlides();\n\n\t if (swiper.params.watchOverflow) {\n\t swiper.checkOverflow();\n\t } // Set Grab Cursor\n\n\n\t if (swiper.params.grabCursor && swiper.enabled) {\n\t swiper.setGrabCursor();\n\t }\n\n\t if (swiper.params.preloadImages) {\n\t swiper.preloadImages();\n\t } // Slide To Initial Slide\n\n\n\t if (swiper.params.loop) {\n\t swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n\t } else {\n\t swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n\t } // Attach events\n\n\n\t swiper.attachEvents(); // Init Flag\n\n\t swiper.initialized = true; // Emit\n\n\t swiper.emit('init');\n\t swiper.emit('afterInit');\n\t return swiper;\n\t }\n\n\t destroy(deleteInstance, cleanStyles) {\n\t if (deleteInstance === void 0) {\n\t deleteInstance = true;\n\t }\n\n\t if (cleanStyles === void 0) {\n\t cleanStyles = true;\n\t }\n\n\t const swiper = this;\n\t const {\n\t params,\n\t $el,\n\t $wrapperEl,\n\t slides\n\t } = swiper;\n\n\t if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n\t return null;\n\t }\n\n\t swiper.emit('beforeDestroy'); // Init Flag\n\n\t swiper.initialized = false; // Detach events\n\n\t swiper.detachEvents(); // Destroy loop\n\n\t if (params.loop) {\n\t swiper.loopDestroy();\n\t } // Cleanup styles\n\n\n\t if (cleanStyles) {\n\t swiper.removeClasses();\n\t $el.removeAttr('style');\n\t $wrapperEl.removeAttr('style');\n\n\t if (slides && slides.length) {\n\t slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n\t }\n\t }\n\n\t swiper.emit('destroy'); // Detach emitter events\n\n\t Object.keys(swiper.eventsListeners).forEach(eventName => {\n\t swiper.off(eventName);\n\t });\n\n\t if (deleteInstance !== false) {\n\t swiper.$el[0].swiper = null;\n\t deleteProps(swiper);\n\t }\n\n\t swiper.destroyed = true;\n\t return null;\n\t }\n\n\t static extendDefaults(newDefaults) {\n\t extend$1(extendedDefaults, newDefaults);\n\t }\n\n\t static get extendedDefaults() {\n\t return extendedDefaults;\n\t }\n\n\t static get defaults() {\n\t return defaults;\n\t }\n\n\t static installModule(mod) {\n\t if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n\t const modules = Swiper.prototype.__modules__;\n\n\t if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n\t modules.push(mod);\n\t }\n\t }\n\n\t static use(module) {\n\t if (Array.isArray(module)) {\n\t module.forEach(m => Swiper.installModule(m));\n\t return Swiper;\n\t }\n\n\t Swiper.installModule(module);\n\t return Swiper;\n\t }\n\n\t}\n\n\tObject.keys(prototypes).forEach(prototypeGroup => {\n\t Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n\t Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n\t });\n\t});\n\tSwiper.use([Resize, Observer]);\n\n\tfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n\t const document = getDocument();\n\n\t if (swiper.params.createElements) {\n\t Object.keys(checkProps).forEach(key => {\n\t if (!params[key] && params.auto === true) {\n\t let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n\t if (!element) {\n\t element = document.createElement('div');\n\t element.className = checkProps[key];\n\t swiper.$el.append(element);\n\t }\n\n\t params[key] = element;\n\t originalParams[key] = element;\n\t }\n\t });\n\t }\n\n\t return params;\n\t}\n\n\tfunction Navigation(_ref) {\n\t let {\n\t swiper,\n\t extendParams,\n\t on,\n\t emit\n\t } = _ref;\n\t extendParams({\n\t navigation: {\n\t nextEl: null,\n\t prevEl: null,\n\t hideOnClick: false,\n\t disabledClass: 'swiper-button-disabled',\n\t hiddenClass: 'swiper-button-hidden',\n\t lockClass: 'swiper-button-lock',\n\t navigationDisabledClass: 'swiper-navigation-disabled'\n\t }\n\t });\n\t swiper.navigation = {\n\t nextEl: null,\n\t $nextEl: null,\n\t prevEl: null,\n\t $prevEl: null\n\t };\n\n\t function getEl(el) {\n\t let $el;\n\n\t if (el) {\n\t $el = $$2(el);\n\n\t if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n\t $el = swiper.$el.find(el);\n\t }\n\t }\n\n\t return $el;\n\t }\n\n\t function toggleEl($el, disabled) {\n\t const params = swiper.params.navigation;\n\n\t if ($el && $el.length > 0) {\n\t $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n\t if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n\t if (swiper.params.watchOverflow && swiper.enabled) {\n\t $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n\t }\n\t }\n\t }\n\n\t function update() {\n\t // Update Navigation Buttons\n\t if (swiper.params.loop) return;\n\t const {\n\t $nextEl,\n\t $prevEl\n\t } = swiper.navigation;\n\t toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n\t toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n\t }\n\n\t function onPrevClick(e) {\n\t e.preventDefault();\n\t if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n\t swiper.slidePrev();\n\t emit('navigationPrev');\n\t }\n\n\t function onNextClick(e) {\n\t e.preventDefault();\n\t if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n\t swiper.slideNext();\n\t emit('navigationNext');\n\t }\n\n\t function init() {\n\t const params = swiper.params.navigation;\n\t swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n\t nextEl: 'swiper-button-next',\n\t prevEl: 'swiper-button-prev'\n\t });\n\t if (!(params.nextEl || params.prevEl)) return;\n\t const $nextEl = getEl(params.nextEl);\n\t const $prevEl = getEl(params.prevEl);\n\n\t if ($nextEl && $nextEl.length > 0) {\n\t $nextEl.on('click', onNextClick);\n\t }\n\n\t if ($prevEl && $prevEl.length > 0) {\n\t $prevEl.on('click', onPrevClick);\n\t }\n\n\t Object.assign(swiper.navigation, {\n\t $nextEl,\n\t nextEl: $nextEl && $nextEl[0],\n\t $prevEl,\n\t prevEl: $prevEl && $prevEl[0]\n\t });\n\n\t if (!swiper.enabled) {\n\t if ($nextEl) $nextEl.addClass(params.lockClass);\n\t if ($prevEl) $prevEl.addClass(params.lockClass);\n\t }\n\t }\n\n\t function destroy() {\n\t const {\n\t $nextEl,\n\t $prevEl\n\t } = swiper.navigation;\n\n\t if ($nextEl && $nextEl.length) {\n\t $nextEl.off('click', onNextClick);\n\t $nextEl.removeClass(swiper.params.navigation.disabledClass);\n\t }\n\n\t if ($prevEl && $prevEl.length) {\n\t $prevEl.off('click', onPrevClick);\n\t $prevEl.removeClass(swiper.params.navigation.disabledClass);\n\t }\n\t }\n\n\t on('init', () => {\n\t if (swiper.params.navigation.enabled === false) {\n\t // eslint-disable-next-line\n\t disable();\n\t } else {\n\t init();\n\t update();\n\t }\n\t });\n\t on('toEdge fromEdge lock unlock', () => {\n\t update();\n\t });\n\t on('destroy', () => {\n\t destroy();\n\t });\n\t on('enable disable', () => {\n\t const {\n\t $nextEl,\n\t $prevEl\n\t } = swiper.navigation;\n\n\t if ($nextEl) {\n\t $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n\t }\n\n\t if ($prevEl) {\n\t $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n\t }\n\t });\n\t on('click', (_s, e) => {\n\t const {\n\t $nextEl,\n\t $prevEl\n\t } = swiper.navigation;\n\t const targetEl = e.target;\n\n\t if (swiper.params.navigation.hideOnClick && !$$2(targetEl).is($prevEl) && !$$2(targetEl).is($nextEl)) {\n\t if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n\t let isHidden;\n\n\t if ($nextEl) {\n\t isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n\t } else if ($prevEl) {\n\t isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n\t }\n\n\t if (isHidden === true) {\n\t emit('navigationShow');\n\t } else {\n\t emit('navigationHide');\n\t }\n\n\t if ($nextEl) {\n\t $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n\t }\n\n\t if ($prevEl) {\n\t $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n\t }\n\t }\n\t });\n\n\t const enable = () => {\n\t swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n\t init();\n\t update();\n\t };\n\n\t const disable = () => {\n\t swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n\t destroy();\n\t };\n\n\t Object.assign(swiper.navigation, {\n\t enable,\n\t disable,\n\t update,\n\t init,\n\t destroy\n\t });\n\t}\n\n\tfunction classesToSelector(classes) {\n\t if (classes === void 0) {\n\t classes = '';\n\t }\n\n\t return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n\t}\n\n\tfunction Pagination(_ref) {\n\t let {\n\t swiper,\n\t extendParams,\n\t on,\n\t emit\n\t } = _ref;\n\t const pfx = 'swiper-pagination';\n\t extendParams({\n\t pagination: {\n\t el: null,\n\t bulletElement: 'span',\n\t clickable: false,\n\t hideOnClick: false,\n\t renderBullet: null,\n\t renderProgressbar: null,\n\t renderFraction: null,\n\t renderCustom: null,\n\t progressbarOpposite: false,\n\t type: 'bullets',\n\t // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n\t dynamicBullets: false,\n\t dynamicMainBullets: 1,\n\t formatFractionCurrent: number => number,\n\t formatFractionTotal: number => number,\n\t bulletClass: `${pfx}-bullet`,\n\t bulletActiveClass: `${pfx}-bullet-active`,\n\t modifierClass: `${pfx}-`,\n\t currentClass: `${pfx}-current`,\n\t totalClass: `${pfx}-total`,\n\t hiddenClass: `${pfx}-hidden`,\n\t progressbarFillClass: `${pfx}-progressbar-fill`,\n\t progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n\t clickableClass: `${pfx}-clickable`,\n\t lockClass: `${pfx}-lock`,\n\t horizontalClass: `${pfx}-horizontal`,\n\t verticalClass: `${pfx}-vertical`,\n\t paginationDisabledClass: `${pfx}-disabled`\n\t }\n\t });\n\t swiper.pagination = {\n\t el: null,\n\t $el: null,\n\t bullets: []\n\t };\n\t let bulletSize;\n\t let dynamicBulletIndex = 0;\n\n\t function isPaginationDisabled() {\n\t return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n\t }\n\n\t function setSideBullets($bulletEl, position) {\n\t const {\n\t bulletActiveClass\n\t } = swiper.params.pagination;\n\t $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n\t }\n\n\t function update() {\n\t // Render || Update Pagination bullets/items\n\t const rtl = swiper.rtl;\n\t const params = swiper.params.pagination;\n\t if (isPaginationDisabled()) return;\n\t const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\t const $el = swiper.pagination.$el; // Current/Total\n\n\t let current;\n\t const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n\t if (swiper.params.loop) {\n\t current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n\t if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n\t current -= slidesLength - swiper.loopedSlides * 2;\n\t }\n\n\t if (current > total - 1) current -= total;\n\t if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n\t } else if (typeof swiper.snapIndex !== 'undefined') {\n\t current = swiper.snapIndex;\n\t } else {\n\t current = swiper.activeIndex || 0;\n\t } // Types\n\n\n\t if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n\t const bullets = swiper.pagination.bullets;\n\t let firstIndex;\n\t let lastIndex;\n\t let midIndex;\n\n\t if (params.dynamicBullets) {\n\t bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n\t $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n\t if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n\t dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n\t if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n\t dynamicBulletIndex = params.dynamicMainBullets - 1;\n\t } else if (dynamicBulletIndex < 0) {\n\t dynamicBulletIndex = 0;\n\t }\n\t }\n\n\t firstIndex = Math.max(current - dynamicBulletIndex, 0);\n\t lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n\t midIndex = (lastIndex + firstIndex) / 2;\n\t }\n\n\t bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n\t if ($el.length > 1) {\n\t bullets.each(bullet => {\n\t const $bullet = $$2(bullet);\n\t const bulletIndex = $bullet.index();\n\n\t if (bulletIndex === current) {\n\t $bullet.addClass(params.bulletActiveClass);\n\t }\n\n\t if (params.dynamicBullets) {\n\t if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n\t $bullet.addClass(`${params.bulletActiveClass}-main`);\n\t }\n\n\t if (bulletIndex === firstIndex) {\n\t setSideBullets($bullet, 'prev');\n\t }\n\n\t if (bulletIndex === lastIndex) {\n\t setSideBullets($bullet, 'next');\n\t }\n\t }\n\t });\n\t } else {\n\t const $bullet = bullets.eq(current);\n\t const bulletIndex = $bullet.index();\n\t $bullet.addClass(params.bulletActiveClass);\n\n\t if (params.dynamicBullets) {\n\t const $firstDisplayedBullet = bullets.eq(firstIndex);\n\t const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n\t for (let i = firstIndex; i <= lastIndex; i += 1) {\n\t bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n\t }\n\n\t if (swiper.params.loop) {\n\t if (bulletIndex >= bullets.length) {\n\t for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n\t bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n\t }\n\n\t bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n\t } else {\n\t setSideBullets($firstDisplayedBullet, 'prev');\n\t setSideBullets($lastDisplayedBullet, 'next');\n\t }\n\t } else {\n\t setSideBullets($firstDisplayedBullet, 'prev');\n\t setSideBullets($lastDisplayedBullet, 'next');\n\t }\n\t }\n\t }\n\n\t if (params.dynamicBullets) {\n\t const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n\t const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n\t const offsetProp = rtl ? 'right' : 'left';\n\t bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n\t }\n\t }\n\n\t if (params.type === 'fraction') {\n\t $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n\t $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n\t }\n\n\t if (params.type === 'progressbar') {\n\t let progressbarDirection;\n\n\t if (params.progressbarOpposite) {\n\t progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n\t } else {\n\t progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n\t }\n\n\t const scale = (current + 1) / total;\n\t let scaleX = 1;\n\t let scaleY = 1;\n\n\t if (progressbarDirection === 'horizontal') {\n\t scaleX = scale;\n\t } else {\n\t scaleY = scale;\n\t }\n\n\t $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n\t }\n\n\t if (params.type === 'custom' && params.renderCustom) {\n\t $el.html(params.renderCustom(swiper, current + 1, total));\n\t emit('paginationRender', $el[0]);\n\t } else {\n\t emit('paginationUpdate', $el[0]);\n\t }\n\n\t if (swiper.params.watchOverflow && swiper.enabled) {\n\t $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n\t }\n\t }\n\n\t function render() {\n\t // Render Container\n\t const params = swiper.params.pagination;\n\t if (isPaginationDisabled()) return;\n\t const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\t const $el = swiper.pagination.$el;\n\t let paginationHTML = '';\n\n\t if (params.type === 'bullets') {\n\t let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n\t if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n\t numberOfBullets = slidesLength;\n\t }\n\n\t for (let i = 0; i < numberOfBullets; i += 1) {\n\t if (params.renderBullet) {\n\t paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n\t } else {\n\t paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n\t }\n\t }\n\n\t $el.html(paginationHTML);\n\t swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n\t }\n\n\t if (params.type === 'fraction') {\n\t if (params.renderFraction) {\n\t paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n\t } else {\n\t paginationHTML = `` + ' / ' + ``;\n\t }\n\n\t $el.html(paginationHTML);\n\t }\n\n\t if (params.type === 'progressbar') {\n\t if (params.renderProgressbar) {\n\t paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n\t } else {\n\t paginationHTML = ``;\n\t }\n\n\t $el.html(paginationHTML);\n\t }\n\n\t if (params.type !== 'custom') {\n\t emit('paginationRender', swiper.pagination.$el[0]);\n\t }\n\t }\n\n\t function init() {\n\t swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n\t el: 'swiper-pagination'\n\t });\n\t const params = swiper.params.pagination;\n\t if (!params.el) return;\n\t let $el = $$2(params.el);\n\t if ($el.length === 0) return;\n\n\t if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n\t $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n\t if ($el.length > 1) {\n\t $el = $el.filter(el => {\n\t if ($$2(el).parents('.swiper')[0] !== swiper.el) return false;\n\t return true;\n\t });\n\t }\n\t }\n\n\t if (params.type === 'bullets' && params.clickable) {\n\t $el.addClass(params.clickableClass);\n\t }\n\n\t $el.addClass(params.modifierClass + params.type);\n\t $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n\t if (params.type === 'bullets' && params.dynamicBullets) {\n\t $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n\t dynamicBulletIndex = 0;\n\n\t if (params.dynamicMainBullets < 1) {\n\t params.dynamicMainBullets = 1;\n\t }\n\t }\n\n\t if (params.type === 'progressbar' && params.progressbarOpposite) {\n\t $el.addClass(params.progressbarOppositeClass);\n\t }\n\n\t if (params.clickable) {\n\t $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n\t e.preventDefault();\n\t let index = $$2(this).index() * swiper.params.slidesPerGroup;\n\t if (swiper.params.loop) index += swiper.loopedSlides;\n\t swiper.slideTo(index);\n\t });\n\t }\n\n\t Object.assign(swiper.pagination, {\n\t $el,\n\t el: $el[0]\n\t });\n\n\t if (!swiper.enabled) {\n\t $el.addClass(params.lockClass);\n\t }\n\t }\n\n\t function destroy() {\n\t const params = swiper.params.pagination;\n\t if (isPaginationDisabled()) return;\n\t const $el = swiper.pagination.$el;\n\t $el.removeClass(params.hiddenClass);\n\t $el.removeClass(params.modifierClass + params.type);\n\t $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\t if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n\t if (params.clickable) {\n\t $el.off('click', classesToSelector(params.bulletClass));\n\t }\n\t }\n\n\t on('init', () => {\n\t if (swiper.params.pagination.enabled === false) {\n\t // eslint-disable-next-line\n\t disable();\n\t } else {\n\t init();\n\t render();\n\t update();\n\t }\n\t });\n\t on('activeIndexChange', () => {\n\t if (swiper.params.loop) {\n\t update();\n\t } else if (typeof swiper.snapIndex === 'undefined') {\n\t update();\n\t }\n\t });\n\t on('snapIndexChange', () => {\n\t if (!swiper.params.loop) {\n\t update();\n\t }\n\t });\n\t on('slidesLengthChange', () => {\n\t if (swiper.params.loop) {\n\t render();\n\t update();\n\t }\n\t });\n\t on('snapGridLengthChange', () => {\n\t if (!swiper.params.loop) {\n\t render();\n\t update();\n\t }\n\t });\n\t on('destroy', () => {\n\t destroy();\n\t });\n\t on('enable disable', () => {\n\t const {\n\t $el\n\t } = swiper.pagination;\n\n\t if ($el) {\n\t $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n\t }\n\t });\n\t on('lock unlock', () => {\n\t update();\n\t });\n\t on('click', (_s, e) => {\n\t const targetEl = e.target;\n\t const {\n\t $el\n\t } = swiper.pagination;\n\n\t if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$$2(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n\t if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n\t const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n\t if (isHidden === true) {\n\t emit('paginationShow');\n\t } else {\n\t emit('paginationHide');\n\t }\n\n\t $el.toggleClass(swiper.params.pagination.hiddenClass);\n\t }\n\t });\n\n\t const enable = () => {\n\t swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n\t if (swiper.pagination.$el) {\n\t swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\t }\n\n\t init();\n\t render();\n\t update();\n\t };\n\n\t const disable = () => {\n\t swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n\t if (swiper.pagination.$el) {\n\t swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\t }\n\n\t destroy();\n\t };\n\n\t Object.assign(swiper.pagination, {\n\t enable,\n\t disable,\n\t render,\n\t update,\n\t init,\n\t destroy\n\t });\n\t}\n\n\t/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\tfunction Controller(_ref) {\n\t let {\n\t swiper,\n\t extendParams,\n\t on\n\t } = _ref;\n\t extendParams({\n\t controller: {\n\t control: undefined,\n\t inverse: false,\n\t by: 'slide' // or 'container'\n\n\t }\n\t });\n\t swiper.controller = {\n\t control: undefined\n\t };\n\n\t function LinearSpline(x, y) {\n\t const binarySearch = function search() {\n\t let maxIndex;\n\t let minIndex;\n\t let guess;\n\t return (array, val) => {\n\t minIndex = -1;\n\t maxIndex = array.length;\n\n\t while (maxIndex - minIndex > 1) {\n\t guess = maxIndex + minIndex >> 1;\n\n\t if (array[guess] <= val) {\n\t minIndex = guess;\n\t } else {\n\t maxIndex = guess;\n\t }\n\t }\n\n\t return maxIndex;\n\t };\n\t }();\n\n\t this.x = x;\n\t this.y = y;\n\t this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n\t // (x1,y1) is the known point before given value,\n\t // (x3,y3) is the known point after given value.\n\n\t let i1;\n\t let i3;\n\n\t this.interpolate = function interpolate(x2) {\n\t if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n\t i3 = binarySearch(this.x, x2);\n\t i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n\t // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n\t return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n\t };\n\n\t return this;\n\t } // xxx: for now i will just save one spline function to to\n\n\n\t function getInterpolateFunction(c) {\n\t if (!swiper.controller.spline) {\n\t swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n\t }\n\t }\n\n\t function setTranslate(_t, byController) {\n\t const controlled = swiper.controller.control;\n\t let multiplier;\n\t let controlledTranslate;\n\t const Swiper = swiper.constructor;\n\n\t function setControlledTranslate(c) {\n\t // this will create an Interpolate function based on the snapGrids\n\t // x is the Grid of the scrolled scroller and y will be the controlled scroller\n\t // it makes sense to create this only once and recall it for the interpolation\n\t // the function does a lot of value caching for performance\n\t const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n\t if (swiper.params.controller.by === 'slide') {\n\t getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n\t // but it did not work out\n\n\t controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n\t }\n\n\t if (!controlledTranslate || swiper.params.controller.by === 'container') {\n\t multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n\t controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n\t }\n\n\t if (swiper.params.controller.inverse) {\n\t controlledTranslate = c.maxTranslate() - controlledTranslate;\n\t }\n\n\t c.updateProgress(controlledTranslate);\n\t c.setTranslate(controlledTranslate, swiper);\n\t c.updateActiveIndex();\n\t c.updateSlidesClasses();\n\t }\n\n\t if (Array.isArray(controlled)) {\n\t for (let i = 0; i < controlled.length; i += 1) {\n\t if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n\t setControlledTranslate(controlled[i]);\n\t }\n\t }\n\t } else if (controlled instanceof Swiper && byController !== controlled) {\n\t setControlledTranslate(controlled);\n\t }\n\t }\n\n\t function setTransition(duration, byController) {\n\t const Swiper = swiper.constructor;\n\t const controlled = swiper.controller.control;\n\t let i;\n\n\t function setControlledTransition(c) {\n\t c.setTransition(duration, swiper);\n\n\t if (duration !== 0) {\n\t c.transitionStart();\n\n\t if (c.params.autoHeight) {\n\t nextTick(() => {\n\t c.updateAutoHeight();\n\t });\n\t }\n\n\t c.$wrapperEl.transitionEnd(() => {\n\t if (!controlled) return;\n\n\t if (c.params.loop && swiper.params.controller.by === 'slide') {\n\t c.loopFix();\n\t }\n\n\t c.transitionEnd();\n\t });\n\t }\n\t }\n\n\t if (Array.isArray(controlled)) {\n\t for (i = 0; i < controlled.length; i += 1) {\n\t if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n\t setControlledTransition(controlled[i]);\n\t }\n\t }\n\t } else if (controlled instanceof Swiper && byController !== controlled) {\n\t setControlledTransition(controlled);\n\t }\n\t }\n\n\t function removeSpline() {\n\t if (!swiper.controller.control) return;\n\n\t if (swiper.controller.spline) {\n\t swiper.controller.spline = undefined;\n\t delete swiper.controller.spline;\n\t }\n\t }\n\n\t on('beforeInit', () => {\n\t swiper.controller.control = swiper.params.controller.control;\n\t });\n\t on('update', () => {\n\t removeSpline();\n\t });\n\t on('resize', () => {\n\t removeSpline();\n\t });\n\t on('observerUpdate', () => {\n\t removeSpline();\n\t });\n\t on('setTranslate', (_s, translate, byController) => {\n\t if (!swiper.controller.control) return;\n\t swiper.controller.setTranslate(translate, byController);\n\t });\n\t on('setTransition', (_s, duration, byController) => {\n\t if (!swiper.controller.control) return;\n\t swiper.controller.setTransition(duration, byController);\n\t });\n\t Object.assign(swiper.controller, {\n\t setTranslate,\n\t setTransition\n\t });\n\t}\n\n\t/* eslint no-underscore-dangle: \"off\" */\n\tfunction Autoplay(_ref) {\n\t let {\n\t swiper,\n\t extendParams,\n\t on,\n\t emit\n\t } = _ref;\n\t let timeout;\n\t swiper.autoplay = {\n\t running: false,\n\t paused: false\n\t };\n\t extendParams({\n\t autoplay: {\n\t enabled: false,\n\t delay: 3000,\n\t waitForTransition: true,\n\t disableOnInteraction: true,\n\t stopOnLastSlide: false,\n\t reverseDirection: false,\n\t pauseOnMouseEnter: false\n\t }\n\t });\n\n\t function run() {\n\t if (!swiper.size) {\n\t swiper.autoplay.running = false;\n\t swiper.autoplay.paused = false;\n\t return;\n\t }\n\n\t const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n\t let delay = swiper.params.autoplay.delay;\n\n\t if ($activeSlideEl.attr('data-swiper-autoplay')) {\n\t delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n\t }\n\n\t clearTimeout(timeout);\n\t timeout = nextTick(() => {\n\t let autoplayResult;\n\n\t if (swiper.params.autoplay.reverseDirection) {\n\t if (swiper.params.loop) {\n\t swiper.loopFix();\n\t autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n\t emit('autoplay');\n\t } else if (!swiper.isBeginning) {\n\t autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n\t emit('autoplay');\n\t } else if (!swiper.params.autoplay.stopOnLastSlide) {\n\t autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n\t emit('autoplay');\n\t } else {\n\t stop();\n\t }\n\t } else if (swiper.params.loop) {\n\t swiper.loopFix();\n\t autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n\t emit('autoplay');\n\t } else if (!swiper.isEnd) {\n\t autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n\t emit('autoplay');\n\t } else if (!swiper.params.autoplay.stopOnLastSlide) {\n\t autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n\t emit('autoplay');\n\t } else {\n\t stop();\n\t }\n\n\t if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n\t run();\n\t }\n\t }, delay);\n\t }\n\n\t function start() {\n\t if (typeof timeout !== 'undefined') return false;\n\t if (swiper.autoplay.running) return false;\n\t swiper.autoplay.running = true;\n\t emit('autoplayStart');\n\t run();\n\t return true;\n\t }\n\n\t function stop() {\n\t if (!swiper.autoplay.running) return false;\n\t if (typeof timeout === 'undefined') return false;\n\n\t if (timeout) {\n\t clearTimeout(timeout);\n\t timeout = undefined;\n\t }\n\n\t swiper.autoplay.running = false;\n\t emit('autoplayStop');\n\t return true;\n\t }\n\n\t function pause(speed) {\n\t if (!swiper.autoplay.running) return;\n\t if (swiper.autoplay.paused) return;\n\t if (timeout) clearTimeout(timeout);\n\t swiper.autoplay.paused = true;\n\n\t if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n\t swiper.autoplay.paused = false;\n\t run();\n\t } else {\n\t ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n\t swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n\t });\n\t }\n\t }\n\n\t function onVisibilityChange() {\n\t const document = getDocument();\n\n\t if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n\t pause();\n\t }\n\n\t if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n\t run();\n\t swiper.autoplay.paused = false;\n\t }\n\t }\n\n\t function onTransitionEnd(e) {\n\t if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n\t if (e.target !== swiper.$wrapperEl[0]) return;\n\t ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n\t swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n\t });\n\t swiper.autoplay.paused = false;\n\n\t if (!swiper.autoplay.running) {\n\t stop();\n\t } else {\n\t run();\n\t }\n\t }\n\n\t function onMouseEnter() {\n\t if (swiper.params.autoplay.disableOnInteraction) {\n\t stop();\n\t } else {\n\t emit('autoplayPause');\n\t pause();\n\t }\n\n\t ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n\t swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n\t });\n\t }\n\n\t function onMouseLeave() {\n\t if (swiper.params.autoplay.disableOnInteraction) {\n\t return;\n\t }\n\n\t swiper.autoplay.paused = false;\n\t emit('autoplayResume');\n\t run();\n\t }\n\n\t function attachMouseEvents() {\n\t if (swiper.params.autoplay.pauseOnMouseEnter) {\n\t swiper.$el.on('mouseenter', onMouseEnter);\n\t swiper.$el.on('mouseleave', onMouseLeave);\n\t }\n\t }\n\n\t function detachMouseEvents() {\n\t swiper.$el.off('mouseenter', onMouseEnter);\n\t swiper.$el.off('mouseleave', onMouseLeave);\n\t }\n\n\t on('init', () => {\n\t if (swiper.params.autoplay.enabled) {\n\t start();\n\t const document = getDocument();\n\t document.addEventListener('visibilitychange', onVisibilityChange);\n\t attachMouseEvents();\n\t }\n\t });\n\t on('beforeTransitionStart', (_s, speed, internal) => {\n\t if (swiper.autoplay.running) {\n\t if (internal || !swiper.params.autoplay.disableOnInteraction) {\n\t swiper.autoplay.pause(speed);\n\t } else {\n\t stop();\n\t }\n\t }\n\t });\n\t on('sliderFirstMove', () => {\n\t if (swiper.autoplay.running) {\n\t if (swiper.params.autoplay.disableOnInteraction) {\n\t stop();\n\t } else {\n\t pause();\n\t }\n\t }\n\t });\n\t on('touchEnd', () => {\n\t if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n\t run();\n\t }\n\t });\n\t on('destroy', () => {\n\t detachMouseEvents();\n\n\t if (swiper.autoplay.running) {\n\t stop();\n\t }\n\n\t const document = getDocument();\n\t document.removeEventListener('visibilitychange', onVisibilityChange);\n\t });\n\t Object.assign(swiper.autoplay, {\n\t pause,\n\t run,\n\t start,\n\t stop\n\t });\n\t}\n\n\tfunction Thumb(_ref) {\n\t let {\n\t swiper,\n\t extendParams,\n\t on\n\t } = _ref;\n\t extendParams({\n\t thumbs: {\n\t swiper: null,\n\t multipleActiveThumbs: true,\n\t autoScrollOffset: 0,\n\t slideThumbActiveClass: 'swiper-slide-thumb-active',\n\t thumbsContainerClass: 'swiper-thumbs'\n\t }\n\t });\n\t let initialized = false;\n\t let swiperCreated = false;\n\t swiper.thumbs = {\n\t swiper: null\n\t };\n\n\t function onThumbClick() {\n\t const thumbsSwiper = swiper.thumbs.swiper;\n\t if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\t const clickedIndex = thumbsSwiper.clickedIndex;\n\t const clickedSlide = thumbsSwiper.clickedSlide;\n\t if (clickedSlide && $$2(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n\t if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n\t let slideToIndex;\n\n\t if (thumbsSwiper.params.loop) {\n\t slideToIndex = parseInt($$2(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\t } else {\n\t slideToIndex = clickedIndex;\n\t }\n\n\t if (swiper.params.loop) {\n\t let currentIndex = swiper.activeIndex;\n\n\t if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n\t swiper.loopFix(); // eslint-disable-next-line\n\n\t swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n\t currentIndex = swiper.activeIndex;\n\t }\n\n\t const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n\t const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n\t if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n\t }\n\n\t swiper.slideTo(slideToIndex);\n\t }\n\n\t function init() {\n\t const {\n\t thumbs: thumbsParams\n\t } = swiper.params;\n\t if (initialized) return false;\n\t initialized = true;\n\t const SwiperClass = swiper.constructor;\n\n\t if (thumbsParams.swiper instanceof SwiperClass) {\n\t swiper.thumbs.swiper = thumbsParams.swiper;\n\t Object.assign(swiper.thumbs.swiper.originalParams, {\n\t watchSlidesProgress: true,\n\t slideToClickedSlide: false\n\t });\n\t Object.assign(swiper.thumbs.swiper.params, {\n\t watchSlidesProgress: true,\n\t slideToClickedSlide: false\n\t });\n\t } else if (isObject$1(thumbsParams.swiper)) {\n\t const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n\t Object.assign(thumbsSwiperParams, {\n\t watchSlidesProgress: true,\n\t slideToClickedSlide: false\n\t });\n\t swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n\t swiperCreated = true;\n\t }\n\n\t swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n\t swiper.thumbs.swiper.on('tap', onThumbClick);\n\t return true;\n\t }\n\n\t function update(initial) {\n\t const thumbsSwiper = swiper.thumbs.swiper;\n\t if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\t const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; // Activate thumbs\n\n\t let thumbsToActivate = 1;\n\t const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n\t if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n\t thumbsToActivate = swiper.params.slidesPerView;\n\t }\n\n\t if (!swiper.params.thumbs.multipleActiveThumbs) {\n\t thumbsToActivate = 1;\n\t }\n\n\t thumbsToActivate = Math.floor(thumbsToActivate);\n\t thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n\t if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n\t for (let i = 0; i < thumbsToActivate; i += 1) {\n\t thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n\t }\n\t } else {\n\t for (let i = 0; i < thumbsToActivate; i += 1) {\n\t thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n\t }\n\t }\n\n\t const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n\t const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n\t if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n\t let currentThumbsIndex = thumbsSwiper.activeIndex;\n\t let newThumbsIndex;\n\t let direction;\n\n\t if (thumbsSwiper.params.loop) {\n\t if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n\t thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n\t thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n\t currentThumbsIndex = thumbsSwiper.activeIndex;\n\t } // Find actual thumbs index to slide to\n\n\n\t const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n\t const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n\n\t if (typeof prevThumbsIndex === 'undefined') {\n\t newThumbsIndex = nextThumbsIndex;\n\t } else if (typeof nextThumbsIndex === 'undefined') {\n\t newThumbsIndex = prevThumbsIndex;\n\t } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n\t newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n\t } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n\t newThumbsIndex = nextThumbsIndex;\n\t } else {\n\t newThumbsIndex = prevThumbsIndex;\n\t }\n\n\t direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n\t } else {\n\t newThumbsIndex = swiper.realIndex;\n\t direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n\t }\n\n\t if (useOffset) {\n\t newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n\t }\n\n\t if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n\t if (thumbsSwiper.params.centeredSlides) {\n\t if (newThumbsIndex > currentThumbsIndex) {\n\t newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n\t } else {\n\t newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n\t }\n\t } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n\n\t thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n\t }\n\t }\n\t }\n\n\t on('beforeInit', () => {\n\t const {\n\t thumbs\n\t } = swiper.params;\n\t if (!thumbs || !thumbs.swiper) return;\n\t init();\n\t update(true);\n\t });\n\t on('slideChange update resize observerUpdate', () => {\n\t update();\n\t });\n\t on('setTransition', (_s, duration) => {\n\t const thumbsSwiper = swiper.thumbs.swiper;\n\t if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\t thumbsSwiper.setTransition(duration);\n\t });\n\t on('beforeDestroy', () => {\n\t const thumbsSwiper = swiper.thumbs.swiper;\n\t if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n\t if (swiperCreated) {\n\t thumbsSwiper.destroy();\n\t }\n\t });\n\t Object.assign(swiper.thumbs, {\n\t init,\n\t update\n\t });\n\t}\n\n\tfunction effectInit(params) {\n\t const {\n\t effect,\n\t swiper,\n\t on,\n\t setTranslate,\n\t setTransition,\n\t overwriteParams,\n\t perspective,\n\t recreateShadows,\n\t getEffectParams\n\t } = params;\n\t on('beforeInit', () => {\n\t if (swiper.params.effect !== effect) return;\n\t swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n\n\t if (perspective && perspective()) {\n\t swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\t }\n\n\t const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n\t Object.assign(swiper.params, overwriteParamsResult);\n\t Object.assign(swiper.originalParams, overwriteParamsResult);\n\t });\n\t on('setTranslate', () => {\n\t if (swiper.params.effect !== effect) return;\n\t setTranslate();\n\t });\n\t on('setTransition', (_s, duration) => {\n\t if (swiper.params.effect !== effect) return;\n\t setTransition(duration);\n\t });\n\t on('transitionEnd', () => {\n\t if (swiper.params.effect !== effect) return;\n\n\t if (recreateShadows) {\n\t if (!getEffectParams || !getEffectParams().slideShadows) return; // remove shadows\n\n\t swiper.slides.each(slideEl => {\n\t const $slideEl = swiper.$(slideEl);\n\t $slideEl.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').remove();\n\t }); // create new one\n\n\t recreateShadows();\n\t }\n\t });\n\t let requireUpdateOnVirtual;\n\t on('virtualUpdate', () => {\n\t if (swiper.params.effect !== effect) return;\n\n\t if (!swiper.slides.length) {\n\t requireUpdateOnVirtual = true;\n\t }\n\n\t requestAnimationFrame(() => {\n\t if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n\t setTranslate();\n\t requireUpdateOnVirtual = false;\n\t }\n\t });\n\t });\n\t}\n\n\tfunction effectTarget(effectParams, $slideEl) {\n\t if (effectParams.transformEl) {\n\t return $slideEl.find(effectParams.transformEl).css({\n\t 'backface-visibility': 'hidden',\n\t '-webkit-backface-visibility': 'hidden'\n\t });\n\t }\n\n\t return $slideEl;\n\t}\n\n\tfunction effectVirtualTransitionEnd(_ref) {\n\t let {\n\t swiper,\n\t duration,\n\t transformEl,\n\t allSlides\n\t } = _ref;\n\t const {\n\t slides,\n\t activeIndex,\n\t $wrapperEl\n\t } = swiper;\n\n\t if (swiper.params.virtualTranslate && duration !== 0) {\n\t let eventTriggered = false;\n\t let $transitionEndTarget;\n\n\t if (allSlides) {\n\t $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n\t } else {\n\t $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n\t }\n\n\t $transitionEndTarget.transitionEnd(() => {\n\t if (eventTriggered) return;\n\t if (!swiper || swiper.destroyed) return;\n\t eventTriggered = true;\n\t swiper.animating = false;\n\t const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n\t for (let i = 0; i < triggerEvents.length; i += 1) {\n\t $wrapperEl.trigger(triggerEvents[i]);\n\t }\n\t });\n\t }\n\t}\n\n\tfunction EffectFade(_ref) {\n\t let {\n\t swiper,\n\t extendParams,\n\t on\n\t } = _ref;\n\t extendParams({\n\t fadeEffect: {\n\t crossFade: false,\n\t transformEl: null\n\t }\n\t });\n\n\t const setTranslate = () => {\n\t const {\n\t slides\n\t } = swiper;\n\t const params = swiper.params.fadeEffect;\n\n\t for (let i = 0; i < slides.length; i += 1) {\n\t const $slideEl = swiper.slides.eq(i);\n\t const offset = $slideEl[0].swiperSlideOffset;\n\t let tx = -offset;\n\t if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n\t let ty = 0;\n\n\t if (!swiper.isHorizontal()) {\n\t ty = tx;\n\t tx = 0;\n\t }\n\n\t const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n\t const $targetEl = effectTarget(params, $slideEl);\n\t $targetEl.css({\n\t opacity: slideOpacity\n\t }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n\t }\n\t };\n\n\t const setTransition = duration => {\n\t const {\n\t transformEl\n\t } = swiper.params.fadeEffect;\n\t const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n\t $transitionElements.transition(duration);\n\t effectVirtualTransitionEnd({\n\t swiper,\n\t duration,\n\t transformEl,\n\t allSlides: true\n\t });\n\t };\n\n\t effectInit({\n\t effect: 'fade',\n\t swiper,\n\t on,\n\t setTranslate,\n\t setTransition,\n\t overwriteParams: () => ({\n\t slidesPerView: 1,\n\t slidesPerGroup: 1,\n\t watchSlidesProgress: true,\n\t spaceBetween: 0,\n\t virtualTranslate: !swiper.params.cssMode\n\t })\n\t });\n\t}\n\n\tfunction createShadow(params, $slideEl, side) {\n\t const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n\t const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n\t let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\n\n\t if (!$shadowEl.length) {\n\t $shadowEl = $$2(`
`);\n\t $shadowContainer.append($shadowEl);\n\t }\n\n\t return $shadowEl;\n\t}\n\n\tfunction EffectCreative(_ref) {\n\t let {\n\t swiper,\n\t extendParams,\n\t on\n\t } = _ref;\n\t extendParams({\n\t creativeEffect: {\n\t transformEl: null,\n\t limitProgress: 1,\n\t shadowPerProgress: false,\n\t progressMultiplier: 1,\n\t perspective: true,\n\t prev: {\n\t translate: [0, 0, 0],\n\t rotate: [0, 0, 0],\n\t opacity: 1,\n\t scale: 1\n\t },\n\t next: {\n\t translate: [0, 0, 0],\n\t rotate: [0, 0, 0],\n\t opacity: 1,\n\t scale: 1\n\t }\n\t }\n\t });\n\n\t const getTranslateValue = value => {\n\t if (typeof value === 'string') return value;\n\t return `${value}px`;\n\t };\n\n\t const setTranslate = () => {\n\t const {\n\t slides,\n\t $wrapperEl,\n\t slidesSizesGrid\n\t } = swiper;\n\t const params = swiper.params.creativeEffect;\n\t const {\n\t progressMultiplier: multiplier\n\t } = params;\n\t const isCenteredSlides = swiper.params.centeredSlides;\n\n\t if (isCenteredSlides) {\n\t const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n\t $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);\n\t }\n\n\t for (let i = 0; i < slides.length; i += 1) {\n\t const $slideEl = slides.eq(i);\n\t const slideProgress = $slideEl[0].progress;\n\t const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n\t let originalProgress = progress;\n\n\t if (!isCenteredSlides) {\n\t originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);\n\t }\n\n\t const offset = $slideEl[0].swiperSlideOffset;\n\t const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n\t const r = [0, 0, 0];\n\t let custom = false;\n\n\t if (!swiper.isHorizontal()) {\n\t t[1] = t[0];\n\t t[0] = 0;\n\t }\n\n\t let data = {\n\t translate: [0, 0, 0],\n\t rotate: [0, 0, 0],\n\t scale: 1,\n\t opacity: 1\n\t };\n\n\t if (progress < 0) {\n\t data = params.next;\n\t custom = true;\n\t } else if (progress > 0) {\n\t data = params.prev;\n\t custom = true;\n\t } // set translate\n\n\n\t t.forEach((value, index) => {\n\t t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n\t }); // set rotates\n\n\t r.forEach((value, index) => {\n\t r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n\t });\n\t $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n\t const translateString = t.join(', ');\n\t const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n\t const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n\t const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n\t const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; // Set shadows\n\n\t if (custom && data.shadow || !custom) {\n\t let $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n\t if ($shadowEl.length === 0 && data.shadow) {\n\t $shadowEl = createShadow(params, $slideEl);\n\t }\n\n\t if ($shadowEl.length) {\n\t const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n\t $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n\t }\n\t }\n\n\t const $targetEl = effectTarget(params, $slideEl);\n\t $targetEl.transform(transform).css({\n\t opacity: opacityString\n\t });\n\n\t if (data.origin) {\n\t $targetEl.css('transform-origin', data.origin);\n\t }\n\t }\n\t };\n\n\t const setTransition = duration => {\n\t const {\n\t transformEl\n\t } = swiper.params.creativeEffect;\n\t const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n\t $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n\t effectVirtualTransitionEnd({\n\t swiper,\n\t duration,\n\t transformEl,\n\t allSlides: true\n\t });\n\t };\n\n\t effectInit({\n\t effect: 'creative',\n\t swiper,\n\t on,\n\t setTranslate,\n\t setTransition,\n\t perspective: () => swiper.params.creativeEffect.perspective,\n\t overwriteParams: () => ({\n\t watchSlidesProgress: true,\n\t virtualTranslate: !swiper.params.cssMode\n\t })\n\t });\n\t}\n\n\tvar swiper_main_banner;\n\n\tfunction autoSlideNextOnThumbSlide(initSwiper, element, thumb) {\n\t let activeIndex = initSwiper.activeIndex + 1;\n\t let activeSlide = document.querySelector(`${element} ${thumb} .swiper-slide:nth-child(${activeIndex})`);\n\t let nextSlide = document.querySelector(`${element} ${thumb} .swiper-slide:nth-child(${activeIndex + 1})`);\n\t let prevSlide = document.querySelector(`${element} ${thumb} .swiper-slide:nth-child(${activeIndex - 1})`);\n\n\t if (nextSlide && !nextSlide.classList.contains(\"swiper-slide-visible\")) {\n\t initSwiper.thumbs.swiper.slideNext();\n\t } else if (prevSlide && !prevSlide.classList.contains(\"swiper-slide-visible\")) {\n\t initSwiper.thumbs.swiper.slidePrev();\n\t }\n\t}\n\n\tfunction swiperInit() {\n\t var swiperParameter = {\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t breakpoints: {\n\t 1280: {\n\t spaceBetween: 32,\n\t slidesPerView: 3\n\t },\n\t 1024: {\n\t spaceBetween: 24,\n\t slidesPerView: 3\n\t },\n\t 576: {\n\t spaceBetween: 16,\n\t slidesPerView: 2\n\t },\n\t 320: {\n\t spaceBetween: 8,\n\t slidesPerView: 1.2\n\t }\n\t }\n\t };\n\t var swiperParameter_xl_4 = {\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t breakpoints: {\n\t 1280: {\n\t spaceBetween: 32,\n\t slidesPerView: 4\n\t },\n\t 1024: {\n\t spaceBetween: 24,\n\t slidesPerView: 3\n\t },\n\t 576: {\n\t spaceBetween: 16,\n\t slidesPerView: 2\n\t },\n\t 320: {\n\t spaceBetween: 8,\n\t slidesPerView: 1.3\n\t }\n\t }\n\t };\n\t swiper_main_banner = new Swiper(\"#main-banner .swiper\", {\n\t modules: [Pagination, EffectCreative, Navigation],\n\t spaceBetween: 0,\n\t effect: \"creative\",\n\t creativeEffect: {\n\t prev: {\n\t shadow: true,\n\t translate: [\"-20%\", 0, -1]\n\t },\n\t next: {\n\t translate: [\"100%\", 0, 0]\n\t }\n\t },\n\t // allowTouchMove: false,\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t pagination: {\n\t el: \"#main-banner .swiper-pagination\",\n\t clickable: true\n\t },\n\t navigation: {\n\t prevEl: \"#main-banner .swiper-button-prev\",\n\t nextEl: \"#main-banner .swiper-button-next\"\n\t }\n\t });\n\t $(\".home-2-2-slide\").each((index, ele) => {\n\t $(ele).addClass(`home-2-2-slide-id-${index}`);\n\t var home_2_2_thumb = new Swiper(`.home-2-2-slide-id-${index} .thumb .swiper`, {\n\t modules: [Pagination, Controller, Autoplay],\n\t autoplay: {\n\t delay: 5500,\n\t pauseOnMouseEnter: true\n\t },\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t pagination: {\n\t el: `.home-2-2-slide-id-${index} .swiper-pagination`,\n\t clickable: true\n\t }\n\t });\n\t var home_2_2_main = new Swiper(`.home-2-2-slide-id-${index} .main .swiper`, {\n\t modules: [Navigation, Controller],\n\t speed: 500,\n\t slidesPerView: 1,\n\t observer: true,\n\t observeParents: true,\n\t spaceBetween: 50,\n\t navigation: {\n\t prevEl: `.home-2-2-slide-id-${index} .swiper-button-prev`,\n\t nextEl: `.home-2-2-slide-id-${index} .swiper-button-next`\n\t }\n\t });\n\t home_2_2_thumb.controller.control = home_2_2_main;\n\t home_2_2_main.controller.control = home_2_2_thumb;\n\t });\n\t var home_3_1 = new Swiper(\".home-3-1-slide .swiper\", {\n\t modules: [Navigation, Autoplay],\n\t ...swiperParameter,\n\t loop: true,\n\t navigation: {\n\t prevEl: \".home-3-1-slide .swiper-button-prev\",\n\t nextEl: \".home-3-1-slide .swiper-button-next\"\n\t },\n\t autoplay: {\n\t delay: 4500,\n\t disableOnInteraction: true\n\t }\n\t });\n\t var home_3_2 = new Swiper(\".home-3-2-slide .swiper\", {\n\t modules: [Navigation],\n\t ...swiperParameter_xl_4,\n\t navigation: {\n\t prevEl: \".home-3-2-slide .swiper-button-prev\",\n\t nextEl: \".home-3-2-slide .swiper-button-next\"\n\t }\n\t });\n\t var home_4_1 = new Swiper(\".home-4-1-slide .swiper\", {\n\t modules: [Autoplay],\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t centeredSlides: true,\n\t loop: true,\n\t autoplay: {\n\t delay: 4500,\n\t disableOnInteraction: true\n\t },\n\t breakpoints: {\n\t 1280: {\n\t spaceBetween: 32,\n\t slidesPerView: \"auto\"\n\t },\n\t 1024: {\n\t spaceBetween: 24,\n\t slidesPerView: 3\n\t },\n\t 576: {\n\t spaceBetween: 16,\n\t slidesPerView: 2\n\t },\n\t 320: {\n\t spaceBetween: 8,\n\t slidesPerView: 1.3\n\t }\n\t }\n\t }); // **** Introduce **** //\n\n\t $(\".introduce-1-2-slide\").each((index, ele) => {\n\t $(ele).addClass(`introduce-1-2-slide-id-${index}`);\n\t var home_2 = new Swiper(`.introduce-1-2-slide-id-${index} .swiper`, {\n\t modules: [Navigation, Autoplay],\n\t autoplay: {\n\t delay: 5500,\n\t pauseOnMouseEnter: true\n\t },\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t navigation: {\n\t prevEl: `.introduce-1-2-slide-id-${index} .swiper-button-prev`,\n\t nextEl: `.introduce-1-2-slide-id-${index} .swiper-button-next`\n\t }\n\t });\n\t });\n\t var introduce_4_thumb = new Swiper(\".introduce-4 .thumb .swiper\", {\n\t modules: [Navigation],\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t // allowTouchMove: false,\n\t spaceBetween: 0,\n\t breakpoints: {\n\t 1280: {\n\t spaceBetween: 48,\n\t slidesPerView: 5\n\t },\n\t 1024: {\n\t spaceBetween: 36,\n\t slidesPerView: 4\n\t },\n\t 576: {\n\t spaceBetween: 16,\n\t slidesPerView: 3\n\t },\n\t 320: {\n\t spaceBetween: 8,\n\t slidesPerView: 2\n\t }\n\t },\n\t navigation: {\n\t prevEl: \".introduce-4 .swiper-button-prev\",\n\t nextEl: \".introduce-4 .swiper-button-next\"\n\t }\n\t });\n\t var introduce_4_main = new Swiper(\".introduce-4 .main .swiper\", {\n\t modules: [Thumb, Navigation],\n\t speed: 500,\n\t slidesPerView: 1,\n\t observer: true,\n\t observeParents: true,\n\t spaceBetween: 0,\n\t thumbs: {\n\t swiper: introduce_4_thumb\n\t },\n\t navigation: {\n\t prevEl: \".introduce-4 .swiper-button-prev\",\n\t nextEl: \".introduce-4 .swiper-button-next\"\n\t },\n\t on: {\n\t slideChange: function () {\n\t //\n\t autoSlideNextOnThumbSlide(this, \".introduce-4\", \".thumb\");\n\t }\n\t }\n\t }); // **** Product **** //\n\n\t var project_detail_thumb = new Swiper(\".product-detail-1-slide .thumb .swiper\", {\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t // allowTouchMove: false,\n\t breakpoints: {\n\t 1280: {\n\t spaceBetween: 16,\n\t slidesPerView: 4\n\t },\n\t 1024: {\n\t spaceBetween: 8,\n\t slidesPerView: 5\n\t },\n\t 576: {\n\t spaceBetween: 8,\n\t slidesPerView: 4\n\t },\n\t 320: {\n\t spaceBetween: 8,\n\t slidesPerView: 3\n\t }\n\t }\n\t });\n\t var project_detail_main = new Swiper(\".product-detail-1-slide .main .swiper\", {\n\t modules: [Thumb, EffectCreative, Navigation],\n\t speed: 500,\n\t slidesPerView: 1,\n\t observer: true,\n\t observeParents: true,\n\t spaceBetween: 0,\n\t effect: \"creative\",\n\t creativeEffect: {\n\t prev: {\n\t shadow: true,\n\t translate: [\"-20%\", 0, -1]\n\t },\n\t next: {\n\t translate: [\"100%\", 0, 0]\n\t }\n\t },\n\t thumbs: {\n\t swiper: project_detail_thumb\n\t },\n\t navigation: {\n\t prevEl: \".product-detail-1-slide .swiper-button-prev\",\n\t nextEl: \".product-detail-1-slide .swiper-button-next\"\n\t },\n\t on: {\n\t slideChange: function () {\n\t //\n\t autoSlideNextOnThumbSlide(this, \".product-detail-1-slide\", \".thumb\");\n\t }\n\t }\n\t });\n\t var project_detail_thumb_popup = new Swiper(\".popup-product-gallery .thumb .swiper\", {\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t // allowTouchMove: false,\n\t breakpoints: {\n\t 1280: {\n\t spaceBetween: 24,\n\t slidesPerView: 7\n\t },\n\t 1024: {\n\t spaceBetween: 20,\n\t slidesPerView: 6\n\t },\n\t 768: {\n\t spaceBetween: 4,\n\t slidesPerView: 5\n\t },\n\t 576: {\n\t spaceBetween: 4,\n\t slidesPerView: 4\n\t },\n\t 320: {\n\t spaceBetween: 4,\n\t slidesPerView: 3\n\t }\n\t }\n\t });\n\t var project_detail_main_popup = new Swiper(\".popup-product-gallery .main .swiper\", {\n\t modules: [Thumb, EffectFade, Navigation],\n\t speed: 500,\n\t slidesPerView: 1,\n\t observer: true,\n\t observeParents: true,\n\t spaceBetween: 0,\n\t effect: \"fade\",\n\t fadeEffect: {\n\t crossFade: true\n\t },\n\t thumbs: {\n\t swiper: project_detail_thumb_popup\n\t },\n\t navigation: {\n\t prevEl: \".popup-product-gallery .swiper-button-prev\",\n\t nextEl: \".popup-product-gallery .swiper-button-next\"\n\t },\n\t on: {\n\t slideChange: function () {\n\t //\n\t autoSlideNextOnThumbSlide(this, \".popup-product-gallery\", \".thumb\");\n\t }\n\t }\n\t }); // **** Other **** //\n\n\t var news_other = new Swiper(\".other-slide .swiper\", {\n\t modules: [Pagination, EffectCreative, Navigation, Autoplay],\n\t ...swiperParameter,\n\t autoplay: {\n\t delay: 5000\n\t },\n\t pagination: {\n\t el: \".other-slide .swiper-pagination\",\n\t clickable: true\n\t },\n\t navigation: {\n\t prevEl: \".other-slide .swiper-button-prev\",\n\t nextEl: \".other-slide .swiper-button-next\"\n\t }\n\t });\n\t}\n\n\tvar __assign = undefined && undefined.__assign || function () {\n\t return (__assign = Object.assign || function (t) {\n\t for (var i, n = 1, s = arguments.length; n < s; n++) for (var a in i = arguments[n]) Object.prototype.hasOwnProperty.call(i, a) && (t[a] = i[a]);\n\n\t return t;\n\t }).apply(this, arguments);\n\t},\n\t CountUp = function () {\n\t function t(t, i, n) {\n\t var s = this;\n\t this.endVal = i, this.options = n, this.version = \"2.4.2\", this.defaults = {\n\t startVal: 0,\n\t decimalPlaces: 0,\n\t duration: 2,\n\t useEasing: !0,\n\t useGrouping: !0,\n\t useIndianSeparators: !1,\n\t smartEasingThreshold: 999,\n\t smartEasingAmount: 333,\n\t separator: \",\",\n\t decimal: \".\",\n\t prefix: \"\",\n\t suffix: \"\",\n\t enableScrollSpy: !1,\n\t scrollSpyDelay: 200,\n\t scrollSpyOnce: !1\n\t }, this.finalEndVal = null, this.useEasing = !0, this.countDown = !1, this.error = \"\", this.startVal = 0, this.paused = !0, this.once = !1, this.count = function (t) {\n\t s.startTime || (s.startTime = t);\n\t var i = t - s.startTime;\n\t s.remaining = s.duration - i, s.useEasing ? s.countDown ? s.frameVal = s.startVal - s.easingFn(i, 0, s.startVal - s.endVal, s.duration) : s.frameVal = s.easingFn(i, s.startVal, s.endVal - s.startVal, s.duration) : s.frameVal = s.startVal + (s.endVal - s.startVal) * (i / s.duration);\n\t var n = s.countDown ? s.frameVal < s.endVal : s.frameVal > s.endVal;\n\t s.frameVal = n ? s.endVal : s.frameVal, s.frameVal = Number(s.frameVal.toFixed(s.options.decimalPlaces)), s.printValue(s.frameVal), i < s.duration ? s.rAF = requestAnimationFrame(s.count) : null !== s.finalEndVal ? s.update(s.finalEndVal) : s.callback && s.callback();\n\t }, this.formatNumber = function (t) {\n\t var i,\n\t n,\n\t a,\n\t e,\n\t r = t < 0 ? \"-\" : \"\";\n\t i = Math.abs(t).toFixed(s.options.decimalPlaces);\n\t var o = (i += \"\").split(\".\");\n\n\t if (n = o[0], a = o.length > 1 ? s.options.decimal + o[1] : \"\", s.options.useGrouping) {\n\t e = \"\";\n\n\t for (var l = 3, h = 0, u = 0, p = n.length; u < p; ++u) s.options.useIndianSeparators && 4 === u && (l = 2, h = 1), 0 !== u && h % l == 0 && (e = s.options.separator + e), h++, e = n[p - u - 1] + e;\n\n\t n = e;\n\t }\n\n\t return s.options.numerals && s.options.numerals.length && (n = n.replace(/[0-9]/g, function (t) {\n\t return s.options.numerals[+t];\n\t }), a = a.replace(/[0-9]/g, function (t) {\n\t return s.options.numerals[+t];\n\t })), r + s.options.prefix + n + a + s.options.suffix;\n\t }, this.easeOutExpo = function (t, i, n, s) {\n\t return n * (1 - Math.pow(2, -10 * t / s)) * 1024 / 1023 + i;\n\t }, this.options = __assign(__assign({}, this.defaults), n), this.formattingFn = this.options.formattingFn ? this.options.formattingFn : this.formatNumber, this.easingFn = this.options.easingFn ? this.options.easingFn : this.easeOutExpo, this.startVal = this.validateValue(this.options.startVal), this.frameVal = this.startVal, this.endVal = this.validateValue(i), this.options.decimalPlaces = Math.max(this.options.decimalPlaces), this.resetDuration(), this.options.separator = String(this.options.separator), this.useEasing = this.options.useEasing, \"\" === this.options.separator && (this.options.useGrouping = !1), this.el = \"string\" == typeof t ? document.getElementById(t) : t, this.el ? this.printValue(this.startVal) : this.error = \"[CountUp] target is null or undefined\", \"undefined\" != typeof window && this.options.enableScrollSpy && (this.error ? console.error(this.error, t) : (window.onScrollFns = window.onScrollFns || [], window.onScrollFns.push(function () {\n\t return s.handleScroll(s);\n\t }), window.onscroll = function () {\n\t window.onScrollFns.forEach(function (t) {\n\t return t();\n\t });\n\t }, this.handleScroll(this)));\n\t }\n\n\t return t.prototype.handleScroll = function (t) {\n\t if (t && window && !t.once) {\n\t var i = window.innerHeight + window.scrollY,\n\t n = t.el.getBoundingClientRect(),\n\t s = n.top + window.pageYOffset,\n\t a = n.top + n.height + window.pageYOffset;\n\t a < i && a > window.scrollY && t.paused ? (t.paused = !1, setTimeout(function () {\n\t return t.start();\n\t }, t.options.scrollSpyDelay), t.options.scrollSpyOnce && (t.once = !0)) : (window.scrollY > a || s > i) && !t.paused && t.reset();\n\t }\n\t }, t.prototype.determineDirectionAndSmartEasing = function () {\n\t var t = this.finalEndVal ? this.finalEndVal : this.endVal;\n\t this.countDown = this.startVal > t;\n\t var i = t - this.startVal;\n\n\t if (Math.abs(i) > this.options.smartEasingThreshold && this.options.useEasing) {\n\t this.finalEndVal = t;\n\t var n = this.countDown ? 1 : -1;\n\t this.endVal = t + n * this.options.smartEasingAmount, this.duration = this.duration / 2;\n\t } else this.endVal = t, this.finalEndVal = null;\n\n\t null !== this.finalEndVal ? this.useEasing = !1 : this.useEasing = this.options.useEasing;\n\t }, t.prototype.start = function (t) {\n\t this.error || (this.callback = t, this.duration > 0 ? (this.determineDirectionAndSmartEasing(), this.paused = !1, this.rAF = requestAnimationFrame(this.count)) : this.printValue(this.endVal));\n\t }, t.prototype.pauseResume = function () {\n\t this.paused ? (this.startTime = null, this.duration = this.remaining, this.startVal = this.frameVal, this.determineDirectionAndSmartEasing(), this.rAF = requestAnimationFrame(this.count)) : cancelAnimationFrame(this.rAF), this.paused = !this.paused;\n\t }, t.prototype.reset = function () {\n\t cancelAnimationFrame(this.rAF), this.paused = !0, this.resetDuration(), this.startVal = this.validateValue(this.options.startVal), this.frameVal = this.startVal, this.printValue(this.startVal);\n\t }, t.prototype.update = function (t) {\n\t cancelAnimationFrame(this.rAF), this.startTime = null, this.endVal = this.validateValue(t), this.endVal !== this.frameVal && (this.startVal = this.frameVal, null == this.finalEndVal && this.resetDuration(), this.finalEndVal = null, this.determineDirectionAndSmartEasing(), this.rAF = requestAnimationFrame(this.count));\n\t }, t.prototype.printValue = function (t) {\n\t var i = this.formattingFn(t);\n\t this.el && (\"INPUT\" === this.el.tagName ? this.el.value = i : \"text\" === this.el.tagName || \"tspan\" === this.el.tagName ? this.el.textContent = i : this.el.innerHTML = i);\n\t }, t.prototype.ensureNumber = function (t) {\n\t return \"number\" == typeof t && !isNaN(t);\n\t }, t.prototype.validateValue = function (t) {\n\t var i = Number(t);\n\t return this.ensureNumber(i) ? i : (this.error = \"[CountUp] invalid start or end value: \".concat(t), null);\n\t }, t.prototype.resetDuration = function () {\n\t this.startTime = null, this.duration = 1e3 * Number(this.options.duration), this.remaining = this.duration;\n\t }, t;\n\t}();\n\n\t/*! lozad.js - v1.16.0 - 2020-09-06\n\t* https://github.com/ApoorvSaxena/lozad.js\n\t* Copyright (c) 2020 Apoorv Saxena; Licensed MIT */\n\n\t/**\n\t * Detect IE browser\n\t * @const {boolean}\n\t * @private\n\t */\n\tconst isIE = typeof document !== 'undefined' && document.documentMode;\n\tconst defaultConfig = {\n\t rootMargin: '0px',\n\t threshold: 0,\n\n\t load(element) {\n\t if (element.nodeName.toLowerCase() === 'picture') {\n\t let img = element.querySelector('img');\n\t let append = false;\n\n\t if (img === null) {\n\t img = document.createElement('img');\n\t append = true;\n\t }\n\n\t if (isIE && element.getAttribute('data-iesrc')) {\n\t img.src = element.getAttribute('data-iesrc');\n\t }\n\n\t if (element.getAttribute('data-alt')) {\n\t img.alt = element.getAttribute('data-alt');\n\t }\n\n\t if (append) {\n\t element.append(img);\n\t }\n\t }\n\n\t if (element.nodeName.toLowerCase() === 'video' && !element.getAttribute('data-src')) {\n\t if (element.children) {\n\t const childs = element.children;\n\t let childSrc;\n\n\t for (let i = 0; i <= childs.length - 1; i++) {\n\t childSrc = childs[i].getAttribute('data-src');\n\n\t if (childSrc) {\n\t childs[i].src = childSrc;\n\t }\n\t }\n\n\t element.load();\n\t }\n\t }\n\n\t if (element.getAttribute('data-poster')) {\n\t element.poster = element.getAttribute('data-poster');\n\t }\n\n\t if (element.getAttribute('data-src')) {\n\t element.src = element.getAttribute('data-src');\n\t }\n\n\t if (element.getAttribute('data-srcset')) {\n\t element.setAttribute('srcset', element.getAttribute('data-srcset'));\n\t }\n\n\t let backgroundImageDelimiter = ',';\n\n\t if (element.getAttribute('data-background-delimiter')) {\n\t backgroundImageDelimiter = element.getAttribute('data-background-delimiter');\n\t }\n\n\t if (element.getAttribute('data-background-image')) {\n\t element.style.backgroundImage = `url('${element.getAttribute('data-background-image').split(backgroundImageDelimiter).join('\\'),url(\\'')}')`;\n\t } else if (element.getAttribute('data-background-image-set')) {\n\t const imageSetLinks = element.getAttribute('data-background-image-set').split(backgroundImageDelimiter);\n\t let firstUrlLink = imageSetLinks[0].substr(0, imageSetLinks[0].indexOf(' ')) || imageSetLinks[0]; // Substring before ... 1x\n\n\t firstUrlLink = firstUrlLink.indexOf('url(') === -1 ? `url(${firstUrlLink})` : firstUrlLink;\n\n\t if (imageSetLinks.length === 1) {\n\t element.style.backgroundImage = firstUrlLink;\n\t } else {\n\t element.setAttribute('style', (element.getAttribute('style') || '') + `background-image: ${firstUrlLink}; background-image: -webkit-image-set(${imageSetLinks}); background-image: image-set(${imageSetLinks})`);\n\t }\n\t }\n\n\t if (element.getAttribute('data-toggle-class')) {\n\t element.classList.toggle(element.getAttribute('data-toggle-class'));\n\t }\n\t },\n\n\t loaded() {}\n\n\t};\n\n\tfunction markAsLoaded(element) {\n\t element.setAttribute('data-loaded', true);\n\t}\n\n\tfunction preLoad(element) {\n\t if (element.getAttribute('data-placeholder-background')) {\n\t element.style.background = element.getAttribute('data-placeholder-background');\n\t }\n\t}\n\n\tconst isLoaded = element => element.getAttribute('data-loaded') === 'true';\n\n\tconst onIntersection = (load, loaded) => (entries, observer) => {\n\t entries.forEach(entry => {\n\t if (entry.intersectionRatio > 0 || entry.isIntersecting) {\n\t observer.unobserve(entry.target);\n\n\t if (!isLoaded(entry.target)) {\n\t load(entry.target);\n\t markAsLoaded(entry.target);\n\t loaded(entry.target);\n\t }\n\t }\n\t });\n\t};\n\n\tconst getElements = (selector, root = document) => {\n\t if (selector instanceof Element) {\n\t return [selector];\n\t }\n\n\t if (selector instanceof NodeList) {\n\t return selector;\n\t }\n\n\t return root.querySelectorAll(selector);\n\t};\n\n\tfunction lozad(selector = '.lozad', options = {}) {\n\t const {\n\t root,\n\t rootMargin,\n\t threshold,\n\t load,\n\t loaded\n\t } = Object.assign({}, defaultConfig, options);\n\t let observer;\n\n\t if (typeof window !== 'undefined' && window.IntersectionObserver) {\n\t observer = new IntersectionObserver(onIntersection(load, loaded), {\n\t root,\n\t rootMargin,\n\t threshold\n\t });\n\t }\n\n\t const elements = getElements(selector, root);\n\n\t for (let i = 0; i < elements.length; i++) {\n\t preLoad(elements[i]);\n\t }\n\n\t return {\n\t observe() {\n\t const elements = getElements(selector, root);\n\n\t for (let i = 0; i < elements.length; i++) {\n\t if (isLoaded(elements[i])) {\n\t continue;\n\t }\n\n\t if (observer) {\n\t observer.observe(elements[i]);\n\t continue;\n\t }\n\n\t load(elements[i]);\n\t markAsLoaded(elements[i]);\n\t loaded(elements[i]);\n\t }\n\t },\n\n\t triggerLoad(element) {\n\t if (isLoaded(element)) {\n\t return;\n\t }\n\n\t load(element);\n\t markAsLoaded(element);\n\t loaded(element);\n\t },\n\n\t observer\n\t };\n\t}\n\n\t$.fn.hasAttr = function (name) {\n\t return this.attr(name) !== undefined;\n\t}; // ******* Global Variable s*******\n\t// *** Window\n\n\n\tvar ww = $(window).width();\n\tvar body = $(\"body\"); // *** Header *** //\n\n\tvar header = $(\"header\");\n\tvar height_header = header.outerHeight();\n\tvar menu_nav = header.find(\"nav\");\n\tvar burger = header.find(\"#burger\");\n\tvar overlay = $(\"#overlay\"); // *** Nav Mobile *** //\n\n\tvar nav_mobile = $(\".nav-mobile\");\n\tvar close_NB = nav_mobile.find(\".close-nav-mobile\"); // *** Banner *** //\n\n\tvar pagesBanner = $(\"#page-banner\");\n\tvar mainBanner = $(\"#main-banner\"); // *** Footer *** //\n\n\tvar mainSection = $(\"main\");\n\tvar footer = $(\"footer\");\n\n\t // *** Component *** //\n\n\n\tconst headerFunction = {\n\t onScroll: () => {\n\t $(window).on(\"scroll\", function () {\n\t if ($(this).scrollTop() >= header.outerHeight()) {\n\t header.addClass(\"header-scroll\");\n\t } else {\n\t header.removeClass(\"header-scroll\");\n\t }\n\t });\n\t },\n\t removeActiveCpn: () => {\n\t burger.removeClass(\"active\");\n\t nav_mobile.removeClass(\"active\");\n\t overlay.removeClass(\"active\");\n\t body.removeClass(\"ovh\");\n\t header.removeClass(\"navMobileOpen\");\n\t header.find(\".menu-wrapper\").removeClass(\"active\");\n\t },\n\t navMobileSlide: () => {\n\t burger.on(\"click\", function () {\n\t burger.toggleClass(\"active\");\n\t nav_mobile.toggleClass(\"active\");\n\t overlay.toggleClass(\"active\");\n\t body.toggleClass(\"ovh\");\n\t header.toggleClass(\"navMobileOpen\");\n\t header.find(\".menu-wrapper\").toggleClass(\"active\");\n\t });\n\t overlay.on(\"click\", headerFunction.removeActiveCpn);\n\t close_NB.on(\"click\", headerFunction.removeActiveCpn);\n\t $(document).on(\"click\", function (event) {\n\t var $trigger = $(\"header #burger\");\n\t var $trigger_2 = $(\"header .menu-wrapper\");\n\n\t if ($trigger !== event.target && !$trigger.has(event.target).length && $trigger_2 !== event.target && !$trigger_2.has(event.target).length) {\n\t headerFunction.removeActiveCpn();\n\t }\n\t });\n\t },\n\t searchActive: () => {\n\t //\n\t $(\".search-icon\").on(\"click\", function () {\n\t headerFunction.removeActiveCpn();\n\t $(\".search-overlay\").addClass(\"active\");\n\t setTimeout(() => {\n\t $(\".search-overlay .searchbox input\").trigger(\"focus\");\n\t }, 500);\n\t });\n\t $(\".search-overlay .searchbox input\").on(\"focus\", function () {\n\t $(this).parent().addClass(\"active\");\n\t });\n\t $(\".search-overlay .searchbox input\").on(\"focusout\", function () {\n\t $(this).parent().removeClass(\"active\");\n\t });\n\t $(document).on(\"click\", function (event) {\n\t var $trigger = $(\"header .search-icon\");\n\t var $trigger_2 = $(\".search-overlay\");\n\n\t if ($trigger !== event.target && !$trigger.has(event.target).length && $trigger_2 !== event.target && !$trigger_2.has(event.target).length) {\n\t $(\".search-overlay\").removeClass(\"active\");\n\t $(\".search-icon\").removeClass(\"active\");\n\t }\n\t }); // Press ESC to close Search\n\n\t setTimeout(() => {\n\t $(window).on(\"keyup\", function (event) {\n\t var e = event.keyCode;\n\n\t if (e == 27) {\n\t $(\".search-overlay\").removeClass(\"active\");\n\t }\n\t });\n\t }, 500); // Trigger click with 2 button\n\n\t $(\".search-overlay .searchbox input[type='text']\").keypress(function (n) {\n\t if (n.keyCode == 13) $(\".searchbox .searchbutton\").trigger(\"click\"), console.log(\"click\");\n\t });\n\t },\n\t escBtn: () => {\n\t $(window).on(\"keyup\", function (event) {\n\t var e = event.keyCode;\n\n\t if (e == 27) {\n\t headerFunction.removeActiveCpn();\n\t }\n\t });\n\t },\n\t toggleChildMenu: () => {\n\t $(document).on(\"click\", \".nav-mobile nav li.menu-item-has-children >.title\", function (e) {\n\t if (e.target.nodeName != \"A\") {\n\t console.log(\"as\");\n\t $(this).closest(\"li\").siblings().find(\"> ul\").slideUp();\n\t $(this).closest(\"li\").find(\"> ul\").slideToggle();\n\t $(this).closest(\"li\").siblings().removeClass(\"toggle-dropdown\");\n\t $(this).closest(\"li\").toggleClass(\"toggle-dropdown\");\n\t }\n\t });\n\t },\n\t init: () => {\n\t headerFunction.onScroll();\n\t headerFunction.navMobileSlide();\n\t headerFunction.searchActive();\n\t headerFunction.toggleChildMenu();\n\t headerFunction.escBtn();\n\t }\n\t};\n\n\tfunction counterUpNumber(separator = \"\") {\n\t const options = {\n\t separator: separator,\n\t enableScrollSpy: true\n\t };\n\t var counters = document.querySelectorAll(\".counter\");\n\t counters.forEach(counter => {\n\t var countUp = new CountUp(counter, counter.textContent, options);\n\t countUp.start();\n\t });\n\t}\n\n\tfunction fancyboxCustom() {\n\t var closeCircle = ``;\n\t var closeNormal = ``;\n\t $(document).on(\"click\", \".custom-close-fancybox\", function () {\n\t xt.close();\n\t });\n\t xt.bind(\"[data-fancybox]\", {\n\t on: {\n\t done: fancybox => {}\n\t }\n\t });\n\t $(\"[data-fancybox]\").each(function () {\n\t var customFancybox = \"data-popup\";\n\t var name = $(this).attr(customFancybox);\n\t var hasCloseNormal = $(this).attr(\"data-close-normal\");\n\n\t if (name != customFancybox) {\n\t $(this).attr(name, \"\");\n\t xt.bind(`[${name}]`, {\n\t dragToClose: false,\n\t mainClass: hasCloseNormal == \"\" ? `${name} has-custom-close-normal-button` : `${name} has-custom-close-button`,\n\t tpl: {\n\t closeButton: hasCloseNormal == \"\" ? closeNormal : closeCircle\n\t },\n\t on: {\n\t done: function () {\n\t console.log(\"open\");\n\t },\n\t closing: function () {\n\t console.log(\"close\");\n\t }\n\t }\n\t });\n\t }\n\n\t if (name === \"popup-contact-form\") {\n\t $(this).attr(name, \"\");\n\t xt.bind(`[${name}]`, {\n\t dragToClose: false,\n\t parentEl: document.forms[0],\n\t mainClass: hasCloseNormal == \"\" ? `${name} has-custom-close-normal-button` : `${name} has-custom-close-button`,\n\t tpl: {\n\t closeButton: hasCloseNormal == \"\" ? closeNormal : closeCircle\n\t },\n\t on: {\n\t done: function () {\n\t console.log(\"open\");\n\t },\n\t closing: function () {\n\t console.log(\"close\");\n\t }\n\t }\n\t });\n\t }\n\t });\n\t $(\"body\").on(\"click\", '[data-popup=\"popup-contact-form\"]', function () {\n\t console.log(\"click\");\n\t var title = $(this).closest(\".item\").find(\".title\").text() || \"Liên hệ Banner\";\n\t console.log(\"🤌 ~ title:\", title);\n\t $(\"#popup-contact-form\").find(\".form-title input\").val(title);\n\t });\n\t if (window.Sys) Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) {\n\t if (args._errorHandled === false) window.location.reload();\n\t });\n\t}\n\n\tfunction useVariables() {\n\t return {\n\t swiper_main_banner,\n\t counterUpNumber,\n\t globalJS,\n\t lozadInit,\n\t introLoading,\n\t Set_Cookie,\n\t Get_Cookie\n\t };\n\t}\n\n\tfunction activeCommonNav() {\n\t if ($(\"[data-toggle='tabslet']\").length) {\n\t $(\"[data-toggle='tabslet'] ul\").scrollTo(\"li.active\", 0);\n\t }\n\t}\n\n\tfunction onLoadToSection() {\n\t var path = window.location.href;\n\t let destination = \"#\" + path.substr(path.indexOf(\"#\") + 1);\n\t if (destination.length > 1) if ($(destination)?.offset()?.top) $(\"html, body\").animate({\n\t scrollTop: $(destination).offset().top - height_header\n\t }, \"slow\");\n\t}\n\n\tfunction swiperVideo(autoPlayNextVideo) {\n\t /**\n\t * @param true for auto play next video\n\t */\n\t if (mainBanner.length == 1) {\n\t let timer; // Clear Timeout Cache\n\n\t function slideNext(time) {\n\t window.clearTimeout(timer);\n\t timer = setTimeout(() => {\n\t swiper_main_banner.slideNext();\n\t }, time);\n\t }\n\n\t swiper_main_banner.on(\"slideChangeTransitionStart\", function (slide) {\n\t $(\"body\").removeClass(\"videoStartPlaying\");\n\t var videos = document.querySelectorAll(\"#main-banner video\");\n\t videos.forEach(video => {\n\t video.pause();\n\t video.currentTime = 0;\n\t $(video).closest(\".swiper-slide\").removeClass(\"playVideo\");\n\t $(video).closest(\".swiper-slide\").find(\".button-play\").removeClass(\"play\");\n\t });\n\t setTimeout(() => {\n\t if ($(\"#main-banner .swiper-slide-active video\").length != 1) {\n\t slideNext(5000);\n\t } else {\n\t slideNext(99999999);\n\t if (autoPlayNextVideo) setTimeout(() => {\n\t var activeVideo = document.querySelector(\"#main-banner .swiper .swiper-slide-active video\");\n\t getVideoData(activeVideo);\n\t $(\"#main-banner .swiper .swiper-slide\").removeClass(\"playVideo\");\n\t $(\"#main-banner .swiper .swiper-slide\").eq(slide.activeIndex).addClass(\"playVideo\");\n\t }, 500);\n\t }\n\t }, 100); // console.log(\"🤌 ~ slide:\", slide);\n\t });\n\n\t async function getVideoData(video) {\n\t try {\n\t if (video.paused || video.ended) {\n\t await video.play();\n\t $(video).closest(\".swiper-slide\").find(\".button-play\").addClass(\"play\");\n\t video.addEventListener(\"timeupdate\", function () {\n\t const videoDuration = Math.round(video.duration); // console.log(\"videoDuration\", videoDuration);\n\n\t const videoCurrent = Math.round(video.currentTime); // console.log(\"videoCurrent\", videoCurrent);\n\n\t if (videoDuration == videoCurrent) {\n\t video.pause();\n\t video.currentTime = 0;\n\t setTimeout(() => {\n\t swiper_main_banner.slideNext();\n\t }, 1500);\n\t }\n\t });\n\t $(\"body\").addClass(\"videoStartPlaying\");\n\t } else {\n\t $(\"body\").removeClass(\"videoStartPlaying\");\n\t video.pause(); // $(video).closest(\".swiper-slide\").removeClass(\"playVideo\");\n\n\t $(video).closest(\".swiper-slide\").find(\".button-play\").removeClass(\"play\");\n\t }\n\t } catch (err) {\n\t console.log(err);\n\t $(video).closest(\".swiper-slide\").find(\".button-play\").removeClass(\"play\");\n\t $(video).closest(\".swiper-slide\").removeClass(\"playVideo\");\n\t }\n\t }\n\n\t $(\".button-play\").on(\"click\", function () {\n\t var activeVideo = document.querySelector(\"#main-banner .swiper .swiper-slide-active video\");\n\t getVideoData(activeVideo); // swiper_main_banner.autoplay.stop();\n\n\t $(this).closest(\".swiper\").find(\".swiper-slide\").removeClass(\"playVideo\");\n\t $(this).closest(\".swiper-slide\").addClass(\"playVideo\");\n\t }); // On load\n\t // if ($(\"#main-banner .swiper-slide\").eq(0).find(\"video\").length == 1) {\n\t // \tvar activeVideo = document.querySelector(\n\t // \t\t\"#main-banner .swiper .swiper-slide-active video\"\n\t // \t);\n\t // \tfetchVideo(activeVideo.getAttribute(\"src\"))\n\t // \t\t.then(function (videoResponse) {\n\t // \t\t\tif (videoResponse && videoResponse.status === 200) {\n\t // \t\t\t\tsetTimeout(() => {\n\t // \t\t\t\t\tconsole.log(\n\t // \t\t\t\t\t\t\"Video status: \",\n\t // \t\t\t\t\t\tvideoResponse.statusText\n\t // \t\t\t\t\t);\n\t // \t\t\t\t\tgetVideoData(activeVideo);\n\t // \t\t\t\t\t$(\".swiper\")\n\t // \t\t\t\t\t\t.find(\".swiper-slide\")\n\t // \t\t\t\t\t\t.eq(0)\n\t // \t\t\t\t\t\t.addClass(\"playVideo\");\n\t // \t\t\t\t}, 1000);\n\t // \t\t\t} else {\n\t // \t\t\t\tconsole.log(\"Failed to fetch video\");\n\t // \t\t\t}\n\t // \t\t})\n\t // \t\t.catch(function (error) {\n\t // \t\t\tconsole.log(error);\n\t // \t\t});\n\t // }\n\t }\n\t}\n\n\tasync function fetchVideo(src) {\n\t try {\n\t const video = await fetch(src);\n\t return video;\n\t } catch (error) {\n\t console.log(error);\n\t }\n\t}\n\n\tconst noVideoFound = \"No Video Found\";\n\n\tfunction youtubeCustom() {\n\t var target = $(\".has-youtube-video\");\n\t var autoLoading = target.hasAttr(\"auto-load\"); // console.log(\"🤌 ~ youtubeCustom ~ autoLoading:\", autoLoading);\n\t // Load the YouTube script asynchronously\n\n\t var tag = document.createElement(\"script\");\n\t tag.src = \"https://www.youtube.com/player_api\";\n\t var firstScriptTag = document.getElementsByTagName(\"script\")[0];\n\t firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); // Wait for the YouTube script to load\n\n\t var youtubeScriptLoaded = new Promise(resolve => {\n\t window.onYouTubePlayerAPIReady = function () {\n\t resolve();\n\t };\n\t });\n\t target.each(function (index) {\n\t var element = $(this);\n\t var click = 0;\n\t var player;\n\t var button = $(this).find(\".video-toggle\");\n\n\t if (autoLoading) {\n\t triggerYoutubeLoad(index, element, target);\n\t } else {\n\t button.on(\"click\", function () {\n\t triggerYoutubeLoad(index, element, target);\n\t });\n\t }\n\n\t function triggerYoutubeLoad(index, element, target) {\n\t click++;\n\n\t if (click == 1) {\n\t var youtubeUrl = element.closest(target).attr(\"data-embed\");\n\t const youtubeEmbedLink = generateYouTubeEmbed(youtubeUrl);\n\n\t if (youtubeEmbedLink !== \"No Video Found\") {\n\t element.closest(target).append(``); // Wait for the YouTube script to load before calling VideoLoad\n\n\t youtubeScriptLoaded.then(() => {\n\t VideoLoad(`VYT-place-${index}`, target);\n\t });\n\t } else if (click == 1 && youtubeEmbedLink === \"No Video Found\") {\n\t element.closest(target).append(\"Sai đường dẫn video\");\n\t }\n\t }\n\t }\n\n\t function VideoLoad(id, target) {\n\t function playVideo() {\n\t player.playVideo();\n\t }\n\n\t function pauseVideo() {\n\t player.pauseVideo();\n\t }\n\n\t function createPlayer() {\n\t player = new YT.Player(id, {\n\t events: {\n\t onReady: onPlayerReady,\n\t onStateChange: onPlayerStateChange\n\t }\n\t });\n\t }\n\n\t createPlayer();\n\n\t function onPlayerReady(event) {\n\t target.find(\".title\").text(event.target.videoTitle);\n\t event.target.setOption(\"playerVars\", {\n\t modestbranding: 1,\n\t rel: 1,\n\t showinfo: 0\n\t });\n\t } //! Pause video on swiper change\n\t // if (project_detail_3 && project_detail_3.enabled && !videoLoaded) {\n\t // \tproject_detail_3.on(\"slideChangeTransitionStart\", function () {\n\t // \t\tpauseVideo();\n\t // \t});\n\t // }\n\n\n\t function onPlayerStateChange() {\n\t console.log(YT.PlayerState);\n\t console.log(event.data);\n\t var data = JSON.parse(event.data);\n\n\t if (data.info == YT.PlayerState.PLAYING) {\n\t target.addClass(\"active\");\n\t button.addClass(\"active\");\n\t } else {\n\t target.removeClass(\"active\");\n\t button.removeClass(\"active\");\n\t }\n\t }\n\n\t button.on(\"click\", function () {\n\t //Paused\n\t if (player.playerInfo.playerState == 1) {\n\t pauseVideo();\n\t } else {\n\t playVideo();\n\t }\n\t });\n\t }\n\t });\n\t}\n\n\tfunction generateYouTubeEmbed(url) {\n\t // Regular expression for matching YouTube URLs\n\t var urlRegex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/; // Try to extract a valid video ID from the URL using the regular expression\n\n\t var match = url.match(urlRegex);\n\n\t if (match && match[2].length == 11) {\n\t // If a valid video ID was found, generate and return the complete YouTube embed URL with autoplay and other options\n\t var videoId = match[2];\n\t var embedUrl = \"https://www.youtube.com/embed/\" + videoId + \"?&enablejsapi=1&controls=0&loop=0&playsinline=1&color=white&rel=0&cc_load_policy=1&modestbranding=1&playlist=\" + videoId;\n\t return embedUrl;\n\t } else {\n\t // If no valid video ID was found, return \"no video found\"\n\t return noVideoFound;\n\t }\n\t}\n\n\tfunction tablsetSetting() {\n\t $(\".tabslet-tab a\").on(\"click\", function () {\n\t var object = [];\n\t var id = $(this).attr(\"href\");\n\t object = id.split(\"#\");\n\t var $this = $(this); // console.log(object[1]);\n\n\t setTimeout(() => {\n\t activeCommonNav();\n\t }, 300);\n\t });\n\t}\n\n\tfunction expandContent() {\n\t $(\".expand-ctn\").off(\"click\");\n\t $(\".module-expand-ctn\").each(function () {\n\t $(this).find(\".expand-ctn\").show();\n\t $(this).find(\".expand-ctn\").removeClass(\"active\");\n\t $(this).find(\".full-content\").removeClass(\"active\");\n\t var contentHeight = $(this).find(\".expand-ctn\").siblings(\".full-content\");\n\t var scrollHeight = contentHeight[0].scrollHeight; // console.log(\"🤌 ~ expandContent ~ scrollHeight:\", scrollHeight);\n\n\t var limitHeight = contentHeight[0].clientHeight; // console.log(\"🤌 ~ expandContent ~ limitHeight:\", limitHeight);\n\n\t if (scrollHeight <= limitHeight) {\n\t $(this).find(\".expand-ctn\").hide();\n\t } else {\n\t $(this).find(\".expand-ctn\").show();\n\t }\n\t });\n\t $(\".expand-ctn\").on(\"click\", function () {\n\t console.log(\"click\");\n\t $(\".module-scroll-content li\").removeClass(\"active\");\n\t $(\".module-scroll-content li\").eq(0).addClass(\"active\");\n\n\t if ($(this).is(\".active\")) {\n\t $(this).removeClass(\"active\");\n\t $(this).siblings(\".full-content\").removeClass(\"active\");\n\t $(\"html,body\").animate({\n\t scrollTop: $(\".module-scroll-content .full-content\").offset().top - height_header\n\t });\n\t } else {\n\t $(this).addClass(\"active\");\n\t $(this).siblings(\".full-content\").addClass(\"active\");\n\t }\n\t });\n\t}\n\n\tconst PageProductDetail = {\n\t highlightContentSection: () => {\n\t //\n\t var sections = $(\".module-scroll-content .item\");\n\t var navigationLinks = $(\".module-scroll-content li\");\n\t $(window).on(\"scroll\", function () {\n\t var currentPosition = $(this).scrollTop();\n\t var isLastSection = currentPosition + $(window).height() >= $(document).height();\n\t sections.each(function () {\n\t var sectionTop = $(this).offset().top - height_header;\n\t var sectionBottom = sectionTop + $(this).outerHeight();\n\n\t if (currentPosition >= sectionTop && currentPosition <= sectionBottom) {\n\t var targetLink = $('a[href=\"#' + $(this).attr(\"id\") + '\"]').parent();\n\t navigationLinks.removeClass(\"active\");\n\t targetLink.addClass(\"active\");\n\t }\n\t });\n\n\t if (isLastSection) {\n\t navigationLinks.removeClass(\"active\");\n\t navigationLinks.last().addClass(\"active\");\n\t }\n\t });\n\t $(\".module-scroll-content li a\").on(\"click\", function (e) {\n\t e.preventDefault();\n\t var href = $(this).attr(\"href\");\n\t href = href.split(\"#\");\n\t var id = href[href.length - 1];\n\t $(\".module-scroll-content li\").removeClass(\"active\");\n\t $(this).parent().addClass(\"active\");\n\t var container = $(\".module-scroll-content .full-content\");\n\t container.addClass(\"active\");\n\t container.siblings().addClass(\"active\");\n\t var contentSection = $(`.module-scroll-content .content-wrapper [id=\"${id}\"]`); // if (!$(\".module-scroll-content .expand-ctn\").is(\":visible\")) {\n\n\t contentSection.addClass(\"highlight\");\n\t setTimeout(() => {\n\t contentSection.removeClass(\"highlight\");\n\t }, 700); // }\n\n\t if (container.is(\".active\")) {\n\t $(\"html,body\").animate({\n\t scrollTop: contentSection.offset().top - height_header\n\t });\n\t } else {\n\t $(\"html,body\").animate({\n\t scrollTop: container.offset().top - height_header\n\t });\n\t container.scrollTo(contentSection, 500);\n\t }\n\t });\n\t },\n\t toggleBuyButton: () => {\n\t $(\".product-detail-1 .button .btn\").on(\"click\", function () {\n\t $(\".product-detail-1 .buy-link-hidden\").slideToggle();\n\t });\n\t },\n\t init: () => {\n\t PageProductDetail.highlightContentSection();\n\t PageProductDetail.toggleBuyButton();\n\t }\n\t};\n\n\tfunction addCssCdn(url) {\n\t var link = document.createElement(\"link\");\n\t link.href = url;\n\t link.rel = \"stylesheet\";\n\t document.head.appendChild(link);\n\t}\n\n\tvar styles$1 = [\"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,200;1,300;1,400;1,500;1,600;1,700;1,800&display=swap\"];\n\n\tfunction NewsTemplate() {\n\t if ($(\"body.news-detail-page\").length) {\n\t $(\".news-list-2 >.container\").removeClass();\n\t $(\".news-list-2\").removeClass();\n\t }\n\t}\n\n\tfunction introLoading() {\n\t var cookieName = \"setIntroLoading\";\n\t var getCookie = Get_Cookie(cookieName);\n\t const target = $(\".page-intro\");\n\n\t if (target.length) {\n\t if (getCookie) {\n\t console.log(\"has cookie\");\n\t target.remove();\n\t $(\".homepage\").addClass(\"showHomePage\");\n\t } else {\n\t const video = target.find(\"video\");\n\t target.addClass(\"active\");\n\t video.on(\"loadedmetadata\", function () {\n\t console.log(\"Video duration:\", video[0].duration); // Use the video duration as needed here\n\n\t setTimeout(() => {\n\t target.fadeOut();\n\t }, video[0].duration * 1000);\n\t Set_Cookie(cookieName, true, 5);\n\t $(\".homepage\").addClass(\"showHomePage\");\n\t });\n\t fetchVideo(video.attr(\"src\")).then(function (videoResponse) {\n\t if (videoResponse && videoResponse.status === 200) {\n\t video[0].play();\n\t } else {\n\t target.fadeOut();\n\t }\n\t }).catch(function (error) {\n\t console.log(error);\n\t target.fadeOut();\n\t });\n\t }\n\t } else {\n\t target.remove();\n\t $(\".homepage\").addClass(\"showHomePage\");\n\t }\n\t}\n\n\tconst observer = lozad(\".lozad\", {\n\t rootMargin: \"10px 0px\",\n\t // syntax similar to that of CSS Margin\n\t threshold: 0.2,\n\t // ratio of element convergence\n\t enableAutoReload: true // it will reload the new image when validating attributes changes\n\n\t});\n\n\tfunction lozadInit() {\n\t observer.observe();\n\t}\n\n\tfunction Get_Cookie(check_name) {\n\t const cookiePairs = document.cookie.split(\"; \");\n\n\t for (let i = 0; i < cookiePairs.length; i++) {\n\t const pair = cookiePairs[i].split(\"=\");\n\t const name = pair[0].trim();\n\n\t if (name === check_name) {\n\t return decodeURIComponent(pair[1]);\n\t }\n\t }\n\t}\n\n\tfunction Set_Cookie(name, value, expires, path, domain, secure) {\n\t var today = new Date();\n\t today.setTime(today.getTime());\n\n\t if (expires) {\n\t expires = expires * 1000 * 60 * 60;\n\t }\n\n\t var expires_date = new Date(today.getTime() + expires);\n\t document.cookie = name + \"=\" + escape(value) + (expires ? \";expires=\" + expires_date.toGMTString() : \"\") + (path ? \";path=\" + path : \"\") + (domain ? \";domain=\" + domain : \"\") + (secure ? \";secure\" : \"\");\n\t}\n\n\t$(document).ready(function () {\n\t // ---***--- Intro ---***---\n\t introLoading();\n\n\t for (var i = 0; i < styles$1.length; i++) {\n\t addCssCdn(styles$1[i]);\n\t } // ---***--- Global JS ---***---\n\n\n\t globalJS.init(); // ---***--- Header ---***---\n\n\t headerFunction.init(); // ---***--- Swiper Init ---***---\n\n\t swiperInit();\n\t swiperVideo(); // ---***--- Body ---***---\n\t // activeCommonNav();\n\n\t counterUpNumber(); // Template Page\n\t // ---***--- Fancybox ---***---\n\n\t fancyboxCustom(); // ---***--- Other ---***---\n\n\t youtubeCustom();\n\t tablsetSetting();\n\t expandContent();\n\t NewsTemplate(); // ---***--- Lozad ---***---\n\n\t lozadInit();\n\t});\n\t$(window).resize(function () {\n\t height_header = header.outerHeight();\n\t $(\"html\").css({\n\t \"--header-height\": height_header + \"px\"\n\t });\n\t});\n\t$(window).trigger(\"resize\"); // ***** Preload ***** //\n\n\tdocument.onreadystatechange = () => {\n\t if (document.readyState === \"complete\") {\n\t /**\n\t * Turn on when Deploy\n\t */\n\t pagesBanner.addClass(\"initial\"); //\n\t //\n\n\t height_header = header.outerHeight();\n\t $(\"html\").css({\n\t \"--header-height\": height_header + \"px\"\n\t }); //\n\t //\n\t // Load to section\n\n\t if (window.location.href.indexOf(\"#\") != -1) {\n\t onLoadToSection();\n\t }\n\n\t PageProductDetail.init();\n\t }\n\t};\n\n\twindow.externalJS = {\n\t useVariables\n\t};\n\n\texports.footer = footer;\n\texports.header = header;\n\texports.ww = ww;\n\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n"]}