{"version":3,"sources":["main.js"],"names":["global","factory","exports","module","define","amd","self","main","this","globalJS","autoFillNoImage","setTimeout","$","each","hasAttr","attr","addClass","autoAppend","e","id","slice","appendTo","get","scrollHeight","autoClone","clone","setBackground","jQuery","index","item","background","css","scrollToTop","window","on","scrollTop","outerHeight","removeClass","animate","checkListItem","inputButtonSubmit","parent","is","val","init","isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","getWindow","win","Dom7","Array","items","super","makeReactive","proto","__proto__","defineProperty","set","value","arrayFlat","arr","res","el","isArray","push","arrayFilter","prototype","filter","call","$$1","selector","context","html","trim","indexOf","toCreate","tempParent","innerHTML","i","qsa","a","nodeType","arrayUnique","uniqueArray","fn","Methods","classes","classNames","map","c","split","classList","add","remove","hasClass","className","contains","toggleClass","toggle","attrs","arguments","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","args","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","apply","parents","k","handleEvent","undefined","events","j","event","dom7LiveListeners","proxyListener","dom7Listeners","off","handlers","handler","dom7proxy","splice","trigger","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","parseFloat","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollY","scrollLeft","scrollX","top","left","props","prop","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parentNode","closest","find","foundElements","found","removeChild","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","getComputedStyle$1","currentStyle","WebKitCSSMatrix","webkitTransform","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","isObject$1","o","isNode","node","HTMLElement","extend$1","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","support","deviceCached","browser","getSupport","calcSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","checkPassiveListener","supportsPassive","opts","gestures","checkGestures","getDevice","overrides","calcDevice","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","getBrowser","calcBrowser","isSafari","toLowerCase","isWebView","test","methodName","writable","eventsEmitter","priority","eventsListeners","destroyed","method","once","onceHandler","__emitterProxy","_len","_key","onAny","eventsAnyListeners","offAny","eventHandler","emit","_len2","_key2","update","updateSize","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","assign","size","updateSlides","getDirectionLabel","property","marginRight","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","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","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","slideTo","initial","Error","indexAsNumber","isFinite","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","t","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","loopedSlidesLimit","prependSlides","appendSlides","cloneNode","diff","loopDestroy","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","closestElement","base","__closestFrom","assignedSlot","getRootNode","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","composedPath","lastClickTime","currentPos","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","start","passiveListeners","passive","move","end","cancel","updateOnWindowResize","events$1","attachEvents","bind","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","b","addClasses","suffixes","prepareClasses","entries","prefix","resultClasses","autoheight","centered","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","defaults","resizeObserver","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","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","options","getWrapper","wrapper","destroy","deleteInstance","cleanStyles","deleteProps","object","static","newDefaults","m","installModule","createElementIfNotDefined","checkProps","element","Navigation","getEl","toggleEl","disabled","disabledClass","tagName","lockClass","$nextEl","$prevEl","onPrevClick","onNextClick","hideOnClick","hiddenClass","navigationDisabledClass","_s","targetEl","pagination","clickable","isHidden","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","position","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","Scrollbar","dragStartPos","dragSize","trackSize","divider","timeout","dragTimeout","scrollbar","$dragEl","newSize","newPos","hide","opacity","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","returnValue","onDragEnd","snapOnRelease","activeListener","eventMethod","$swiperEl","dragClass","dragEl","draggable","enableDraggable","disableDraggable","scrollbarDisabledClass","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","stop","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","pauseOnMouseEnter","attachMouseEvents","detachMouseEvents","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","effectTarget","effectParams","$slideEl","transformEl","createShadow","shadowClass","$shadowContainer","$shadowEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","perspective","rotate","getTranslateValue","effectInit","overwriteParams","recreateShadows","getEffectParams","requireUpdateOnVirtual","overwriteParamsResult","slideShadows","isCenteredSlides","margin","r","custom","zIndex","round","translateString","rotateString","scaleString","opacityString","shadow","shadowOpacity","effectVirtualTransitionEnd","allSlides","$transitionEndTarget","eventTriggered","triggerEvents","swiperInit","observer","observeParents","home_2_thumb","home_6","slideChange","autoSlideNextOnThumbSlide","initSwiper","thumb","ww","home_7","product_other","prototypeGroup","protoMethod","use","Resize","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","Observer","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeSlideChildren","containerParents","disconnect","n","s","DOMParser","parseFromString","PANUP","PANDOWN","PANLEFT","PANRIGHT","ZOOMIN","ZOOMOUT","TOGGLEZOOM","TOGGLE1TO1","ITERATEZOOM","ROTATECCW","ROTATECW","FLIPX","FLIPY","FITX","FITY","RESET","TOGGLEFS","l","dragToClose","hideScrollbar","Carousel","container","viewport","track","contentClick","contentDblClick","backdropClick","animated","idle","showClass","hideClass","commonCaption","parentEl","startIndex","l10n","CLOSE","NEXT","PREV","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","wheel","h","Init","Ready","Closing","CustomClosing","Destroy","Loading","Opening","d","reduce","u","configurable","Map","setOptions","getOwnPropertyNames","getPrototypeOf","startsWith","option","optionFor","cn","localize","String","substring","includes","p","attachPlugins","plugins","detach","detachPlugins","values","f","queueMicrotask","slug","g","parseURL","vt","getInstance","carousel","getSlide","triggerEl","dataset","fancybox","hasSilentClose","close","startFromUrl","onChange","instance","timer","isOpeningSlide","URL","origHash","title","onClose","pop","Hash","readyState","EPSILON","Element","offsetParent","overflowY","parentElement","w","S","nativePointer","Touch","identifier","E","P","startCallback","moveCallback","endCallback","onPointerStart","onMove","buttons","currentPointers","some","triggerPointerStart","onPointerEnd","onWindowBlur","from","findIndex","triggerPointerEnd","startPointers","clear","Event","M","pow","C","T","Panning","Mousemove","O","A","content","panMode","dragMinThreshold","lockAxis","mouseMoveFactor","mouseMoveFriction","zoom","pinchToZoom","panOnlyZoomed","minScale","maxScale","friction","dragFriction","decelFriction","click","dblClick","wheelLimit","spinner","bounds","infinite","rubberband","bounce","maxVelocity","transformParent","isLoading","canZoomIn","canZoomOut","isDraggable","isDragging","inFullscreen","htmlHasFullscreen","L","z","R","I","D","F","isTouchDevice","isMobile","isInfinite","angle","targetAngle","targetScale","fullScale","fullWidth","fitWidth","coverScale","containerRect","fitHeight","isScaling","isResting","isContentLoading","HTMLImageElement","isBouncingX","isBouncingY","ignoreBounds","checkBounds","inBounds","right","bottom","fullHeight","initContent","Plugins","onLoad","onError","firstElementChild","state","attachObserver","updateTimer","detachObserver","onWheel","pointerTracker","onPointerDown","onPointerMove","onPointerUp","onMouseMove","onKeydown","clickTimer","setTargetForce","setTransform","setEdgeForce","rAF","getBounds","xDiff","yDiff","clampTargetBounds","calculateContentDim","maxWidth","maxHeight","getMatrix","DOMPoint","matrixTransform","contentWidth","contentHeight","DOMMatrixReadOnly","updateMetrics","trackingPoints","startDecelAnim","defaultPrevented","hasAttribute","getSelection","panzoomChange","panzoomAction","JSON","parse","console","warn","applyChange","dragOffset","dragStart","clicks","addTrackingPoint","removeAllRanges","lockedAxis","originX","originY","panX","panY","isTicking","deltaY","deltaX","prevWheelTime","prevWheelDelta","zoomWithWheel","panWithMouse","toggleFS","requestTick","paddingTop","paddingBottom","naturalWidth","SVGElement","baseVal","scrollWidth","naturalHeight","cssText","zoomTo","updateControls","toggleMax","toggleCover","toggleZoom","panTo","flipX","flipY","DOMMatrix","multiply","prevMouseMoveEvent","wheelDelta","zoomIn","zoomOut","zoomToFit","zoomToCover","zoomToFull","zoomToMax","iterateZoom","rotateCCW","rotateCW","fitX","fitY","reset","Promise","H","onCreateSlide","setContent","then","isClosing","contentEl","thumbElSrc","getZoomInfo","done","hideLoading","revealContent","setError","onRemoveSlide","panzoom","backgroundImage","pageYOffset","pageXOffset","showLoading","alt","caption","pages","isCompact","ready","error","thumbEl","initialSize","Panzoom","protected","zoomOpacity","B","URLSearchParams","N","W","onInitSlide","processType","closeBtnEl","xhr","abort","iframeEl","placeholderEl","onSelectSlide","playVideo","onUnselectSlide","func","contentWindow","postMessage","stringify","poller","onDone","isCurrentSlide","onRefresh","setAspectRatio","resizeIframe","onMessage","getElementsByClassName","HTMLIFrameElement","source","loadAjaxContent","XMLHttpRequest","onreadystatechange","DONE","status","responseText","ajax","open","setRequestHeader","send","setInlineContent","placeholderId","animationName","setIframeContent","autoSize","preload","flex","play","catch","muted","encodeURIComponent","videoId","thumbSrc","charAt","videoFormat","poster","aspectRatio","videoAutoplay","videoRatio","videoTpl","vimeo","byline","color","controls","dnt","youtube","enablejsapi","rel","fs","$$2","isActive","page","removeProgressBar","onSettle","resume","inHover","onTimerEnd","progressBar","createProgressBar","pauseOnHover","progressParentEl","showProgress","X","onPrepare","endIdle","ref","playOnStart","Y","isSelected","hasThumbs","minCount","thumbTpl","q","Hidden","Disabled","Z","formatThumb","getSlides","customClass","getProgress","contentDim","pos","dim","thumbClipWidth","thumbHeight","onInitSlides","build","onRefreshM","refreshModern","onChangeM","shouldCenter","centerModern","onClickModern","carouselIndex","elementFromPoint","thumbGap","thumbExtraGap","onTransformM","thumbSlideEl","thumbWidth","buildClassic","center","dragFree","slidesPerPage","Dots","Sync","buildModern","updateModern","resizeModernSlide","getModernThumbPos","lazyLoadModern","inTransition","prevPage","lazySrc","cleanup","after","V","showOnStart","G","hidden","onInit","footer","Thumbs","refresh","show","U","panLeft","icon","change","panRight","panUp","panDown","action","toggle1to1","K","Q","tabindex","viewBox","xmlns","tt","middle","createEl","createContainer","fancyboxToggleThumbs","fancyboxToggleFullscreen","toggleFullscreen","fancyboxToggleSlideshow","fsAPI","downloadSrc","toUpperCase","removeContainer","absolute","infobar","download","slideshow","fullscreen","et","Html","Images","Slideshow","Toolbar","it","nt","Node","ELEMENT_NODE","ot","at","isDom","class","gap","rt","ct","list","isDynamic","createItem","hasDots","dot","isBeforePrev","isPrev","isCurrent","isNext","isAfterNext","dotTpl","dynamicFrom","maxCount","ht","createButton","isRTL","nextTpl","prevTpl","dt","addAsTargetFor","nav","addAsNavFor","initialPage","onNavReady","onTargetReady","onNavCreateSlide","onNavClick","onNavTouch","onTargetChange","pointerType","getPageForSlide","markSelectedSlide","selectedIndex","ut","pt","viewportDim","Set","userOptions","userPlugins","processOptions","bp","initLayout","setInitialPosition","initPanzoom","isLTR","setInitialPage","setViewportHeight","onDecel","onBeforeTransform","onEndAnimation","onSlideTo","createPages","processPages","getPageFromIndex","getSlideMetrics","visibility","repositionSlides","has","createSlideEl","nextSibling","removeSlideEl","transitionTo","clearTransitions","onAnimationEnd","manageSlideVisiblity","getVisibleSlides","lazyLoadSlide","markSelectedSlides","flipInfiniteTrack","lazySrcset","delete","pageIndex","getPageFromPosition","log","carouselPage","carouselNext","carouselPrev","reInit","prependSlide","reverse","appendSlide","removeSlide","interval","replaceWith","adaptiveHeight","GOTO","mt","ft","gt","bt","isIdle","fullscreenEnabled","webkitFullscreenEnabled","request","ALLOW_KEYBOARD_INPUT","exit","isFullscreen","userSlides","initCarousel","manageCaption","captionEl","spinnerEl","idleTimer","setIdle","checkFocus","onMousemove","onFocus","resetIdle","toggleIdle","wheelDeltaY","deltaMode","isTopmost","ctrlKey","altKey","shiftKey","clearIdle","focus","manageCloseBtn","fancyboxCaption","ignoreFocusChange","origTabindex","tabIndex","lastFocus","preventScroll","jumpTo","currentTarget","createRange","createContextualFragment","clearContent","proceedClose","resolve","pointerEvents","openers","fromEvent","metaKey","fancyboxTrigger","fancyboxIndex","delegate","fromNodes","globalThis","createCommonjsModule","splitting","root","createText","createTextNode","whitespace","getData","Array2D","selectFrom","cssVar","resolvePlugins","by","deps","depends","indexOfParent","createPlugin","splitText","splitOn","includePrevious","preserveWhitespace","elements","createDocumentFragment","allElements","hasChildNodes","wholeText","contents","splitEl","copy","dest","WORDS","wordPlugin","CHARS","charPlugin","ctx","results","word","Splitting","force","opts2","plugin","pluginBy","key2","outerHTML","detectGrid","matching","byNumber","linePlugin","itemPlugin","rowPlugin","columnPlugin","gridPlugin","LAYOUT","layoutPlugin","columns","img","totalCells","cell","cellRowPlugin","rowCount","result","cellColumnPlugin","columnCount","cellPlugin","opt","aos","loaded","__esModule","default","hasOwnProperty","easing","startEvent","throttleDelay","debounceDelay","disableMutationObserver","mobile","phone","tablet","all","atob","isSupported","info","refreshHard","TypeError","leading","maxWait","trailing","flush","valueOf","Symbol","iterator","NaN","Function","WebKitMutationObserver","MozMutationObserver","subtree","removedNodes","addedNodes","concat","vendor","opera","anchor","anchorPlacement","AOS","unwrapExports","name","header","height_header","burger","overlay","nav_mobile","close_NB","pagesBanner","mainSection","headerFunction","removeActiveCpn","navMobileSlide","searchActive","$trigger","$trigger_2","keyup","keyCode","keypress","userAuthorize","escBtn","menuMobileNav","siblings","slideUp","slideToggle","menuDelayItem","counterUpNumber","separator","enableScrollSpy","counter","CountUp","expandItem","hasLoadBtn","count","$this","expandBtn","countMobile","expand","isFlex","initValue","thisFunction","slideDown","expandBtnInit","initCount","templateIntroduce","coverImagePage","setDelayCharSplitting","toggleFaqsAskModule","fancyboxCustom","mainClass","template","closing","ccPaginationMapping","activeCommonNav","accordion","mappingJS","colMiddle","colLeft","colRight","arrowButton","searchWrap","mapping","mobileWrapper","mobileMethod","desktopWrapper","desktopMethod","changeMap","backToTop","changeTextOnEN","resize","screenImage","touchItem","aosAnimation","onLoadToSection","onscroll","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\tconst globalJS = {\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 $(\"main ol\").each(function () {\n\t $(this).addClass(\"list-ol-added\");\n\t });\n\t },\n\t inputButtonSubmit: () => {\n\t $(\"input[type='submit']\").each(function () {\n\t if ($(this).parent().is(\".btn\")) {\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 init: () => {\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.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 $$1(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 ($$1(target).is(targetSelector)) listener.apply(target, eventData);else {\n\t const parents = $$1(target).parents(); // eslint-disable-line\n\n\t for (let k = 0; k < parents.length; k += 1) {\n\t if ($$1(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 $$1(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 = $$1(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 $$1([]);\n\t }\n\n\t if (index < 0) {\n\t const returnIndex = length + index;\n\t if (returnIndex < 0) return $$1([]);\n\t return $$1([this[returnIndex]]);\n\t }\n\n\t return $$1([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 && $$1(this[0].nextElementSibling).is(selector)) {\n\t return $$1([this[0].nextElementSibling]);\n\t }\n\n\t return $$1([]);\n\t }\n\n\t if (this[0].nextElementSibling) return $$1([this[0].nextElementSibling]);\n\t return $$1([]);\n\t }\n\n\t return $$1([]);\n\t}\n\n\tfunction nextAll(selector) {\n\t const nextEls = [];\n\t let el = this[0];\n\t if (!el) return $$1([]);\n\n\t while (el.nextElementSibling) {\n\t const next = el.nextElementSibling; // eslint-disable-line\n\n\t if (selector) {\n\t if ($$1(next).is(selector)) nextEls.push(next);\n\t } else nextEls.push(next);\n\n\t el = next;\n\t }\n\n\t return $$1(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 && $$1(el.previousElementSibling).is(selector)) {\n\t return $$1([el.previousElementSibling]);\n\t }\n\n\t return $$1([]);\n\t }\n\n\t if (el.previousElementSibling) return $$1([el.previousElementSibling]);\n\t return $$1([]);\n\t }\n\n\t return $$1([]);\n\t}\n\n\tfunction prevAll(selector) {\n\t const prevEls = [];\n\t let el = this[0];\n\t if (!el) return $$1([]);\n\n\t while (el.previousElementSibling) {\n\t const prev = el.previousElementSibling; // eslint-disable-line\n\n\t if (selector) {\n\t if ($$1(prev).is(selector)) prevEls.push(prev);\n\t } else prevEls.push(prev);\n\n\t el = prev;\n\t }\n\n\t return $$1(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 ($$1(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 $$1(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 ($$1(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 $$1(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 $$1([]);\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 $$1(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 || $$1(childNodes[j]).is(selector)) {\n\t children.push(childNodes[j]);\n\t }\n\t }\n\t }\n\n\t return $$1(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($$1.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 || $$1([])).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 = $$1(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 = $$1(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($$1(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($$1(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 ? $$1($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 = $$1(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 $$1(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($$1(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($$1(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 = $$1(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 = $$1(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 && $$1(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 (!$$1(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 && $$1(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 = $$1(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 && $$1(params.el).length > 1) {\n\t const swipers = [];\n\t $$1(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.$ = $$1; // 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: $$1(),\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 = $$1(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 = $$1(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 $$1($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 = $$1(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 = $$1(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 && !$$1(targetEl).is($prevEl) && !$$1(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 = $$1(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 = $$1(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 ($$1(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 = $$1(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 && !$$1(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\tfunction Scrollbar(_ref) {\n\t let {\n\t swiper,\n\t extendParams,\n\t on,\n\t emit\n\t } = _ref;\n\t const document = getDocument();\n\t let isTouched = false;\n\t let timeout = null;\n\t let dragTimeout = null;\n\t let dragStartPos;\n\t let dragSize;\n\t let trackSize;\n\t let divider;\n\t extendParams({\n\t scrollbar: {\n\t el: null,\n\t dragSize: 'auto',\n\t hide: false,\n\t draggable: false,\n\t snapOnRelease: true,\n\t lockClass: 'swiper-scrollbar-lock',\n\t dragClass: 'swiper-scrollbar-drag',\n\t scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n\t horizontalClass: `swiper-scrollbar-horizontal`,\n\t verticalClass: `swiper-scrollbar-vertical`\n\t }\n\t });\n\t swiper.scrollbar = {\n\t el: null,\n\t dragEl: null,\n\t $el: null,\n\t $dragEl: null\n\t };\n\n\t function setTranslate() {\n\t if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\t const {\n\t scrollbar,\n\t rtlTranslate: rtl,\n\t progress\n\t } = swiper;\n\t const {\n\t $dragEl,\n\t $el\n\t } = scrollbar;\n\t const params = swiper.params.scrollbar;\n\t let newSize = dragSize;\n\t let newPos = (trackSize - dragSize) * progress;\n\n\t if (rtl) {\n\t newPos = -newPos;\n\n\t if (newPos > 0) {\n\t newSize = dragSize - newPos;\n\t newPos = 0;\n\t } else if (-newPos + dragSize > trackSize) {\n\t newSize = trackSize + newPos;\n\t }\n\t } else if (newPos < 0) {\n\t newSize = dragSize + newPos;\n\t newPos = 0;\n\t } else if (newPos + dragSize > trackSize) {\n\t newSize = trackSize - newPos;\n\t }\n\n\t if (swiper.isHorizontal()) {\n\t $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n\t $dragEl[0].style.width = `${newSize}px`;\n\t } else {\n\t $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n\t $dragEl[0].style.height = `${newSize}px`;\n\t }\n\n\t if (params.hide) {\n\t clearTimeout(timeout);\n\t $el[0].style.opacity = 1;\n\t timeout = setTimeout(() => {\n\t $el[0].style.opacity = 0;\n\t $el.transition(400);\n\t }, 1000);\n\t }\n\t }\n\n\t function setTransition(duration) {\n\t if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\t swiper.scrollbar.$dragEl.transition(duration);\n\t }\n\n\t function updateSize() {\n\t if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\t const {\n\t scrollbar\n\t } = swiper;\n\t const {\n\t $dragEl,\n\t $el\n\t } = scrollbar;\n\t $dragEl[0].style.width = '';\n\t $dragEl[0].style.height = '';\n\t trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\t divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n\t if (swiper.params.scrollbar.dragSize === 'auto') {\n\t dragSize = trackSize * divider;\n\t } else {\n\t dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n\t }\n\n\t if (swiper.isHorizontal()) {\n\t $dragEl[0].style.width = `${dragSize}px`;\n\t } else {\n\t $dragEl[0].style.height = `${dragSize}px`;\n\t }\n\n\t if (divider >= 1) {\n\t $el[0].style.display = 'none';\n\t } else {\n\t $el[0].style.display = '';\n\t }\n\n\t if (swiper.params.scrollbar.hide) {\n\t $el[0].style.opacity = 0;\n\t }\n\n\t if (swiper.params.watchOverflow && swiper.enabled) {\n\t scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n\t }\n\t }\n\n\t function getPointerPosition(e) {\n\t if (swiper.isHorizontal()) {\n\t return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n\t }\n\n\t return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n\t }\n\n\t function setDragPosition(e) {\n\t const {\n\t scrollbar,\n\t rtlTranslate: rtl\n\t } = swiper;\n\t const {\n\t $el\n\t } = scrollbar;\n\t let positionRatio;\n\t positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n\t positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n\t if (rtl) {\n\t positionRatio = 1 - positionRatio;\n\t }\n\n\t const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n\t swiper.updateProgress(position);\n\t swiper.setTranslate(position);\n\t swiper.updateActiveIndex();\n\t swiper.updateSlidesClasses();\n\t }\n\n\t function onDragStart(e) {\n\t const params = swiper.params.scrollbar;\n\t const {\n\t scrollbar,\n\t $wrapperEl\n\t } = swiper;\n\t const {\n\t $el,\n\t $dragEl\n\t } = scrollbar;\n\t isTouched = true;\n\t dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n\t e.preventDefault();\n\t e.stopPropagation();\n\t $wrapperEl.transition(100);\n\t $dragEl.transition(100);\n\t setDragPosition(e);\n\t clearTimeout(dragTimeout);\n\t $el.transition(0);\n\n\t if (params.hide) {\n\t $el.css('opacity', 1);\n\t }\n\n\t if (swiper.params.cssMode) {\n\t swiper.$wrapperEl.css('scroll-snap-type', 'none');\n\t }\n\n\t emit('scrollbarDragStart', e);\n\t }\n\n\t function onDragMove(e) {\n\t const {\n\t scrollbar,\n\t $wrapperEl\n\t } = swiper;\n\t const {\n\t $el,\n\t $dragEl\n\t } = scrollbar;\n\t if (!isTouched) return;\n\t if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n\t setDragPosition(e);\n\t $wrapperEl.transition(0);\n\t $el.transition(0);\n\t $dragEl.transition(0);\n\t emit('scrollbarDragMove', e);\n\t }\n\n\t function onDragEnd(e) {\n\t const params = swiper.params.scrollbar;\n\t const {\n\t scrollbar,\n\t $wrapperEl\n\t } = swiper;\n\t const {\n\t $el\n\t } = scrollbar;\n\t if (!isTouched) return;\n\t isTouched = false;\n\n\t if (swiper.params.cssMode) {\n\t swiper.$wrapperEl.css('scroll-snap-type', '');\n\t $wrapperEl.transition('');\n\t }\n\n\t if (params.hide) {\n\t clearTimeout(dragTimeout);\n\t dragTimeout = nextTick(() => {\n\t $el.css('opacity', 0);\n\t $el.transition(400);\n\t }, 1000);\n\t }\n\n\t emit('scrollbarDragEnd', e);\n\n\t if (params.snapOnRelease) {\n\t swiper.slideToClosest();\n\t }\n\t }\n\n\t function events(method) {\n\t const {\n\t scrollbar,\n\t touchEventsTouch,\n\t touchEventsDesktop,\n\t params,\n\t support\n\t } = swiper;\n\t const $el = scrollbar.$el;\n\t if (!$el) return;\n\t const target = $el[0];\n\t const activeListener = support.passiveListener && params.passiveListeners ? {\n\t passive: false,\n\t capture: false\n\t } : false;\n\t const passiveListener = support.passiveListener && params.passiveListeners ? {\n\t passive: true,\n\t capture: false\n\t } : false;\n\t if (!target) return;\n\t const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n\t if (!support.touch) {\n\t target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n\t document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n\t document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n\t } else {\n\t target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n\t target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n\t target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n\t }\n\t }\n\n\t function enableDraggable() {\n\t if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\t events('on');\n\t }\n\n\t function disableDraggable() {\n\t if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\t events('off');\n\t }\n\n\t function init() {\n\t const {\n\t scrollbar,\n\t $el: $swiperEl\n\t } = swiper;\n\t swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n\t el: 'swiper-scrollbar'\n\t });\n\t const params = swiper.params.scrollbar;\n\t if (!params.el) return;\n\t let $el = $$1(params.el);\n\n\t if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n\t $el = $swiperEl.find(params.el);\n\t }\n\n\t $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\t let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n\n\t if ($dragEl.length === 0) {\n\t $dragEl = $$1(`
`);\n\t $el.append($dragEl);\n\t }\n\n\t Object.assign(scrollbar, {\n\t $el,\n\t el: $el[0],\n\t $dragEl,\n\t dragEl: $dragEl[0]\n\t });\n\n\t if (params.draggable) {\n\t enableDraggable();\n\t }\n\n\t if ($el) {\n\t $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n\t }\n\t }\n\n\t function destroy() {\n\t const params = swiper.params.scrollbar;\n\t const $el = swiper.scrollbar.$el;\n\n\t if ($el) {\n\t $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\t }\n\n\t disableDraggable();\n\t }\n\n\t on('init', () => {\n\t if (swiper.params.scrollbar.enabled === false) {\n\t // eslint-disable-next-line\n\t disable();\n\t } else {\n\t init();\n\t updateSize();\n\t setTranslate();\n\t }\n\t });\n\t on('update resize observerUpdate lock unlock', () => {\n\t updateSize();\n\t });\n\t on('setTranslate', () => {\n\t setTranslate();\n\t });\n\t on('setTransition', (_s, duration) => {\n\t setTransition(duration);\n\t });\n\t on('enable disable', () => {\n\t const {\n\t $el\n\t } = swiper.scrollbar;\n\n\t if ($el) {\n\t $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n\t }\n\t });\n\t on('destroy', () => {\n\t destroy();\n\t });\n\n\t const enable = () => {\n\t swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n\t if (swiper.scrollbar.$el) {\n\t swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\t }\n\n\t init();\n\t updateSize();\n\t setTranslate();\n\t };\n\n\t const disable = () => {\n\t swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n\t if (swiper.scrollbar.$el) {\n\t swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\t }\n\n\t destroy();\n\t };\n\n\t Object.assign(swiper.scrollbar, {\n\t enable,\n\t disable,\n\t updateSize,\n\t setTranslate,\n\t init,\n\t destroy\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 && $$1(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($$1(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 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 = $$1(`
`);\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: 30,\n\t slidesPerView: 3\n\t },\n\t 1024: {\n\t spaceBetween: 15,\n\t slidesPerView: 3\n\t },\n\t 576: {\n\t spaceBetween: 15,\n\t slidesPerView: 2\n\t },\n\t 320: {\n\t spaceBetween: 10,\n\t slidesPerView: 1\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: 30,\n\t slidesPerView: 4\n\t },\n\t 1024: {\n\t spaceBetween: 15,\n\t slidesPerView: 3\n\t },\n\t 576: {\n\t spaceBetween: 15,\n\t slidesPerView: 2\n\t },\n\t 320: {\n\t spaceBetween: 10,\n\t slidesPerView: 1.2\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 loop: true\n\t });\n\t var home_2_thumb = new Swiper(\".home-2 .thumb .swiper\", {\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t // allowTouchMove: false,\n\t watchSlidesProgress: true,\n\t breakpoints: {\n\t 1280: {\n\t slidesPerView: 3,\n\t spaceBetween: 20,\n\t direction: \"vertical\"\n\t },\n\t 1024: {\n\t slidesPerView: 3,\n\t spaceBetween: 10,\n\t direction: \"vertical\"\n\t },\n\t 768: {\n\t spaceBetween: 10,\n\t slidesPerView: 4\n\t },\n\t 576: {\n\t spaceBetween: 10,\n\t slidesPerView: 3\n\t },\n\t 320: {\n\t spaceBetween: 5,\n\t slidesPerView: 2\n\t }\n\t }\n\t });\n\t var home_2_main = new Swiper(\".home-2 .main .swiper\", {\n\t modules: [Navigation, Thumb],\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t spaceBetween: 0,\n\t thumbs: {\n\t swiper: home_2_thumb\n\t },\n\t navigation: {\n\t prevEl: \".home-2 .swiper-button-prev\",\n\t nextEl: \".home-2 .swiper-button-next\"\n\t },\n\t on: {\n\t slideChange: function () {\n\t //\n\t autoSlideNextOnThumbSlide(this, \".home-2\", \".thumb\");\n\t }\n\t }\n\t });\n\t var home_3 = new Swiper(\".home-3 .swiper\", {\n\t modules: [Navigation, Pagination, Autoplay],\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t breakpoints: {\n\t 1280: {\n\t slidesPerView: 4\n\t },\n\t 1024: {\n\t slidesPerView: 3\n\t },\n\t 576: {\n\t slidesPerView: 2\n\t },\n\t 320: {\n\t slidesPerView: 1\n\t }\n\t },\n\t navigation: {\n\t prevEl: \".home-3 .swiper-button-prev\",\n\t nextEl: \".home-3 .swiper-button-next\"\n\t },\n\t pagination: {\n\t el: \".home-3 .swiper-pagination\",\n\t clickable: true\n\t },\n\t autoplay: {\n\t delay: 5000,\n\t pauseOnMouseEnter: true\n\t }\n\t });\n\t var home_4 = new Swiper(\".home-4 .swiper\", {\n\t modules: [Navigation, Pagination, Autoplay],\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t slidesPerView: 1,\n\t navigation: {\n\t prevEl: \".home-4 .swiper-button-prev\",\n\t nextEl: \".home-4 .swiper-button-next\"\n\t },\n\t pagination: {\n\t el: \".home-4 .swiper-pagination\",\n\t clickable: true\n\t },\n\t autoplay: {\n\t delay: 5000,\n\t pauseOnMouseEnter: true\n\t }\n\t });\n\t var home_5 = new Swiper(\".home-5 .swiper\", {\n\t modules: [Navigation, Scrollbar],\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t navigation: {\n\t prevEl: \".home-5 .swiper-button-prev\",\n\t nextEl: \".home-5 .swiper-button-next\"\n\t },\n\t breakpoints: {\n\t 1280: {\n\t spaceBetween: 0,\n\t slidesPerView: 6\n\t },\n\t 1024: {\n\t spaceBetween: 20,\n\t slidesPerView: 4\n\t },\n\t 576: {\n\t spaceBetween: 15,\n\t slidesPerView: 3\n\t },\n\t 320: {\n\t spaceBetween: 5,\n\t slidesPerView: 3\n\t }\n\t },\n\t scrollbar: {\n\t el: \".home-5 .swiper-scrollbar\",\n\t draggable: true\n\t }\n\t });\n\t var home_6 = new Swiper(\".home-6 .swiper\", {\n\t modules: [Navigation, Scrollbar, Pagination, Autoplay],\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t navigation: {\n\t prevEl: \".home-6 .swiper-button-prev\",\n\t nextEl: \".home-6 .swiper-button-next\"\n\t },\n\t pagination: {\n\t el: \".home-6 .swiper-pagination\",\n\t clickable: true\n\t },\n\t breakpoints: {\n\t 1280: {\n\t spaceBetween: 20,\n\t slidesPerView: 5\n\t },\n\t 1024: {\n\t spaceBetween: 10,\n\t slidesPerView: 4\n\t },\n\t 768: {\n\t spaceBetween: 10,\n\t slidesPerView: 3\n\t },\n\t // 576: {\n\t // \tspaceBetween: 10,\n\t // \tslidesPerView: 2,\n\t // },\n\t 320: {\n\t spaceBetween: 10,\n\t slidesPerView: 2\n\t }\n\t },\n\t scrollbar: {\n\t el: \".home-6 .swiper-scrollbar\",\n\t draggable: true\n\t }\n\t });\n\n\t if (ww < 1280) {\n\t home_6.params.autoplay.delay = 3000;\n\t home_6.params.autoplay.enabled = true;\n\t home_6.params.autoplay.pauseOnMouseEnter = true;\n\t home_6.autoplay.start();\n\t }\n\n\t var home_7 = new Swiper(\".home-7 .swiper,.product-suggest .swiper\", {\n\t modules: [Navigation, Scrollbar, Pagination, Autoplay],\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t navigation: {\n\t prevEl: \".home-7 .swiper-button-prev,.product-suggest .swiper-button-prev\",\n\t nextEl: \".home-7 .swiper-button-next,.product-suggest .swiper-button-next\"\n\t },\n\t breakpoints: {\n\t 1280: {\n\t spaceBetween: 30,\n\t slidesPerView: 2\n\t },\n\t 1024: {\n\t spaceBetween: 20,\n\t slidesPerView: 2\n\t },\n\t 576: {\n\t spaceBetween: 15,\n\t slidesPerView: 2\n\t },\n\t 320: {\n\t spaceBetween: 5,\n\t slidesPerView: 1.1\n\t }\n\t },\n\t pagination: {\n\t el: \".home-7 .swiper-pagination ,.product-suggest .swiper-pagination\",\n\t clickable: true\n\t },\n\t scrollbar: {\n\t el: \".home-7 .swiper-scrollbar\",\n\t draggable: true\n\t }\n\t });\n\n\t if (ww < 1280) {\n\t home_7.params.autoplay.delay = 3000;\n\t home_7.params.autoplay.enabled = true;\n\t home_7.params.autoplay.pauseOnMouseEnter = true;\n\t home_7.autoplay.start();\n\t } // **** Product **** //\n\n\n\t var product_detail = new Swiper(\".product-detail .swiper\", {\n\t modules: [Navigation],\n\t navigation: {\n\t prevEl: \".product-detail .swiper-button-prev\",\n\t nextEl: \".product-detail .swiper-button-next\"\n\t },\n\t observer: true,\n\t observeParents: true,\n\t slidesPerView: 1,\n\t spaceBetween: 20\n\t });\n\t var product_other = new Swiper(\".product-other .swiper\", {\n\t modules: [Navigation, Pagination, Autoplay],\n\t navigation: {\n\t prevEl: \".product-other .swiper-button-prev\",\n\t nextEl: \".product-other .swiper-button-next\"\n\t },\n\t observer: true,\n\t observeParents: true,\n\t ...swiperParameter,\n\t pagination: {\n\t el: \".product-other .swiper-pagination\",\n\t clickable: true\n\t }\n\t });\n\n\t if (ww < 1280) {\n\t product_other.params.autoplay.delay = 3000;\n\t product_other.params.autoplay.enabled = true;\n\t product_other.params.autoplay.pauseOnMouseEnter = true;\n\t product_other.autoplay.start();\n\t } // **** Góc Bếp **** //\n\n\n\t var gocbep_detail_2 = new Swiper(\".gocbepdetail-2-slide .swiper\", {\n\t modules: [Navigation],\n\t speed: 500,\n\t observer: true,\n\t observeParents: true,\n\t ...swiperParameter_xl_4,\n\t navigation: {\n\t prevEl: \".gocbepdetail-2-slide .swiper-button-prev\",\n\t nextEl: \".gocbepdetail-2-slide .swiper-button-next\"\n\t }\n\t });\n\t}\n\n\tconst t = t => \"object\" == typeof t && null !== t && t.constructor === Object && \"[object Object]\" === Object.prototype.toString.call(t),\n\t e = (i, ...n) => {\n\t const s = n.length;\n\n\t for (let o = 0; o < s; o++) {\n\t const s = n[o] || {};\n\t Object.entries(s).forEach(([n, s]) => {\n\t const o = Array.isArray(s) ? [] : {};\n\t i[n] || Object.assign(i, {\n\t [n]: o\n\t }), t(s) ? Object.assign(i[n], e(o, s)) : Array.isArray(s) ? Object.assign(i, {\n\t [n]: [...s]\n\t }) : Object.assign(i, {\n\t [n]: s\n\t });\n\t });\n\t }\n\n\t return i;\n\t},\n\t i = function (t) {\n\t return new DOMParser().parseFromString(t, \"text/html\").body.firstChild;\n\t},\n\t n = !(\"undefined\" == typeof window || !window.document || !window.document.createElement);\n\n\tlet s;\n\tconst o = [\"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 a = '
',\n\t r = {\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 l = {\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({}, r), {\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\tvar c, h;\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}(c || (c = {})), 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}(h || (h = {}));\n\n\tconst d = function (t, e) {\n\t return t.split(\".\").reduce((t, e) => \"object\" == typeof t ? t[e] : void 0, e);\n\t};\n\n\tclass u {\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 ? e({}, 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 = d(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 = d(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 = d(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(/\\{\\{(.*)\\}\\}/, (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(u, \"version\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: \"5.0.7\"\n\t}), Object.defineProperty(u, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {}\n\t});\n\n\tclass p extends u {\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() {\n\t for (const t of Object.values(this.plugins)) t.detach();\n\n\t return this.plugins = {}, this.emit(\"detachPlugins\"), this;\n\t }\n\n\t}\n\n\tclass m extends u {\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 f = () => {\n\t queueMicrotask(() => {\n\t (() => {\n\t const {\n\t slug: t,\n\t index: e\n\t } = g.parseURL(),\n\t i = vt.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 g.hasSilentClose = !0, i.close();\n\t }\n\n\t g.startFromUrl();\n\t })();\n\t });\n\t};\n\n\tclass g extends m {\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 !== g.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 (g.hasSilentClose = !1, vt.getInstance() || !1 === vt.defaults.Hash) return;\n\t const {\n\t hash: t,\n\t slug: e,\n\t index: i\n\t } = g.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 })), vt.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\", f, !1);\n\t }\n\n\t}\n\n\tfunction b() {\n\t window.addEventListener(\"hashchange\", f, !1), setTimeout(() => {\n\t g.startFromUrl();\n\t }, 500);\n\t}\n\n\tObject.defineProperty(g, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {}\n\t}), Object.defineProperty(g, \"hasSilentClose\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: !1\n\t}), n && (/complete|interactive|loaded/.test(document.readyState) ? b() : document.addEventListener(\"DOMContentLoaded\", b));\n\n\tconst v = (t, e = 1e4) => (t = parseFloat(t + \"\") || 0, Math.round((t + Number.EPSILON) * e) / e),\n\t y = function (t, e) {\n\t return !(!t || t === document.body || e && 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 }(t) ? t : y(t.parentElement, e));\n\t},\n\t w = t => `${t || \"\"}`.split(\" \").filter(t => !!t),\n\t x = (t, e, i) => {\n\t w(e).forEach(e => {\n\t t && t.classList.toggle(e, i || !1);\n\t });\n\t};\n\n\tclass S {\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 E = {\n\t passive: !1\n\t};\n\n\tclass P {\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, E), this.element.addEventListener(\"touchstart\", this.onTouchStart, E), this.element.addEventListener(\"touchmove\", this.onMove, E), 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 S(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 S(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 S(t)) : [new S(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 S(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 S(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, E), this.element.removeEventListener(\"touchstart\", this.onTouchStart, E), this.element.removeEventListener(\"touchmove\", this.onMove, E), 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 M(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 C(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\tvar T;\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}(T || (T = {}));\n\n\tconst O = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\"],\n\t A = {\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: r\n\t},\n\t L = t => t && null !== t && t instanceof Element && \"nodeType\" in t,\n\t z = (t, e) => {\n\t w(e).forEach(e => {\n\t t && t.classList.remove(e);\n\t });\n\t},\n\t R = (t, e) => {\n\t w(e).forEach(e => {\n\t t && t.classList.add(e);\n\t });\n\t},\n\t k = {\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 I = null,\n\t D = null;\n\n\tclass F extends p {\n\t get isTouchDevice() {\n\t return null === D && (D = window.matchMedia(\"(hover: none)\").matches), D;\n\t }\n\n\t get isMobile() {\n\t return null === I && (I = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent)), I;\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 O) {\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 = {}, n = {}) {\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, \"wheelDelta\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"prevWheelDelta\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\n\t }), Object.defineProperty(this, \"prevWheelTime\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: 0\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, \"state\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: T.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({}, k)\n\t }), Object.defineProperty(this, \"target\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: Object.assign({}, k)\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(\"No Element found\");\n\n\t if (this.container = t, this.initContent(), this.attachPlugins(Object.assign(Object.assign({}, F.Plugins), n)), this.emit(\"init\"), this.isContentLoading) {\n\t const e = this.content;\n\n\t if (this.option(\"spinner\")) {\n\t t.classList.add(this.cn(\"isLoading\"));\n\t const n = i(a);\n\t t.contains(e) ? this.spinner = (null === (s = e.parentElement) || void 0 === s ? void 0 : s.insertBefore(n, e)) || null : this.spinner = t.appendChild(n);\n\t }\n\n\t this.emit(\"beforeLoad\"), e.addEventListener(\"load\", this.onLoad), e.addEventListener(\"error\", this.onError);\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 let e = this.option(\"content\") || t.querySelector(`.${this.cn(\"content\")}`);\n\t if (e || (e = t.querySelector(\"img\") || t.firstElementChild, e && e.classList.add(this.cn(\"content\"))), !e) throw new Error(\"No content found\");\n\t this.content = e;\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 === T.Init && this.enable();\n\t }\n\n\t onError() {\n\t this.state !== T.Destroy && (this.spinner && (this.spinner.remove(), this.spinner = null), this.stop(), this.detachEvents(), this.state = T.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 P(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 this.setTargetForce();\n\t const t = this.option(\"maxVelocity\");\n\n\t for (const e of O) this.friction ? (this.velocity[e] *= 1 - this.friction, t && !this.isScaling && (this.velocity[e] = Math.max(Math.min(this.velocity[e], t), -1 * t)), this.current[e] += this.velocity[e]) : this.current[e] = this.target[e];\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 O) \"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 m = new DOMPoint(0 + c, 0 + h).matrixTransform(d),\n\t f = new DOMPoint(0, 0 + h).matrixTransform(d),\n\t g = Math.abs(m.x - u.x),\n\t b = Math.abs(m.y - u.y),\n\t v = Math.abs(f.x - p.x),\n\t y = Math.abs(f.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 O) this.current[t] = this.target[t] = e[t];\n\n\t this.updateMetrics(), this.attachObserver(), this.attachEvents(), this.state = T.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 && L(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\") || Math.abs(this.velocity.a) > .3 || 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.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 return \"mousedown\" === t.type && t.preventDefault(), v(this.targetScale, 1e3) === v(this.minScale, 1e3) ? (this.stop(), this.target.e = this.current.e, this.target.f = this.current.f) : this.stop(\"target\"), this.isDragging = !0, this.addTrackingPoint(e), this.emit(\"touchStart\", t), !0;\n\t }\n\n\t onPointerMove(t, e, i) {\n\t if (!1 === this.option(\"touch\", t)) return;\n\t if (!this.isDragging) return;\n\t if (e.length < 2 && this.panOnlyZoomed && v(this.targetScale) <= v(this.minScale)) return;\n\t if (this.emit(\"touchMove\", t), t.defaultPrevented) return;\n\t this.addTrackingPoint(e[0]);\n\t const {\n\t content: n\n\t } = this,\n\t s = C(i[0], i[1]),\n\t o = C(e[0], e[1]);\n\t let a = 0,\n\t r = 0;\n\n\t if (e.length > 1) {\n\t const t = n.getBoundingClientRect();\n\t a = s.clientX - t.left - .5 * t.width, r = s.clientY - t.top - .5 * t.height;\n\t }\n\n\t const l = M(i[0], i[1]),\n\t c = M(e[0], e[1]);\n\t let h = l ? c / l : 1,\n\t d = o.clientX - s.clientX,\n\t u = o.clientY - s.clientY;\n\t this.dragOffset.x += d, this.dragOffset.y += u, this.dragOffset.time = Date.now() - this.dragStart.time;\n\t let p = v(this.targetScale) === v(this.minScale) && this.option(\"lockAxis\");\n\t if (p && !this.lockedAxis) if (\"xy\" === p || \"y\" === p || \"touchmove\" === t.type) {\n\t if (Math.abs(this.dragOffset.x) < 6 && Math.abs(this.dragOffset.y) < 6) return void t.preventDefault();\n\t const e = Math.abs(180 * Math.atan2(this.dragOffset.y, this.dragOffset.x) / Math.PI);\n\t this.lockedAxis = e > 45 && e < 135 ? \"y\" : \"x\", this.dragOffset.x = 0, this.dragOffset.y = 0, d = 0, u = 0;\n\t } else this.lockedAxis = p;\n\t if (y(t.target, this.content) && (p = \"x\", this.dragOffset.y = 0), p && \"xy\" !== p && this.lockedAxis !== p && v(this.targetScale) === v(this.minScale)) return;\n\t t.cancelable && t.preventDefault(), this.container.classList.add(this.cn(\"isDragging\"));\n\t const m = this.checkBounds(d, u);\n\t this.option(\"rubberband\") ? (\"x\" !== this.isInfinite && (m.xDiff > 0 && d < 0 || m.xDiff < 0 && d > 0) && (d *= Math.max(0, .5 - Math.abs(.75 / this.contentRect.fitWidth * m.xDiff))), \"y\" !== this.isInfinite && (m.yDiff > 0 && u < 0 || m.yDiff < 0 && u > 0) && (u *= Math.max(0, .5 - Math.abs(.75 / this.contentRect.fitHeight * m.yDiff)))) : (m.xDiff && (d = 0), m.yDiff && (u = 0));\n\t const f = this.targetScale,\n\t g = this.minScale,\n\t b = this.maxScale;\n\t f < .5 * g && (h = Math.max(h, g)), f > 1.5 * b && (h = Math.min(h, b)), \"y\" === this.lockedAxis && v(f) === v(g) && (d = 0), \"x\" === this.lockedAxis && v(f) === v(g) && (u = 0), this.applyChange({\n\t originX: a,\n\t originY: r,\n\t panX: d,\n\t panY: u,\n\t scale: h,\n\t friction: this.option(\"dragFriction\"),\n\t ignoreBounds: !0\n\t });\n\t }\n\n\t onPointerUp(t, e, i) {\n\t if (i.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 = []), y(t.target, this.content) && \"y\" === this.lockedAxis && (this.trackingPoints = []), this.emit(\"touchEnd\", t), this.isDragging = !1, this.lockedAxis = !1, this.state !== T.Destroy && (t.defaultPrevented || this.startDecelAnim()));\n\t }\n\n\t startDecelAnim() {\n\t this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.isBouncingX = !1, this.isBouncingY = !1;\n\n\t for (const t of O) this.velocity[t] = 0, this.target[t] = this.current[t];\n\n\t z(this.container, \"is-scaling\"), z(this.container, \"is-animating\"), this.isTicking = !1;\n\t const {\n\t trackingPoints: t\n\t } = this,\n\t e = t[0],\n\t i = t[t.length - 1];\n\t let n = 0,\n\t s = 0,\n\t o = 0;\n\t i && e && (n = i.clientX - e.clientX, s = i.clientY - e.clientY, o = i.time - e.time);\n\t let a = 0,\n\t r = 0,\n\t l = 0,\n\t c = 0,\n\t h = this.option(\"decelFriction\");\n\t const d = this.targetScale;\n\n\t if ((d < this.minScale - 1e-5 || d > this.maxScale + 1e-5) && (h = .35), o > 0) {\n\t l = Math.abs(n) > 3 ? n / (o / 30) : 0, c = Math.abs(s) > 3 ? s / (o / 30) : 0;\n\t const t = this.option(\"maxVelocity\");\n\t t && (l = Math.max(Math.min(l, t), -1 * t), c = Math.max(Math.min(c, t), -1 * t));\n\t }\n\n\t l && (a = l / (1 / (1 - h) - 1)), c && (r = c / (1 / (1 - h) - 1)), (\"y\" === this.option(\"lockAxis\") || \"xy\" === this.option(\"lockAxis\") && \"y\" === this.lockedAxis && v(d) === this.minScale) && (a = l = 0), (\"x\" === this.option(\"lockAxis\") || \"xy\" === this.option(\"lockAxis\") && \"x\" === this.lockedAxis && v(d) === this.minScale) && (r = c = 0);\n\t const u = this.dragOffset.x,\n\t p = this.dragOffset.y,\n\t m = this.option(\"dragMinThreshold\") || 0;\n\t Math.abs(u) < m && Math.abs(p) < m && (a = r = 0, l = c = 0), this.applyChange({\n\t panX: a,\n\t panY: r,\n\t friction: h\n\t }), this.emit(\"decel\", l, c, u, p);\n\t }\n\n\t onWheel(t) {\n\t const e = Date.now(),\n\t i = Math.max(-1, Math.min(1, -t.deltaY || -t.deltaX || -t.detail));\n\t if (this.prevWheelTime && e - this.prevWheelTime < 200 && this.prevWheelDelta !== i) return void t.preventDefault();\n\t if (this.prevWheelDelta = i, this.prevWheelTime = e, 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 panY: 100 * i,\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: t,\n\t target: e,\n\t content: i,\n\t contentRect: n\n\t } = this,\n\t s = Object.assign({}, k);\n\n\t for (const i of O) {\n\t const n = \"e\" == i || \"f\" === i ? 1e3 : 1e5;\n\t s[i] = v(t[i], n), Math.abs(e[i] - t[i]) < (\"e\" == i || \"f\" === i ? .51 : .001) && (this.current[i] = e[i]);\n\t }\n\n\t const {\n\t a: o,\n\t b: a,\n\t c: r,\n\t d: l,\n\t e: c,\n\t f: h\n\t } = s,\n\t d = `matrix(${o}, ${a}, ${r}, ${l}, ${c}, ${h})`,\n\t u = (this.option(\"transformParent\") ? i.parentElement : null) || i;\n\t if (u.style.transform === d) return;\n\t u.style.transform = d;\n\t const {\n\t contentWidth: p,\n\t contentHeight: m\n\t } = this.calculateContentDim();\n\t n.width = p, n.height = m, this.emit(\"afterTransform\");\n\t }\n\n\t updateMetrics(t = !1) {\n\t if (!this || this.state === T.Destroy) return;\n\t const {\n\t container: e,\n\t containerRect: i,\n\t content: n\n\t } = this,\n\t s = i.innerWidth,\n\t o = i.innerHeight,\n\t a = e.getBoundingClientRect(),\n\t r = getComputedStyle(this.container),\n\t l = a.width,\n\t c = a.height,\n\t h = parseFloat(r.paddingTop) + parseFloat(r.paddingBottom),\n\t d = parseFloat(r.paddingLeft) + parseFloat(r.paddingRight);\n\t this.containerRect = {\n\t width: l,\n\t height: c,\n\t innerWidth: l - d,\n\t innerHeight: c - h\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 : t.offsetWidth, Math.max(e, t.scrollWidth);\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 : t.offsetHeight, Math.max(e, t.scrollHeight);\n\t })(n));\n\t const m = (this.option(\"transformParent\") ? n.parentElement : null) || n,\n\t f = m.getAttribute(\"style\") || \"\";\n\t m.style.setProperty(\"transform\", \"none\", \"important\"), n instanceof HTMLImageElement && (m.style.width = \"\", m.style.height = \"\"), m.offsetHeight;\n\t const g = n.getBoundingClientRect();\n\t let b = g.width,\n\t y = g.height,\n\t w = 0,\n\t x = 0;\n\n\t if (n instanceof HTMLImageElement && ({\n\t width: b,\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 })(g.width, g.height, u, p)), this.contentRect = Object.assign(Object.assign({}, this.contentRect), {\n\t top: g.top - a.top + w,\n\t bottom: a.bottom - g.bottom + w,\n\t left: g.left - a.left + x,\n\t right: a.right - g.right + x,\n\t fitWidth: b,\n\t fitHeight: y,\n\t width: b,\n\t height: y,\n\t fullWidth: u,\n\t fullHeight: p\n\t }), m.style.cssText = f, n instanceof HTMLImageElement && (m.style.width = `${b}px`, m.style.height = `${y}px`), this.setTransform(), !0 !== t) {\n\t let t = \"\";\n\t Math.abs(l - s) > 1 && (t += \"x\"), Math.abs(c - o) > 1 && (t += \"y\"), t && this.emit(\"refresh\", t);\n\t }\n\n\t this.ignoreBounds || (v(this.targetScale) < v(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 === T.Init || this.checkBounds().inBounds || this.requestTick()), this.updateControls();\n\t }\n\n\t getBounds() {\n\t const t = this.option(\"bounds\");\n\t if (\"auto\" !== t) return t;\n\t const {\n\t contentWidth: e,\n\t contentHeight: i\n\t } = this.calculateContentDim(this.target);\n\t let n = 0,\n\t s = 0,\n\t o = 0,\n\t a = 0;\n\t const r = this.option(\"infinite\");\n\t if (!0 === r || this.lockedAxis && r === this.lockedAxis) n = -1 / 0, o = 1 / 0, s = -1 / 0, a = 1 / 0;else {\n\t let {\n\t containerRect: t,\n\t contentRect: r\n\t } = this,\n\t l = v(this.contentRect.fitWidth * this.targetScale, 1e3),\n\t c = v(this.contentRect.fitHeight * this.targetScale, 1e3),\n\t {\n\t innerWidth: h,\n\t innerHeight: d\n\t } = t;\n\n\t if (this.containerRect.width === l && (h = t.width), this.containerRect.width === c && (d = t.height), e > h) {\n\t o = .5 * (e - h), n = -1 * o;\n\t let t = .5 * (r.right - r.left);\n\t n += t, o += t;\n\t }\n\n\t if (this.contentRect.fitWidth > h && e < h && (n -= .5 * (this.contentRect.fitWidth - h), o -= .5 * (this.contentRect.fitWidth - h)), i > d) {\n\t a = .5 * (i - d), s = -1 * a;\n\t let t = .5 * (r.bottom - r.top);\n\t s += t, a += t;\n\t }\n\n\t this.contentRect.fitHeight > d && i < d && (n -= .5 * (this.contentRect.fitHeight - d), o -= .5 * (this.contentRect.fitHeight - d));\n\t }\n\t return {\n\t x: {\n\t min: n,\n\t max: o\n\t },\n\t y: {\n\t min: s,\n\t max: a\n\t }\n\t };\n\t }\n\n\t updateControls() {\n\t const t = this,\n\t e = t.container;\n\t let i = {\n\t toggleMax: this.targetScale - this.minScale < .5 * (this.maxScale - this.minScale) ? this.maxScale : this.minScale,\n\t toggleCover: this.targetScale - this.minScale < .5 * (this.coverScale - this.minScale) ? this.coverScale : this.minScale,\n\t toggleZoom: this.targetScale - this.minScale < .5 * (this.fullScale - this.minScale) ? this.fullScale : this.minScale\n\t }[this.option(\"click\") || \"\"] || this.minScale,\n\t n = t.canZoomIn(),\n\t s = t.canZoomOut(),\n\t o = \"drag\" === this.panMode,\n\t a = s && o;\n\t this.targetScale <= this.minScale && !this.panOnlyZoomed && (a = !0), (this.contentRect.width - this.contentRect.fitWidth > -1 || this.contentRect.height - this.contentRect.fitHeight > -1) && (a = !0), this.contentRect.width * this.targetScale < this.contentRect.fitWidth && (a = !1), \"mousemove\" === this.panMode && (a = !1);\n\t let r = n && v(i) > v(this.targetScale),\n\t l = !r && !a && s && v(i) < v(this.targetScale);\n\t x(e, this.cn(\"canZoomIn\"), r), x(e, this.cn(\"canZoomOut\"), l), x(e, this.cn(\"isDraggable\"), a);\n\n\t for (const t of e.querySelectorAll('[data-panzoom-action=\"zoomIn\"]')) n ? (t.removeAttribute(\"disabled\"), t.removeAttribute(\"tabindex\")) : (t.setAttribute(\"disabled\", \"\"), t.setAttribute(\"tabindex\", \"-1\"));\n\n\t for (const t of e.querySelectorAll('[data-panzoom-action=\"zoomOut\"]')) s ? (t.removeAttribute(\"disabled\"), t.removeAttribute(\"tabindex\")) : (t.setAttribute(\"disabled\", \"\"), t.setAttribute(\"tabindex\", \"-1\"));\n\n\t for (const i of e.querySelectorAll('[data-panzoom-action=\"toggleZoom\"],[data-panzoom-action=\"iterateZoom\"]')) {\n\t n = t.targetScale < t.fullScale - .1, n || s ? (i.removeAttribute(\"disabled\"), i.removeAttribute(\"tabindex\")) : (i.setAttribute(\"disabled\", \"\"), i.setAttribute(\"tabindex\", \"-1\"));\n\t const e = i.querySelector(\"g\");\n\t e && (e.style.display = t.targetScale > .9 * t.fullScale ? \"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 !== T.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: t = 0,\n\t panY: e = 0,\n\t scale: i = 1,\n\t angle: n = 0,\n\t originX: s = -this.current.e,\n\t originY: o = -this.current.f,\n\t friction: a = this.option(\"friction\"),\n\t flipX: r = !1,\n\t flipY: l = !1,\n\t ignoreBounds: c = !1,\n\t bounce: h = this.option(\"bounce\")\n\t }) {\n\t const d = this.state;\n\t if (d === T.Init || d === T.Destroy) return;\n\t this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.isBouncingX = !1, this.isBouncingY = !1;\n\n\t for (const t of O) this.velocity[t] = 0;\n\n\t this.friction = a || 0, this.ignoreBounds = c;\n\t const {\n\t current: u\n\t } = this,\n\t p = u.e,\n\t m = u.f,\n\t f = this.getMatrix(this.target);\n\t let g = new DOMMatrix().translate(p, m).translate(s, o).translate(t, e);\n\n\t if (this.option(\"zoom\")) {\n\t if (!c) {\n\t const t = this.targetScale,\n\t e = this.minScale,\n\t n = this.maxScale;\n\t t * i < e && (i = e / t), t * i > n && (i = n / t);\n\t }\n\n\t g = g.scale(i);\n\t }\n\n\t g = g.translate(-s, -o).translate(-p, -m).multiply(f), n && (g = g.rotate(n)), r && (g = g.scale(-1, 1)), l && (g = g.scale(1, -1));\n\n\t for (const t of O) \"a\" != t && \"d\" != t || !(g[t] > this.minScale + 1e-5 || g[t] < this.minScale - 1e-5) ? this.target[t] = v(g[t], 1e3) : this.target[t] = g[t];\n\n\t (this.targetScale < this.scale || Math.abs(i - 1) > .1 || \"mousemove\" === this.panMode || !1 === h) && !c && this.clampTargetBounds(), this.isResting || (this.state = T.Panning, this.requestTick());\n\t }\n\n\t stop(t = !1) {\n\t if (this.state === T.Init || this.state === T.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 O) 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(), z(this.container, \"is-scaling\"), z(this.container, \"is-animating\"), this.isTicking = !1, this.state = T.Ready, e && (this.emit(\"endAnimation\"), this.updateControls());\n\t }\n\n\t requestTick() {\n\t this.isTicking || (this.emit(\"startAnimation\"), this.updateControls(), R(this.container, \"is-animating\"), this.isScaling && R(this.container, \"is-scaling\")), this.isTicking = !0, this.rAF || (this.rAF = requestAnimationFrame(() => this.animate()));\n\t }\n\n\t panWithMouse(t, e = this.option(\"mouseMoveFriction\")) {\n\t if (this.prevMouseMoveEvent = t, \"mousemove\" !== this.panMode || !t) return;\n\t if (v(this.targetScale) <= v(this.minScale)) return;\n\t this.emit(\"mouseMove\", t);\n\t const {\n\t container: i,\n\t containerRect: n,\n\t contentRect: s\n\t } = this,\n\t o = n.width,\n\t a = n.height,\n\t r = i.getBoundingClientRect(),\n\t l = (t.clientX || 0) - r.left,\n\t c = (t.clientY || 0) - r.top;\n\t let {\n\t contentWidth: h,\n\t contentHeight: d\n\t } = this.calculateContentDim(this.target);\n\t const u = this.option(\"mouseMoveFactor\");\n\t u > 1 && (h !== o && (h *= u), d !== a && (d *= u));\n\t let p = .5 * (h - o) - l / o * 100 / 100 * (h - o);\n\t p += .5 * (s.right - s.left);\n\t let m = .5 * (d - a) - c / a * 100 / 100 * (d - a);\n\t m += .5 * (s.bottom - s.top), this.applyChange({\n\t panX: p - this.target.e,\n\t panY: m - this.target.f,\n\t friction: e\n\t });\n\t }\n\n\t zoomWithWheel(t) {\n\t if (this.state === T.Destroy || this.state === T.Init) return;\n\t const e = Math.abs(t.deltaY) < 100 && Math.abs(t.deltaX) < 100 ? 25 : 50,\n\t i = Math.max(-1, Math.min(1, -t.deltaY || -t.deltaX || -t.detail)),\n\t n = this.targetScale,\n\t s = this.maxScale,\n\t o = this.minScale;\n\t let a = n * (100 + i * e) / 100;\n\t a < o && n <= o ? (this.wheelDelta += Math.abs(i), a = o) : a > s && n >= s ? (this.wheelDelta += Math.abs(i), a = s) : (this.wheelDelta = 0, a = Math.max(Math.min(a, s), o)), this.wheelDelta > this.option(\"wheelLimit\") || (t.preventDefault(), a !== n && this.zoomTo(a, {\n\t event: t\n\t }));\n\t }\n\n\t canZoomIn() {\n\t return this.option(\"zoom\") && (this.contentRect.width < this.contentRect.fitWidth || this.targetScale < this.maxScale - 1e-5);\n\t }\n\n\t canZoomOut() {\n\t return this.option(\"zoom\") && this.targetScale > this.minScale + 1e-5;\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 === T.Destroy) return;\n\t this.stop();\n\t const {\n\t targetScale: o\n\t } = this;\n\t let a = 1;\n\n\t if (\"mousemove\" === this.panMode && (s = this.prevMouseMoveEvent || 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.height - (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 !== T.Init && this.state !== T.Destroy) {\n\t this.stop(\"current\");\n\n\t for (const t of O) this.target[t] = k[t];\n\n\t this.target.a = this.minScale, this.target.d = this.minScale, this.isResting || (this.friction = void 0 === t ? this.option(\"friction\") : t, this.state = T.Panning, this.requestTick());\n\t }\n\t }\n\n\t destroy() {\n\t this.stop(), this.state = T.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(F, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: A\n\t}), Object.defineProperty(F, \"Plugins\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: {}\n\t});\n\n\tconst j = t => new Promise((e, i) => {\n\t const n = new Image();\n\t n.onload = e, n.onerror = i, n.src = t;\n\t});\n\n\tclass H extends m {\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 if (n.isClosing()) return;\n\t const e = i.contentEl,\n\t s = i.imageEl,\n\t o = i.thumbElSrc,\n\t a = this.optionFor(i, \"initialSize\"),\n\t r = this.optionFor(i, \"zoom\"),\n\t l = {\n\t event: n.prevMouseMoveEvent || n.options.event,\n\t friction: r ? .12 : 0\n\t };\n\n\t if (e && s && o && n.isOpeningSlide(i) && this.getZoomInfo(i)) {\n\t let t = document.createElement(\"img\");\n\t R(t, \"fancybox-ghost\"), e.appendChild(t), t.src = o, setTimeout(() => {\n\t n.animate(t, \"f-fadeFastOut\", () => {\n\t t && (t.remove(), t = null);\n\t });\n\t }, 333), j(o).then(() => {\n\t i.state = h.Opening, this.instance.emit(\"reveal\", i), this.zoomIn(i).then(() => {\n\t this.instance.done(i);\n\t }, () => {\n\t n.hideLoading(i);\n\t });\n\t }, () => {\n\t n.hideLoading(i), n.revealContent(i);\n\t });\n\t } else {\n\t let e = n.optionFor(i, \"showClass\") || void 0,\n\t s = !0;\n\t n.isOpeningSlide(i) && (\"full\" === a ? t.zoomToFull(l) : \"cover\" === a ? t.zoomToCover(l) : \"max\" === a ? t.zoomToMax(l) : s = !1, t.stop(\"current\")), s && e && (e = \"f-fadeIn\"), n.revealContent(i, e);\n\t }\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 === T.Init || o.state === T.Destroy) return;\n\t o.updateMetrics();\n\t let r = this.getZoomInfo(i);\n\t if (!r) return;\n\t this.instance.state = c.CustomClosing, n.classList.remove(\"is-zooming-in\"), n.classList.add(\"is-zooming-out\"), s.style.backgroundImage = `url('${a}')`, j(a).then(() => {\n\t n.classList.add(\"hide-image\");\n\t }, () => {});\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: h,\n\t y: d,\n\t scale: u,\n\t opacity: p\n\t } = r;\n\n\t if (p) {\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, u, 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 = u, o.target.b = 0, o.target.c = 0, o.target.d = u, o.panTo({\n\t x: h,\n\t y: d,\n\t scale: u,\n\t friction: p ? .2 : .33,\n\t ignoreBounds: !0\n\t }), o.isResting && t.destroy();\n\t }\n\n\t setContent(t, i) {\n\t return new Promise((n, 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 const c = document.createElement(\"img\");\n\n\t if (c.classList.add(\"fancybox-image\"), c.src = i || \"\", 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), t.imageEl = c, r.setContent(t, c, !1), this.option(\"protected\")) {\n\t l.addEventListener(\"contextmenu\", t => {\n\t t.preventDefault();\n\t });\n\t const e = t.contentEl;\n\n\t if (e) {\n\t const t = document.createElement(\"div\");\n\t R(t, \"fancybox-protected\"), e.append(t);\n\t }\n\t }\n\n\t t.panzoom = new F(l, e({}, 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;\n\t if (r.isCompact || r.isClosing()) return !1;\n\t let s = !i || i.target && (null === (n = t.contentEl) || void 0 === n ? void 0 : n.contains(i.target));\n\t return r.option(s ? \"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 n(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\t panzoom: n,\n\t contentEl: s,\n\t el: o\n\t } = t;\n\t n && n.updateMetrics();\n\t const a = this.getZoomInfo(t);\n\t if (!(a && o && s && n)) return void i();\n\n\t const {\n\t x: r,\n\t y: l,\n\t scale: c,\n\t opacity: d\n\t } = a,\n\t u = () => {\n\t t.state !== h.Closing && (d && (s.style.opacity = Math.max(Math.min(1, 1 - (1 - n.scale) / (1 - c)), 0) + \"\"), n.scale >= 1 && n.scale > n.targetScale - .1 && e(n));\n\t },\n\t p = t => {\n\t t.scale < .99 || t.scale > 1.01 || (s.style.opacity = \"\", o.classList.remove(\"is-zooming-in\"), t.off(\"endAnimation\", p), t.off(\"touchStart\", p), t.off(\"afterTransform\", u), e(t));\n\t };\n\n\t n.on(\"endAnimation\", p), n.on(\"touchStart\", p), n.on(\"afterTransform\", u), n.on([\"error\", \"destroy\"], () => {\n\t i();\n\t }), n.panTo({\n\t x: r,\n\t y: l,\n\t scale: c,\n\t friction: 0,\n\t ignoreBounds: !0\n\t }), n.stop(\"current\");\n\t const m = this.instance,\n\t f = {\n\t event: \"mousemove\" === n.panMode ? m.prevMouseMoveEvent || m.options.event : void 0\n\t },\n\t g = this.optionFor(t, \"initialSize\");\n\t R(o, \"is-zooming-in\"), m.hideLoading(t), \"full\" === g ? n.zoomToFull(f) : \"cover\" === g ? n.zoomToCover(f) : \"max\" === g ? n.zoomToMax(f) : n.reset(.165);\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 || (t => {\n\t const e = window.pageYOffset,\n\t i = window.pageYOffset + window.innerHeight;\n\t if (!L(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) < 5 || !this.optionFor(t, \"zoom\") || this.instance.state === c.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: h,\n\t left: d,\n\t fitWidth: u,\n\t fitHeight: p\n\t } = s.contentRect;\n\t if (!(r && l && u && p)) return !1;\n\t const m = r / u,\n\t f = s.container.getBoundingClientRect();\n\t h += f.top, d += f.left;\n\t const g = -1 * (d + .5 * u - (a + .5 * r)),\n\t b = -1 * (h + .5 * p - (o + .5 * l));\n\t let v = this.option(\"zoomOpacity\") || !1;\n\t return \"auto\" === v && (v = Math.abs(r / l - u / p) > .1), {\n\t x: g,\n\t y: b,\n\t scale: m,\n\t opacity: v\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(H, \"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 B = (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 _ = {\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 rel: 0,\n\t fs: 1\n\t }\n\t},\n\t N = [\"image\", \"html\", \"ajax\", \"inline\", \"clone\", \"iframe\", \"map\", \"pdf\", \"html5video\", \"youtube\", \"vimeo\", \"video\"];\n\n\tclass W extends m {\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 === h.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 (\"https://www.youtube-nocookie.com\" === t.origin && \"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 === c.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 (L(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.dataset.placeholderId) {\n\t e = e.cloneNode(!0);\n\t const i = e.dataset.animationName;\n\t i && (e.classList.remove(i), delete e.dataset.animationName), delete e.dataset.placeholderId;\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 = B(e, this.optionFor(t, \"youtube\")),\n\t o = encodeURIComponent(n[1]);\n\t t.videoId = o, t.src = `https://www.youtube-nocookie.com/embed/${o}?${s}`, t.thumbSrc = t.thumbSrc || `https://i.ytimg.com/vi/${o}/mqdefault.jpg`, i = \"youtube\";\n\t } else if (n = e.match(/^.+vimeo.com\\/(?:\\/)?([\\d]+)(.*)?/)) {\n\t const s = B(e, this.optionFor(t, \"vimeo\")),\n\t o = encodeURIComponent(n[1]);\n\t t.videoId = o, t.src = `https://player.vimeo.com/video/${o}?${s}`, i = \"vimeo\";\n\t }\n\n\t if (!i && t.triggerEl) {\n\t const e = t.triggerEl.dataset.type;\n\t N.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(W, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: _\n\t});\n\n\tclass $$2 extends m {\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 R(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\", R(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), z(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($$2, \"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 X extends m {\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 i = t.carousel;\n\t if (!i) return;\n\t const n = t.container;\n\t n && (i.options.Autoplay = e(this.option(\"Autoplay\") || {}, {\n\t pauseOnHover: !1,\n\t autoStart: !1,\n\t timeout: this.option(\"timeout\"),\n\t progressParentEl: () => n.querySelector(\".fancybox__toolbar [data-fancybox-toggle-slideshow]\") || n,\n\t on: {\n\t set: e => {\n\t var i;\n\t n.classList.add(\"has-slideshow\"), (null === (i = t.getSlide()) || void 0 === i ? void 0 : i.state) !== h.Ready && e.pause();\n\t },\n\t stop: () => {\n\t n.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) === h.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 }), i.attachPlugins({\n\t Autoplay: $$2\n\t }), this.ref = i.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(X, \"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 Y = {\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 q;\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}(q || (q = {}));\n\tlet Z = class extends m {\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: q.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 getProgress(t) {\n\t const e = this.instance,\n\t i = e.panzoom,\n\t n = e.pages[t] || 0;\n\t if (!n || !i) return 0;\n\t let s = -1 * i.current.e,\n\t o = e.contentDim,\n\t a = (s - n.pos) / (1 * n.dim),\n\t r = (s + o - n.pos) / (1 * n.dim),\n\t l = (s - o - n.pos) / (1 * n.dim);\n\t return a = Math.max(0, Math.min(1, Math.abs(a))), r = Math.max(0, Math.min(1, Math.abs(r))), l = Math.max(0, Math.min(1, Math.abs(l))), a = Math.min(a, r, l), a;\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 === q.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 x(e, this.cn(\"isResting\"), n.state !== T.Init && n.isResting);\n\t let s = 0,\n\t o = 0,\n\t a = 0;\n\n\t for (const e of t.slides) {\n\t let t = e.index,\n\t i = e.thumbSlideEl;\n\t if (!i) continue;\n\t o = 0, x(i, this.cn(\"isSelected\"), t === this.instance.page), o = 1 - this.getProgress(t), i.style.setProperty(\"--progress\", o ? o + \"\" : \"\");\n\t const n = .5 * ((e.thumbWidth || 0) - this.thumbClipWidth);\n\t s += n, o && (s -= o * (n + this.thumbExtraGap)), i.style.setProperty(\"--shift\", s + \"\"), s += n, o && (s -= o * (n + this.thumbExtraGap)), s -= this.thumbGap, 0 === t && (a = this.thumbExtraGap * o);\n\t }\n\n\t i && (i.style.setProperty(\"--left\", a + \"\"), i.style.setProperty(\"--width\", s + a + this.thumbGap + this.thumbExtraGap * o + \"\")), this.shouldCenter && this.centerModern();\n\t }\n\n\t buildClassic() {\n\t const {\n\t container: t,\n\t track: i\n\t } = this,\n\t n = this.getSlides();\n\t if (!t || !i || !n) return;\n\t const s = new this.instance.constructor(t, e({\n\t track: i,\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: n\n\t }));\n\t this.carousel = s, this.track = i, s.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: n\n\t } = this,\n\t s = this.option(\"thumbTpl\") || \"\";\n\t if (!t || !e || !s) return;\n\t R(t, \"is-horizontal\"), this.updateModern();\n\n\t for (const t of n.slides || []) {\n\t const n = document.createElement(\"div\");\n\n\t if (R(n, this.cn(\"slide\")), t.type) {\n\t let e = `for-${t.type}`;\n\t [\"video\", \"youtube\", \"vimeo\", \"html5video\"].includes(t.type) && (e += \" for-video\"), R(n, e);\n\t }\n\n\t n.appendChild(i(this.formatThumb(t, s))), t.thumbSlideEl = n, e.appendChild(n), this.resizeModernSlide(t);\n\t }\n\n\t const o = new n.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 i = n.slides[0],\n\t s = n.slides[n.slides.length - 1],\n\t o = n.slides[n.page];\n\t return i && s && o && (e = -1 * this.getModernThumbPos(0), 0 !== n.page && (e += .5 * (i.thumbWidth || 0)), t = -1 * this.getModernThumbPos(n.slides.length - 1), n.page !== n.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\", () => {\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(t) {\n\t const e = this.instance,\n\t {\n\t container: i,\n\t panzoom: n\n\t } = this;\n\t if (!i || !n || n.state === T.Init) return;\n\t const s = e.page;\n\t let o = this.getModernThumbPos(s),\n\t a = o;\n\n\t for (let t = e.page - 3; t < e.page + 3; t++) {\n\t if (t < 0 || t > e.pages.length - 1 || t === e.page) continue;\n\t const i = 1 - this.getProgress(t);\n\t i > 0 && i < 1 && (a += i * (this.getModernThumbPos(t) - o));\n\t }\n\n\t let r = 100;\n\t void 0 === t && (t = .2, e.inTransition.size > 0 && (t = .12), Math.abs(-1 * n.current.e - a) > n.containerRect.width && (t = .5, r = 0)), n.options.maxVelocity = r, n.applyChange({\n\t panX: v(-1 * a - n.target.e, 1e3),\n\t friction: null === e.prevPage ? 0 : t\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 n = -1 * e.current.e || 0;\n\t let s = this.getModernThumbPos(t.page);\n\t if (e.state !== T.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 r = s.index,\n\t l = this.getModernThumbPos(r),\n\t c = n - .5 * e.containerRect.innerWidth,\n\t h = c + e.containerRect.innerWidth;\n\t if (!o || l < c || l > h) continue;\n\t let d = o.dataset.lazySrc;\n\t if (!d || !d.length) continue;\n\t if (delete o.dataset.lazySrc, o.src = d, o.complete) continue;\n\t R(t, this.cn(\"isLoading\"));\n\t const u = i(a);\n\t t.appendChild(u), o.addEventListener(\"load\", () => {\n\t t.offsetParent && (t.classList.remove(this.cn(\"isLoading\")), u.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(t) {\n\t const e = this.instance.slides[t],\n\t i = this.panzoom;\n\t if (!i || !i.contentRect.fitWidth) return 0;\n\t let n = i.containerRect.innerWidth,\n\t s = i.contentRect.width;\n\t 2 === this.instance.slides.length && (t -= 1, s = 2 * this.thumbClipWidth);\n\t let o = t * (this.thumbClipWidth + this.thumbGap) + this.thumbExtraGap + .5 * (e.thumbWidth || 0);\n\t return o -= s > n ? .5 * n : .5 * s, v(o || 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 = q.Disabled);\n\t }\n\n\t const n = this.option(\"type\");\n\t if ([\"modern\", \"classic\"].indexOf(n) < 0) return void (this.state = q.Disabled);\n\t this.type = n;\n\t const s = document.createElement(\"div\");\n\t R(s, this.cn(\"container\")), R(s, `is-${n}`);\n\t const o = this.option(\"parentEl\");\n\t o ? o.appendChild(s) : e.after(s), this.container = s, R(e, this.cn(\"hasThumbs\"));\n\t const a = document.createElement(\"div\");\n\t R(a, this.cn(\"track\")), s.appendChild(a), this.track = a, \"classic\" === n ? this.buildClassic() : this.buildModern(), this.state = q.Ready;\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 = q.Init, z(this.instance.container, this.cn(\"hasThumbs\"));\n\t }\n\n\t attach() {\n\t this.instance.on(\"initSlide\", this.onInitSlide), this.instance.on(\"initSlides\", this.onInitSlides), this.instance.on(\"Panzoom.afterTransform\", this.onTransformM), this.instance.on(\"Panzoom.refresh\", this.onRefreshM), this.instance.on(\"change\", this.onChangeM);\n\t }\n\n\t detach() {\n\t this.instance.off(\"initSlide\", this.onInitSlide), this.instance.off(\"initSlides\", this.onInitSlides), this.instance.off(\"Panzoom.afterTransform\", this.onTransformM), this.instance.off(\"Panzoom.refresh\", this.onRefreshM), this.instance.off(\"change\", this.onChangeM), this.cleanup();\n\t }\n\n\t};\n\tObject.defineProperty(Z, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: Y\n\t});\n\tconst V = Object.assign(Object.assign({}, Y), {\n\t key: \"t\",\n\t showOnStart: !0,\n\t parentEl: null\n\t});\n\n\tclass G extends m {\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 !== q.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 i = t.carousel;\n\t if (!i) return;\n\t const n = this.option(\"parentEl\") || t.footer || t.container;\n\t n && (i.options.Thumbs = e({}, this.options, {\n\t parentEl: n,\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 }), i.attachPlugins({\n\t Thumbs: Z\n\t }), this.ref = i.plugins.Thumbs, this.option(\"showOnStart\") || (this.ref.state = q.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 !== q.Disabled && (t.state !== q.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 !== q.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 === q.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.on(\"Carousel.init\", this.onInit), this.instance.on(\"resize\", this.onResize), this.instance.on(\"keydown\", this.onKeydown);\n\t }\n\n\t detach() {\n\t this.instance.off(\"Carousel.init\", this.onInit), this.instance.off(\"resize\", this.onResize), this.instance.off(\"keydown\", this.onKeydown);\n\t }\n\n\t}\n\n\tObject.defineProperty(G, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: V\n\t});\n\tconst U = {\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 K;\n\t!function (t) {\n\t t[t.Init = 0] = \"Init\", t[t.Ready = 1] = \"Ready\", t[t.Disabled = 2] = \"Disabled\";\n\t}(K || (K = {}));\n\tconst J = {\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 Q = {\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 tt extends m {\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: K.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 R(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 && R(r, \"is-absolute\"), this.state = K.Ready, this.onRefresh();\n\t } else this.state = K.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 && L(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 !== h.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 R(i, \"fancybox__toolbar\"), e.prepend(i), i.addEventListener(\"click\", this.onClick, {\n\t passive: !1,\n\t capture: !0\n\t }), t && R(t, \"has-toolbar\"), this.container = i, i;\n\t }\n\n\t createEl(t) {\n\t var e;\n\t const n = this.instance.carousel;\n\t if (!n) 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 = n.slides.length || 0;\n\t let a = 0,\n\t r = 0;\n\n\t for (const t of n.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 !== U[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 !== U[t]) {\n\t const e = U[t];\n\t s = document.createElement(\"button\"), s.setAttribute(\"title\", this.instance.localize(`{{${t.toUpperCase()}}}`)), R(s, \"f-button\"), e.action && (s.dataset.panzoomAction = e.action), e.change && (s.dataset.panzoomChange = JSON.stringify(e.change)), s.appendChild(i(this.instance.localize(e.icon)));\n\t } else {\n\t const e = (this.option(\"items\") || [])[t];\n\t e && (s = i(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(Q)) l.getAttribute(t) || l.setAttribute(t, String(e));\n\t return s;\n\t }\n\n\t removeContainer() {\n\t var t;\n\t const e = this.container;\n\t e && e.removeEventListener(\"click\", this.onClick, {\n\t passive: !1,\n\t capture: !0\n\t }), null === (t = this.container) || void 0 === t || t.remove(), this.container = null, this.state = K.Disabled;\n\t const i = this.instance.container;\n\t i && z(i, \"has-toolbar\");\n\t }\n\n\t attach() {\n\t this.instance.on(\"Carousel.initSlides\", this.onReady), this.instance.on(\"done\", this.onDone), this.instance.on(\"reveal\", this.onChange), this.instance.on(\"Carousel.change\", this.onChange), this.onReady(this.instance);\n\t }\n\n\t detach() {\n\t this.instance.off(\"Carousel.initSlides\", this.onReady), this.instance.off(\"done\", this.onDone), this.instance.off(\"reveal\", this.onChange), this.instance.off(\"Carousel.change\", this.onChange), this.removeContainer();\n\t }\n\n\t}\n\n\tObject.defineProperty(tt, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: J\n\t});\n\n\tconst et = {\n\t Hash: g,\n\t Html: W,\n\t Images: H,\n\t Slideshow: X,\n\t Thumbs: G,\n\t Toolbar: tt\n\t},\n\t it = 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 nt = (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 st = {\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 ot;\n\t!function (t) {\n\t t[t.Init = 0] = \"Init\", t[t.Ready = 1] = \"Ready\", t[t.Destroy = 2] = \"Destroy\";\n\t}(ot || (ot = {}));\n\n\tconst at = 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 rt = (t = {}) => Object.assign({\n\t index: -1,\n\t slides: [],\n\t dim: 0,\n\t pos: -1\n\t}, t),\n\t lt = {\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 ct extends m {\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\"), R(t, this.cn(\"list\")), t.setAttribute(\"role\", \"tablist\"), this.instance.container.appendChild(t), R(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 o = \"number\" == typeof s && e > 5 && e >= s,\n\t a = !this.list || this.isDynamic !== o || this.list.children.length !== e;\n\t a && this.cleanup();\n\t const r = this.build();\n\t if (x(r, this.cn(\"isDynamic\"), !!o), a) for (let t = 0; t < e; t++) r.append(this.createItem(t));\n\t let l,\n\t c = 0;\n\n\t for (const e of [...r.children]) {\n\t const i = c === this.instance.page;\n\t i && (l = e), x(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\"]) z(e, this.cn(t));\n\n\t c++;\n\t }\n\n\t if (l = l || r.firstChild, o && l) {\n\t const t = l.previousElementSibling,\n\t e = t && t.previousElementSibling;\n\t R(t, this.cn(\"isPrev\")), R(e, this.cn(\"isBeforePrev\"));\n\t const i = l.nextElementSibling,\n\t n = i && i.nextElementSibling;\n\t R(i, this.cn(\"isNext\")), R(n, this.cn(\"isAfterNext\"));\n\t }\n\n\t this.isDynamic = o;\n\t }\n\n\t createItem(t = 0) {\n\t var e;\n\t const n = document.createElement(\"li\");\n\t n.setAttribute(\"role\", \"presentation\");\n\t const s = i(this.instance.localize(this.option(\"dotTpl\"), [[\"%d\", t + 1]]).replace(/\\%i/g, t + \"\"));\n\t return n.appendChild(s), null === (e = n.children[0]) || void 0 === e || e.setAttribute(\"role\", \"tab\"), n;\n\t }\n\n\t cleanup() {\n\t this.list && (this.list.remove(), this.list = null), this.isDynamic = !1, z(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(ct, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: lt\n\t});\n\n\tclass ht extends m {\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()}}}`)), R(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\"), R(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(ht, \"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 dt extends m {\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 === ot.Ready && this.onNavReady(this.nav), this.target.on(\"ready\", this.onTargetReady), this.target.state === ot.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.stopImmediatePropagation(), 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 !== ot.Ready || t.state !== ot.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 if (!e || e.state !== ot.Ready) return;\n\t this.selectedIndex = t, [...e.slides].filter(t => t.el && t.el.classList.remove(\"is-nav-selected\"));\n\t const i = e.slides[t];\n\t i && i.el && i.el.classList.add(\"is-nav-selected\");\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(dt, \"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 ut = {\n\t Navigation: ht,\n\t Dots: ct,\n\t Sync: dt\n\t};\n\n\tclass pt extends p {\n\t get axis() {\n\t return this.isHorizontal ? \"e\" : \"f\";\n\t }\n\n\t get isEnabled() {\n\t return this.state === ot.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, \"state\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: ot.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 || !L(t)) throw new Error(\"No Element found\");\n\t this.container = t, this.slideNext = it(this.slideNext.bind(this), 150), this.slidePrev = it(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 i = e({}, pt.defaults, this.userOptions);\n\t let n = \"\";\n\t const s = i.breakpoints;\n\t if (s && t(s)) for (const [o, a] of Object.entries(s)) window.matchMedia(o).matches && t(a) && (n += o, e(i, a));\n\t n === this.bp && this.state !== ot.Init || (this.bp = n, this.state === ot.Ready && (i.initialSlide = this.pages[this.page].slides[0].index), this.state !== ot.Init && this.destroy(), super.setOptions(i), !1 === this.option(\"enabled\") ? this.attachEvents() : setTimeout(() => {\n\t this.init();\n\t }, 0));\n\t }\n\n\t init() {\n\t this.state = ot.Init, this.emit(\"init\"), this.attachPlugins(Object.assign(Object.assign({}, pt.Plugins), this.userPlugins)), this.initLayout(), this.initSlides(), this.updateMetrics(), this.setInitialPosition(), this.initPanzoom(), this.attachEvents(), this.state = ot.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 R(t, this.cn(\"container\")), x(t, e.isLTR, !this.isRTL), x(t, e.isRTL, this.isRTL), x(t, e.isVertical, !this.isHorizontal), x(t, e.isHorizontal, this.isHorizontal);\n\t let i = this.option(\"viewport\") || t.querySelector(`.${e.viewport}`);\n\t i || (i = document.createElement(\"div\"), R(i, e.viewport), i.append(...nt(t, `.${e.slide}`)), t.prepend(i));\n\t let n = this.option(\"track\") || t.querySelector(`.${e.track}`);\n\t n || (n = document.createElement(\"div\"), R(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 = [], [...nt(t, `.${this.cn(\"slide\")}`)].forEach(t => {\n\t if (L(t)) {\n\t const e = at({\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 = at(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 F(this.viewport, e({}, {\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(rt({\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(rt()), 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 t = this.pages,\n\t {\n\t contentDim: e,\n\t viewportDim: i\n\t } = this,\n\t n = this.option(\"center\"),\n\t s = this.option(\"fill\"),\n\t o = s && n && e > i && !this.isInfinite;\n\t if (t.forEach((t, s) => {\n\t t.index = s, 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 o && t.pos + .5 * t.dim < .5 * i ? t.pos = 0 : o && t.pos + .5 * t.dim >= e - .5 * i ? t.pos = e - i : n && (t.pos += -.5 * (i - t.dim));\n\t }), t.forEach((t, n) => {\n\t s && !this.isInfinite && e > i && (t.pos = Math.max(t.pos, 0), t.pos = Math.min(t.pos, e - i)), t.pos = v(t.pos, 1e3), t.dim = v(t.dim, 1e3), t.pos < .1 && t.pos > -.1 && (t.pos = 0);\n\t }), this.isInfinite) return t;\n\t const a = [];\n\t let r;\n\t return t.forEach(t => {\n\t const e = Object.assign({}, t);\n\t r && e.pos === r.pos ? (r.dim += e.dim, r.slides = [...r.slides, ...e.slides]) : (e.index = a.length, r = e, a.push(e));\n\t }), a;\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, this.pages.length - 1), 0), i;\n\t }\n\n\t getSlideMetrics(t) {\n\t const e = this.isHorizontal ? \"width\" : \"height\";\n\t let i = 0,\n\t n = 0,\n\t s = t.el;\n\t s ? i = parseFloat(s.dataset[e] || \"\") || 0 : (s = document.createElement(\"div\"), s.style.visibility = \"hidden\", R(s, this.cn(\"slide\") + \" \" + t.class), (this.track || document.body).prepend(s)), i ? (s.style[e] = `${i}px`, s.style[\"width\" === e ? \"height\" : \"width\"] = \"\") : i = s.getBoundingClientRect()[e];\n\t const o = getComputedStyle(s);\n\t return \"content-box\" === o.boxSizing && (this.isHorizontal ? (i += parseFloat(o.paddingLeft) || 0, i += parseFloat(o.paddingRight) || 0) : (i += parseFloat(o.paddingTop) || 0, i += parseFloat(o.paddingBottom) || 0)), n = parseFloat(o[this.isHorizontal ? \"marginRight\" : \"marginBottom\"]) || 0, this.isHorizontal, t.el || s.remove(), {\n\t dim: v(i, 1e3),\n\t gap: v(n, 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 const {\n\t viewportDim: t,\n\t contentDim: e,\n\t page: i,\n\t pages: n\n\t } = this;\n\t let s,\n\t o = 0,\n\t a = 0,\n\t r = 0,\n\t l = 0;\n\t this.panzoom ? l = -1 * this.panzoom.current[this.isHorizontal ? \"e\" : \"f\"] : n[i] && (l = n[i].pos || 0), s = this.isHorizontal ? this.isRTL ? \"right\" : \"left\" : \"top\", this.isRTL && this.isHorizontal && (l *= -1);\n\n\t for (const t of this.slides) t.el ? (\"top\" === s ? (t.el.style.right = \"\", t.el.style.left = \"\") : t.el.style.top = \"\", t.index !== o ? t.el.style[s] = 0 === a ? \"\" : `${v(a, 1e3)}px` : t.el.style[s] = \"\", r += t.dim + t.gap, o++) : a += t.dim + t.gap;\n\n\t if (this.isInfinite && r) for (const i of this.slides) i.el && (v(i.pos) < v(t) && v(i.pos + i.dim + i.gap) < v(l) && v(l) > v(e - t) && (i.el.style[s] = `${v(a + r, 1e3)}px`), v(i.pos + i.gap) >= v(e - t) && v(i.pos) > v(l + t) && v(l) < v(t) && (i.el.style[s] = `-${v(r, 1e3)}px`));\n\t let c,\n\t h,\n\t d = [...this.inTransition];\n\n\t if (d.length > 1 && (c = this.pages[d[0]], h = this.pages[d[1]]), c && h) {\n\t let t = 0;\n\n\t for (const e of this.slides) e.el ? this.inTransition.has(e.index) && c.slides.indexOf(e) < 0 && (e.el.style[s] = `${v(t + (c.pos - h.pos), 1e3)}px`) : t += e.dim + e.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 R(e, this.cn(\"slide\")), R(e, t.class), R(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 (z(i, this.cn(\"isSelected\")), t.isDom && !e) return 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(t = 0, e = this.option(\"transition\")) {\n\t if (!e) return !1;\n\t const {\n\t pages: i,\n\t panzoom: n\n\t } = this;\n\t t = parseInt((t || 0).toString()) || 0;\n\t const s = this.getPageFromIndex(t);\n\t if (!n || !i[s] || i.length < 2 || i[this.page].slides[0].dim < this.viewportDim) return !1;\n\t const o = t > this.page ? 1 : -1,\n\t a = this.pages[s].pos * (this.isRTL ? 1 : -1);\n\t if (this.page === s && v(a, 1e3) === v(n.target[this.axis], 1e3)) return !1;\n\t this.clearTransitions();\n\t const r = n.isResting;\n\t R(this.container, this.cn(\"inTransition\"));\n\t const l = this.pages[this.page].slides[0],\n\t c = this.pages[s].slides[0];\n\t this.inTransition.add(c.index), this.createSlideEl(c);\n\t let h = l.el,\n\t d = c.el;\n\t r || \"slide\" === e || (e = \"fadeFast\", h = null);\n\t const u = this.isRTL ? \"next\" : \"prev\",\n\t p = this.isRTL ? \"prev\" : \"next\";\n\t return h && (this.inTransition.add(l.index), l.transition = e, h.addEventListener(\"animationend\", this.onAnimationEnd), h.classList.add(`f-${e}Out`, `to-${o > 0 ? p : u}`)), d && (c.transition = e, d.addEventListener(\"animationend\", this.onAnimationEnd), d.classList.add(`f-${e}In`, `from-${o > 0 ? u : p}`)), n.panTo({\n\t x: this.isHorizontal ? a : 0,\n\t y: this.isHorizontal ? 0 : a,\n\t friction: 0\n\t }), this.onChange(s), !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) || (R(i.el, e), this.emit(\"selectSlide\", i)), i.el.removeAttribute(t)) : (i.el.classList.contains(e) && (z(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 n = t && t.el;\n\t if (!n) return;\n\t const s = new Set();\n\t n.querySelectorAll(\"[data-lazy-srcset]\").forEach(t => {\n\t t instanceof HTMLImageElement && s.add(t);\n\t }), n.querySelectorAll(\"[data-lazy-src]\").forEach(t => {\n\t t instanceof HTMLImageElement ? s.add(t) : L(t) && (t.style.backgroundImage = `url('${t.dataset.lazySrc || \"\"}')`);\n\t });\n\n\t const o = (t, i, n) => {\n\t n && (n.remove(), n = null), i.complete && (i.style.display = \"\"), this.option(\"adaptiveHeight\") && t.el && this.pages[this.page].slides.indexOf(t) > -1 && e.setViewportHeight();\n\t };\n\n\t for (const e of s) {\n\t let n = 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 o(t, e, n);\n\t }), e.addEventListener(\"load\", () => {\n\t o(t, e, n);\n\t }), setTimeout(() => {\n\t e.parentNode && t.el && (e.complete ? o(t, e, n) : (n = i(a), e.parentNode.insertBefore(n, e)));\n\t }, 300);\n\t }\n\n\t let r = n.dataset.lazySrc;\n\t r && r.length && (n.style.backgroundImage = `url('${r}')`);\n\t }\n\n\t clearTransitions() {\n\t this.inTransition.clear(), z(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 onAnimationEnd(t) {\n\t const e = t.target,\n\t i = e ? parseInt(e.dataset.index || \"\", 10) || 0 : -1,\n\t n = this.slides[i],\n\t s = t.animationName;\n\t if (!e || !n || !s) return;\n\t const o = !!this.inTransition.has(i) && n.transition;\n\t o && s.substring(0, o.length + 2) === `f-${o}` && this.inTransition.delete(i), this.inTransition.size || this.clearTransitions(), i === this.page && this.emit(\"settle\");\n\t }\n\n\t onDecel(t, e = 0, i = 0, n = 0, s = 0) {\n\t const o = this.isRTL,\n\t a = this.isHorizontal,\n\t r = this.axis,\n\t l = this.pages.length,\n\t c = Math.abs(Math.atan2(i, e) / (Math.PI / 180));\n\t let h = 0;\n\t if (h = c > 45 && c < 135 ? a ? 0 : i : a ? e : 0, !l) return;\n\t const d = this.option(\"dragFree\");\n\t let u = this.page;\n\t const p = t.target[r] * (this.isRTL && a ? 1 : -1),\n\t {\n\t pageIndex: m\n\t } = this.getPageFromPosition(p),\n\t f = t.current[r] * (o && a ? 1 : -1);\n\t let {\n\t page: g\n\t } = this.getPageFromPosition(f);\n\t d ? this.onChange(m) : (Math.abs(h) > 5 ? (Math.max(Math.abs(n), Math.abs(s)) > this.pages[u].slides[0].dim && (console.log(`yes? targetPage: ${m}; currentPage: ${g}`), u = g), u = o && a ? h < 0 ? u - 1 : u + 1 : h < 0 ? u + 1 : u - 1) : u = g, this.slideTo(u, {\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 && L(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(t, e = \"\") {\n\t let i = this.contentDim,\n\t n = this.viewportDim;\n\t this.updateMetrics(), this.contentDim === i && this.viewportDim === n || 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() {\n\t this.flipInfiniteTrack(), this.manageSlideVisiblity();\n\t }\n\n\t onEndAnimation() {\n\t this.emit(\"settle\");\n\t }\n\n\t reInit(t = null, e = null) {\n\t this.destroy(), this.state = ot.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 === ot.Destroy) return;\n\t const n = this.panzoom,\n\t s = this.pages.length;\n\t if (!n || !s) return;\n\t if (this.transitionTo(t, i)) return;\n\t const o = this.axis,\n\t a = this.getPageFromIndex(t);\n\t let r = this.pages[a].pos,\n\t l = 0;\n\n\t if (this.isInfinite) {\n\t const t = n.current[o] * (this.isRTL && this.isHorizontal ? 1 : -1),\n\t e = this.contentDim,\n\t i = r + e,\n\t s = r - e;\n\t Math.abs(t - i) < Math.abs(t - r) && (r = i, l = 1), Math.abs(t - s) < Math.abs(t - r) && (r = s, l = -1);\n\t }\n\n\t r *= this.isRTL && this.isHorizontal ? 1 : -1, Math.abs(n.target[o] - r) < .1 || (n.panTo({\n\t x: this.isHorizontal ? r : 0,\n\t y: this.isHorizontal ? 0 : r,\n\t friction: e\n\t }), this.onChange(a, l));\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 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(at(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 = at(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 t = this.panzoom;\n\t if (!this.track) return;\n\t const e = \"e\" === this.axis ? \"width\" : \"height\";\n\t let i,\n\t n = this.pages.length,\n\t s = 0;\n\n\t for (const [t, e] of this.slides.entries()) {\n\t let n = 0,\n\t o = 0;\n\t !e.el && i ? (n = i.dim, o = i.gap) : (({\n\t dim: n,\n\t gap: o\n\t } = this.getSlideMetrics(e)), i = e), n = v(n, 1e3), o = v(o, 1e3), e.dim = n, e.gap = o, e.pos = s, s += n, (this.isInfinite || t < this.slides.length - 1) && (s += o);\n\t }\n\n\t this.viewport && (this.viewportDim = v(this.viewport.getBoundingClientRect()[e], 1e3));\n\t const o = this.contentDim;\n\t this.contentDim = s, t && (t.contentRect[e] = s, t.contentRect[\"e\" === this.axis ? \"fullWidth\" : \"fullHeight\"] = s), this.pages = this.createPages(), this.pages = this.processPages(), this.state === ot.Init && this.setInitialPage(), this.page = Math.max(0, Math.min(this.page, this.pages.length - 1)), t && n === this.pages.length && s !== o && (t.target[this.axis] = -1 * this.pages[this.page].pos, t.current[this.axis] = -1 * this.pages[this.page].pos, t.stop()), this.manageSlideVisiblity(), this.emit(\"refresh\");\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 interval: l\n\t };\n\t }\n\n\t destroy() {\n\t if ([ot.Destroy].includes(this.state)) return;\n\t this.state = ot.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(), this.track = null, this.viewport = null, this.page = 0, e && i && 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.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(pt, \"Panzoom\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: F\n\t}), Object.defineProperty(pt, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: st\n\t}), Object.defineProperty(pt, \"Plugins\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: ut\n\t});\n\tlet mt = null,\n\t ft = null;\n\tconst gt = new Map();\n\tlet bt = 0;\n\n\tclass vt extends p {\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, \"prevWheelTime\", {\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: c.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 || ++bt, gt.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 this.state = c.Init, this.attachPlugins(Object.assign(Object.assign({}, vt.Plugins), this.userPlugins)), this.emit(\"init\"), !0 === this.option(\"hideScrollbar\") && (() => {\n\t if (!n) return;\n\t if (document.body.classList.contains(\"compensate-for-scrollbar\")) return;\n\t const t = window.innerWidth - document.documentElement.getBoundingClientRect().width;\n\t t > 1 && (document.documentElement.style.setProperty(\"--fancybox-scrollbar-compensate\", `${t}px`), document.body.classList.add(\"compensate-for-scrollbar\"));\n\t })(), this.initLayout();\n\n\t const t = () => {\n\t this.initCarousel(this.userSlides), this.state = c.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 const t = this.option(\"parentEl\") || document.body,\n\t e = i(this.localize(this.option(\"tpl.main\") || \"\"));\n\t e && (e.setAttribute(\"id\", `fancybox-${this.id}`), e.setAttribute(\"aria-label\", this.localize(\"{{MODAL}}\")), e.classList.toggle(\"is-compact\", this.isCompact), R(e, this.option(\"mainClass\") || \"\"), this.container = e, this.footer = e.querySelector(\".fancybox__footer\"), t.appendChild(e), document.documentElement.classList.add(\"with-fancybox\"), mt && ft || (mt = document.createElement(\"button\"), mt.classList.add(\"fancybox-focus-guard\"), mt.setAttribute(\"aria-hidden\", \"true\"), mt.setAttribute(\"aria-label\", \"Focus guard\"), mt.setAttribute(\"type\", \"button\"), ft = mt.cloneNode(), document.body.prepend(mt), document.body.append(ft)), this.option(\"animated\") && (e.classList.add(\"is-animated\"), setTimeout(() => {\n\t this.isClosing() || e.classList.remove(\"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 pt(n, e({}, {\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 this.manageCaption(this.getSlide());\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, e) => {\n\t const i = this.container;\n\n\t if (i) {\n\t const t = Math.abs(e.current.f),\n\t n = t < 1 ? \"\" : Math.max(.5, Math.min(1, 1 - t / e.contentRect.fitHeight * 1.5));\n\t i.style.setProperty(\"--fancybox-ts\", n ? \"0s\" : \"\"), i.style.setProperty(\"--fancybox-opacity\", n + \"\");\n\t }\n\t }), s.on(\"Panzoom.touchEnd\", (t, e, i) => {\n\t var n;\n\t if (e.isMobile && document.activeElement && -1 !== [\"TEXTAREA\", \"INPUT\", \"SELECT\"].indexOf(null === (n = document.activeElement) || void 0 === n ? void 0 : n.nodeName)) return;\n\t const s = this.getSlide();\n\t if (s && s.el && s.el.scrollHeight > s.el.clientHeight) return;\n\t const o = Math.abs(e.dragOffset.y);\n\t \"y\" === e.lockedAxis && (o >= 200 || o >= 50 && e.dragOffset.time < 300) && (i && i.cancelable && i.preventDefault(), this.close(i, \"f-throwOut\" + (e.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 let n = (null == i ? void 0 : i.downloadSrc) || \"\";\n\t n || !i || \"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.removeAttribute(\"disabled\"), t.removeAttribute(\"tabindex\"), t.setAttribute(\"href\", n), t.setAttribute(\"download\", n), t.setAttribute(\"target\", \"_blank\")) : (t.setAttribute(\"disabled\", \"\"), t.setAttribute(\"tabindex\", \"-1\"), t.removeAttribute(\"href\"), t.removeAttribute(\"download\"));\n\t }), this.emit(\"initCarousel\");\n\t }\n\n\t attachEvents() {\n\t const t = this.container;\n\t t && (document.addEventListener(\"keydown\", this.onKeydown, {\n\t passive: !1,\n\t capture: !0\n\t }), t.addEventListener(\"wheel\", this.onWheel, {\n\t passive: !1,\n\t capture: !1\n\t }), t.addEventListener(\"click\", this.onClick, {\n\t passive: !1,\n\t capture: !1\n\t }), document.addEventListener(\"mousemove\", this.onMousemove), window.addEventListener(\"resize\", this.onResize), this.option(\"trapFocus\") && document.addEventListener(\"focus\", this.onFocus, !0), document.addEventListener(\"visibilitychange\", this.onVisibilityChange, !1));\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 if (this.isClosing()) return;\n\t !this.isCompact && this.option(\"idle\") && this.resetIdle();\n\t const n = t.composedPath()[0];\n\t if (n === (null === (e = this.carousel) || void 0 === e ? void 0 : e.container)) return;\n\t if (n.closest(\".f-spinner\") || n.closest(\"[data-fancybox-close]\")) return t.preventDefault(), void this.close(t);\n\t if (n.closest(\"[data-fancybox-prev]\")) return t.preventDefault(), void this.prev();\n\t if (n.closest(\"[data-fancybox-next]\")) return t.preventDefault(), void this.next();\n\t if (this.isCompact && \"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 s = !1;\n\t const a = document.activeElement;\n\n\t if (n.closest(\".fancybox__content\")) {\n\t if (a) {\n\t if (a.closest(\"[contenteditable]\")) return;\n\t n.matches(o) || a.blur();\n\t }\n\n\t if ((r = window.getSelection()) && \"Range\" === r.type) return;\n\t s = this.option(\"contentClick\");\n\t } else n.closest(\".fancybox__carousel\") && !n.matches(o) && (s = this.option(\"backdropClick\"));\n\n\t var r;\n\t \"close\" === s ? (t.preventDefault(), this.close(t)) : \"next\" === s ? (t.preventDefault(), this.next()) : \"prev\" === s && (t.preventDefault(), this.prev());\n\t }\n\n\t onWheel(t) {\n\t const e = t.wheelDeltaY ? t.wheelDeltaY === -3 * t.deltaY : 0 === t.deltaMode,\n\t i = Date.now();\n\t if (this.prevWheelTime && i - this.prevWheelTime < (e ? 600 : 300)) return void t.preventDefault();\n\t if (this.prevWheelTime = i, this.emit(\"wheel\", t), t.defaultPrevented) return;\n\t const n = this.option(\"wheel\", t);\n\t if (\"close\" === n) t.preventDefault(), this.close(t);else if (\"slide\" === n) {\n\t t.preventDefault();\n\t this[Math.max(-1, Math.min(1, -t.deltaY || -t.deltaX || -t.detail)) > 0 ? \"prev\" : \"next\"]();\n\t }\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 && L(n)) {\n\t if (n.isContentEditable || -1 !== [\"BUTTON\", \"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.focus(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 === K.Ready) return;\n\t }\n\n\t if (!e) return;\n\t if (!t.contentEl || t.closeBtnEl) return;\n\t const n = this.option(\"tpl.closeButton\");\n\n\t if (n) {\n\t const e = i(this.localize(n));\n\t t.closeBtnEl = t.contentEl.appendChild(e), t.el && R(t.el, \"has-close-btn\");\n\t }\n\t }\n\n\t manageCaption(t) {\n\t var e, i, n;\n\t const s = this.container;\n\t if (!s) return;\n\t const o = this.isCompact || this.option(\"commonCaption\"),\n\t a = !o;\n\t if (this.caption && this.stop(this.caption), a && this.caption && (this.caption.remove(), this.caption = null), o && !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, null === (i = t.el) || void 0 === i || i.classList.remove(\"has-caption\"), null === (n = t.el) || void 0 === n || n.removeAttribute(\"aria-labelledby\"));\n\t if (t || (t = this.getSlide()), !t || o && !this.isCurrentSlide(t)) return;\n\t const r = t.el;\n\t let l = this.optionFor(t, \"caption\", \"\");\n\t if (\"string\" != typeof l || !l.length) return void (o && 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 c = null;\n\n\t if (a) {\n\t if (c = t.captionEl || null, r && !c) {\n\t const e = `fancybox__caption_${this.id}_${t.index}`;\n\t c = document.createElement(\"div\"), c.className = \"fancybox__caption\", c.setAttribute(\"id\", e), t.captionEl = r.appendChild(c), r.classList.add(\"has-caption\"), r.setAttribute(\"aria-labelledby\", e);\n\t }\n\t } else {\n\t if (c = this.caption, c || (c = s.querySelector(\".fancybox__caption\")), !c) {\n\t c = document.createElement(\"div\"), c.dataset.fancyboxCaption = \"\", c.className = \"fancybox__caption\", c.innerHTML = l;\n\t (this.footer || s).prepend(c);\n\t }\n\n\t s.classList.add(\"has-caption\"), this.caption = c;\n\t }\n\n\t c && (c.innerHTML = l);\n\t }\n\n\t checkFocus() {\n\t var t;\n\t const e = document.activeElement || null;\n\t e && (null === (t = this.container) || void 0 === t ? void 0 : t.contains(e)) || this.focus();\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 a = (null == t ? void 0 : t.target) || null,\n\t r = this.container,\n\t l = this.getSlide();\n\t if (!r || !(null === (e = this.carousel) || void 0 === e ? void 0 : e.viewport)) return;\n\t const c = l && l.state === h.Ready ? l.el : null;\n\t if (!c || c.contains(i) || r === i) return;\n\t t && t.cancelable && t.preventDefault(), this.ignoreFocusChange = !0;\n\t const d = Array.from(r.querySelectorAll(o));\n\t let u = [],\n\t p = r;\n\n\t for (let t of d) {\n\t const e = !t.offsetParent || t.closest('[aria-hidden=\"true\"]'),\n\t i = c && c.contains(t),\n\t n = !this.carousel.viewport.contains(t);\n\t t === r || (i || n) && !e ? (u.push(t), void 0 !== t.dataset.origTabindex && (t.tabIndex = parseFloat(t.dataset.origTabindex)), t.removeAttribute(\"data-orig-tabindex\"), t.hasAttribute(\"autoFocus\") && (p = 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 m = null;\n\t t ? (!a || u.indexOf(a) < 0) && (m = p, u.length && (i === ft ? m = u[0] : this.lastFocus !== r && i !== mt || (m = u[u.length - 1]))) : this.option(\"autoFocus\") && (m = p), m && (t => {\n\t if (t && n) {\n\t void 0 === s && document.createElement(\"div\").focus({\n\t get preventScroll() {\n\t return s = !0, !1;\n\t }\n\n\t });\n\n\t try {\n\t if (s) 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 })(m), 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 = vt.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(), t.classList.remove(e));\n\t };\n\n\t t.dataset.animationName = e, t.addEventListener(\"animationend\", n), t.classList.add(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 n = t.el;\n\t if (!n) return;\n\t let s = null;\n\t if (L(e)) [\"img\", \"iframe\", \"video\", \"audio\"].includes(e.nodeName.toLowerCase()) ? (s = document.createElement(\"div\"), s.appendChild(e)) : s = e;else {\n\t const t = document.createRange().createContextualFragment(e);\n\t s = document.createElement(\"div\"), s.appendChild(t);\n\t }\n\t s instanceof Element && t.filter && !t.error && (s = s.querySelector(t.filter)), s instanceof Element ? (s.classList.add(\"fancybox__content\"), t.id && s.setAttribute(\"id\", t.id), \"none\" !== s.style.display && \"none\" !== getComputedStyle(s).getPropertyValue(\"display\") || (s.style.display = t.display || this.option(\"defaultDisplay\") || \"flex\"), n.classList.add(`has-${t.error ? \"error\" : t.type || \"unknown\"}`), n.prepend(s), t.contentEl = s, 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 = h.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 var e;\n\t this.isClosing() || (t.state = h.Ready, this.emit(\"done\", t), null === (e = t.el) || void 0 === e || e.classList.add(\"is-done\"), this.isCurrentSlide(t) && this.option(\"autoFocus\") && queueMicrotask(() => {\n\t var t;\n\n\t if (this.option(\"autoFocus\")) {\n\t const e = document.activeElement || null;\n\t e && (null === (t = this.container) || void 0 === t ? void 0 : t.contains(e)) || this.focus();\n\t }\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 = h.Loading;\n\t const e = t.el;\n\t if (!e) return;\n\t e.classList.add(\"is-loading\"), this.emit(\"loading\", t), t.spinnerEl || setTimeout(() => {\n\t if (!this.isClosing() && !t.spinnerEl && t.state === h.Loading) {\n\t let n = i(a);\n\t t.spinnerEl = n, e.prepend(n), this.animate(n, \"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.classList.remove(\"is-loading\"), i && this.animate(i, \"f-fadeOut\", () => {\n\t i.remove();\n\t }), t.state === h.Loading && (this.emit(\"loaded\", t), t.state = h.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 && (z(i, \"is-loading\"), z(i, \"has-error\"), z(i, \"has-unknown\"), z(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 var t;\n\t this.clearIdle(), this.idle = !0, null === (t = this.container) || void 0 === t || t.classList.add(\"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 var t;\n\t this.clearIdle(), this.idle && !this.isClosing() && (this.idle = !1, null === (t = this.container) || void 0 === t || t.classList.remove(\"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 [c.Closing, c.CustomClosing, c.Destroy].includes(this.state);\n\t }\n\n\t proceedClose(t, e) {\n\t var i, n;\n\t this.state = c.Closing, this.clearIdle(), this.detachEvents();\n\t const s = this.container,\n\t o = this.carousel,\n\t a = this.getSlide();\n\n\t if (a) {\n\t const t = this.option(\"placeFocusBack\") ? (null === (i = this.getSlide()) || void 0 === i ? void 0 : i.triggerEl) || this.option(\"trigger\") : null;\n\t t && t.focus();\n\t }\n\n\t if (s && (R(s, \"is-closing\"), s.setAttribute(\"aria-hidden\", \"true\"), this.option(\"animated\") && R(s, \"is-animated\"), s.style.pointerEvents = \"none\"), o) {\n\t o.clearTransitions(), null === (n = o.panzoom) || void 0 === n || n.destroy();\n\n\t for (const t of o.slides) {\n\t t.state = h.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) || o.emit(\"removeSlide\", t);\n\t }\n\t }\n\n\t this.emit(\"close\", t), this.state !== c.CustomClosing ? (void 0 === e && a && (e = this.optionFor(a, \"hideClass\")), e && a ? (this.animate(a.contentEl, e, () => {\n\t o && o.emit(\"removeSlide\", a);\n\t }), setTimeout(() => {\n\t this.destroy();\n\t }, 350)) : this.destroy()) : setTimeout(() => {\n\t this.destroy();\n\t }, 350);\n\t }\n\n\t destroy() {\n\t var t;\n\t if (this.state === c.Destroy) return;\n\t this.state = c.Destroy, null === (t = this.carousel) || void 0 === t || t.destroy();\n\t const e = this.container;\n\t e && e.remove(), gt.delete(this.id);\n\t const i = vt.getInstance();\n\t i ? i.focus() : (mt && (mt.remove(), mt = null), ft && (ft.remove(), ft = null), document.documentElement.classList.remove(\"with-fancybox\"), n && (document.documentElement.style.setProperty(\"--fancybox-scrollbar-compensate\", \"\"), document.body.classList.remove(\"compensate-for-scrollbar\")));\n\t }\n\n\t static bind(t, e, i) {\n\t if (!n) return;\n\t let s,\n\t o = \"\",\n\t a = {};\n\t if (\"string\" == typeof t ? (s = document.body, o = t, \"object\" == typeof e && (a = e || {})) : (s = t, \"string\" == typeof e && (o = e), \"object\" == typeof i && (a = i || {})), !s) return;\n\t o = o || \"[data-fancybox]\";\n\t const r = vt.openers.get(s) || new Map();\n\t r.set(o, a), vt.openers.set(s, r), 1 === r.size && s.addEventListener(\"click\", vt.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 = vt.openers.get(i);\n\t s && n && s.delete(n), n && s || (vt.openers.delete(i), i.removeEventListener(\"click\", vt.fromEvent));\n\t }\n\n\t static destroy() {\n\t let t;\n\n\t for (; t = vt.getInstance();) t.destroy();\n\n\t for (const t of vt.openers.keys()) t.removeEventListener(\"click\", vt.fromEvent);\n\n\t vt.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 i = t.composedPath()[0];\n\t const n = i.closest(\"[data-fancybox-trigger]\");\n\n\t if (n) {\n\t const t = n.dataset.fancyboxTrigger || \"\",\n\t e = document.querySelectorAll(`[data-fancybox=\"${t}\"]`),\n\t s = parseInt(n.dataset.fancyboxIndex || \"\", 10) || 0;\n\t i = e[s] || i;\n\t }\n\n\t if (!(i && i instanceof Element)) return;\n\t let s, o, a, r;\n\t if ([...vt.openers].reverse().find(([t, e]) => !(!t.contains(i) || ![...e].reverse().find(([e, n]) => {\n\t let l = i.closest(e);\n\t return !!l && (s = t, o = e, a = l, r = n, !0);\n\t }))), !s || !o || !a) return;\n\t r = r || {}, t.preventDefault(), i = a;\n\t let c = [],\n\t h = e({}, l, r);\n\t h.event = t, h.trigger = i, h.delegate = n;\n\t const d = h.groupAll,\n\t u = h.groupAttr,\n\t p = u && i ? i.getAttribute(`${u}`) : \"\";\n\t if ((!i || p || d) && (c = [].slice.call(s.querySelectorAll(o))), i && !d && (c = p ? c.filter(t => t.getAttribute(`${u}`) === p) : [i]), !c.length) return;\n\t const m = vt.getInstance();\n\t return m && m.options.trigger && c.indexOf(m.options.trigger) > -1 ? void 0 : (i && (h.startIndex = c.indexOf(i)), vt.fromNodes(c, h));\n\t }\n\n\t static fromNodes(t, i) {\n\t i = e({}, l, i);\n\t const n = [];\n\n\t for (const e of t) {\n\t const t = e.dataset || {},\n\t s = t.src || e.getAttribute(\"href\") || e.getAttribute(\"currentSrc\") || e.getAttribute(\"src\") || void 0;\n\t let o;\n\t const a = i.delegate;\n\t let r;\n\t a && n.length === i.startIndex && (o = a instanceof HTMLImageElement ? a : a.querySelector(\"img:not([aria-hidden])\")), o || (o = e instanceof HTMLImageElement ? e : e.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: e,\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 n.push(l);\n\t }\n\n\t return new vt(n, i);\n\t }\n\n\t static getInstance(t) {\n\t if (t) return gt.get(t);\n\t return Array.from(gt.values()).reverse().find(t => !t.isClosing() && t) || null;\n\t }\n\n\t static getSlide() {\n\t var t;\n\t return (null === (t = vt.getInstance()) || void 0 === t ? void 0 : t.getSlide()) || null;\n\t }\n\n\t static show(t = [], e = {}) {\n\t return new vt(t, e);\n\t }\n\n\t static next() {\n\t const t = vt.getInstance();\n\t t && t.next();\n\t }\n\n\t static prev() {\n\t const t = vt.getInstance();\n\t t && t.prev();\n\t }\n\n\t static close(t = !0, ...e) {\n\t if (t) for (const t of gt.values()) t.close(...e);else {\n\t const t = vt.getInstance();\n\t t && t.close(...e);\n\t }\n\t }\n\n\t}\n\n\tObject.defineProperty(vt, \"version\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: \"5.0.7\"\n\t}), Object.defineProperty(vt, \"defaults\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: l\n\t}), Object.defineProperty(vt, \"Plugins\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: et\n\t}), Object.defineProperty(vt, \"openers\", {\n\t enumerable: !0,\n\t configurable: !0,\n\t writable: !0,\n\t value: new Map()\n\t});\n\n\tvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\tfunction unwrapExports (x) {\n\t\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n\t}\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\tvar splitting = createCommonjsModule(function (module, exports) {\n\t(function (global, factory) {\n\t module.exports = factory() ;\n\t})(commonjsGlobal, function () {\n\n\t var root = document;\n\t var createText = root.createTextNode.bind(root);\n\t /**\n\t * # setProperty\n\t * Apply a CSS var\n\t * @param el{HTMLElement} \n\t * @param varName {string} \n\t * @param value {string|number} \n\t */\n\n\t function setProperty(el, varName, value) {\n\t el.style.setProperty(varName, value);\n\t }\n\t /**\n\t * \n\t * @param {Node} el \n\t * @param {Node} child \n\t */\n\n\n\t function appendChild(el, child) {\n\t return el.appendChild(child);\n\t }\n\n\t function createElement(parent, key, text, whitespace) {\n\t var el = root.createElement('span');\n\t key && (el.className = key);\n\n\t if (text) {\n\t !whitespace && el.setAttribute(\"data-\" + key, text);\n\t el.textContent = text;\n\t }\n\n\t return parent && appendChild(parent, el) || el;\n\t }\n\n\t function getData(el, key) {\n\t return el.getAttribute(\"data-\" + key);\n\t }\n\t /**\n\t * \n\t * @param e {import('../types').Target} \n\t * @param parent {HTMLElement}\n\t * @returns {HTMLElement[]}\n\t */\n\n\n\t function $(e, parent) {\n\t return !e || e.length == 0 ? // null or empty string returns empty array\n\t [] : e.nodeName ? // a single element is wrapped in an array\n\t [e] : // selector and NodeList are converted to Element[]\n\t [].slice.call(e[0].nodeName ? e : (parent || root).querySelectorAll(e));\n\t }\n\t /**\n\t * Creates and fills an array with the value provided\n\t * @template {T}\n\t * @param {number} len\n\t * @param {() => T} valueProvider\n\t * @return {T}\n\t */\n\n\n\t function Array2D(len) {\n\t var a = [];\n\n\t for (; len--;) {\n\t a[len] = [];\n\t }\n\n\t return a;\n\t }\n\n\t function each(items, fn) {\n\t items && items.some(fn);\n\t }\n\n\t function selectFrom(obj) {\n\t return function (key) {\n\t return obj[key];\n\t };\n\t }\n\t /**\n\t * # Splitting.index\n\t * Index split elements and add them to a Splitting instance.\n\t *\n\t * @param element {HTMLElement}\n\t * @param key {string}\n\t * @param items {HTMLElement[] | HTMLElement[][]}\n\t */\n\n\n\t function index(element, key, items) {\n\t var prefix = '--' + key;\n\t var cssVar = prefix + \"-index\";\n\t each(items, function (items, i) {\n\t if (Array.isArray(items)) {\n\t each(items, function (item) {\n\t setProperty(item, cssVar, i);\n\t });\n\t } else {\n\t setProperty(items, cssVar, i);\n\t }\n\t });\n\t setProperty(element, prefix + \"-total\", items.length);\n\t }\n\t /**\n\t * @type {Record}\n\t */\n\n\n\t var plugins = {};\n\t /**\n\t * @param by {string}\n\t * @param parent {string}\n\t * @param deps {string[]}\n\t * @return {string[]}\n\t */\n\n\t function resolvePlugins(by, parent, deps) {\n\t // skip if already visited this dependency\n\t var index = deps.indexOf(by);\n\n\t if (index == -1) {\n\t // if new to dependency array, add to the beginning\n\t deps.unshift(by); // recursively call this function for all dependencies\n\n\t each(plugins[by].depends, function (p) {\n\t resolvePlugins(p, by, deps);\n\t });\n\t } else {\n\t // if this dependency was added already move to the left of\n\t // the parent dependency so it gets loaded in order\n\t var indexOfParent = deps.indexOf(parent);\n\t deps.splice(index, 1);\n\t deps.splice(indexOfParent, 0, by);\n\t }\n\n\t return deps;\n\t }\n\t /**\n\t * Internal utility for creating plugins... essentially to reduce\n\t * the size of the library\n\t * @param {string} by \n\t * @param {string} key \n\t * @param {string[]} depends \n\t * @param {Function} split \n\t * @returns {import('./types').ISplittingPlugin}\n\t */\n\n\n\t function createPlugin(by, depends, key, split) {\n\t return {\n\t by: by,\n\t depends: depends,\n\t key: key,\n\t split: split\n\t };\n\t }\n\t /**\n\t *\n\t * @param by {string}\n\t * @returns {import('./types').ISplittingPlugin[]}\n\t */\n\n\n\t function resolve(by) {\n\t return resolvePlugins(by, 0, []).map(selectFrom(plugins));\n\t }\n\t /**\n\t * Adds a new plugin to splitting\n\t * @param opts {import('./types').ISplittingPlugin}\n\t */\n\n\n\t function add(opts) {\n\t plugins[opts.by] = opts;\n\t }\n\t /**\n\t * # Splitting.split\n\t * Split an element's textContent into individual elements\n\t * @param el {Node} Element to split\n\t * @param key {string}\n\t * @param splitOn {string}\n\t * @param includeSpace {boolean}\n\t * @returns {HTMLElement[]}\n\t */\n\n\n\t function splitText(el, key, splitOn, includePrevious, preserveWhitespace) {\n\t // Combine any strange text nodes or empty whitespace.\n\t el.normalize(); // Use fragment to prevent unnecessary DOM thrashing.\n\n\t var elements = [];\n\t var F = document.createDocumentFragment();\n\n\t if (includePrevious) {\n\t elements.push(el.previousSibling);\n\t }\n\n\t var allElements = [];\n\t $(el.childNodes).some(function (next) {\n\t if (next.tagName && !next.hasChildNodes()) {\n\t // keep elements without child nodes (no text and no children)\n\t allElements.push(next);\n\t return;\n\t } // Recursively run through child nodes\n\n\n\t if (next.childNodes && next.childNodes.length) {\n\t allElements.push(next);\n\t elements.push.apply(elements, splitText(next, key, splitOn, includePrevious, preserveWhitespace));\n\t return;\n\t } // Get the text to split, trimming out the whitespace\n\n\t /** @type {string} */\n\n\n\t var wholeText = next.wholeText || '';\n\t var contents = wholeText.trim(); // If there's no text left after trimming whitespace, continue the loop\n\n\t if (contents.length) {\n\t // insert leading space if there was one\n\t if (wholeText[0] === ' ') {\n\t allElements.push(createText(' '));\n\t } // Concatenate the split text children back into the full array\n\n\n\t each(contents.split(splitOn), function (splitText, i) {\n\t if (i && preserveWhitespace) {\n\t allElements.push(createElement(F, \"whitespace\", \" \", preserveWhitespace));\n\t }\n\n\t var splitEl = createElement(F, key, splitText);\n\t elements.push(splitEl);\n\t allElements.push(splitEl);\n\t }); // insert trailing space if there was one\n\n\t if (wholeText[wholeText.length - 1] === ' ') {\n\t allElements.push(createText(' '));\n\t }\n\t }\n\t });\n\t each(allElements, function (el) {\n\t appendChild(F, el);\n\t }); // Clear out the existing element\n\n\t el.innerHTML = \"\";\n\t appendChild(el, F);\n\t return elements;\n\t }\n\t /** an empty value */\n\n\n\t var _ = 0;\n\n\t function copy(dest, src) {\n\t for (var k in src) {\n\t dest[k] = src[k];\n\t }\n\n\t return dest;\n\t }\n\n\t var WORDS = 'words';\n\t var wordPlugin = createPlugin(\n\t /*by: */\n\t WORDS,\n\t /*depends: */\n\t _,\n\t /*key: */\n\t 'word',\n\t /*split: */\n\t function (el) {\n\t return splitText(el, 'word', /\\s+/, 0, 1);\n\t });\n\t var CHARS = \"chars\";\n\t var charPlugin = createPlugin(\n\t /*by: */\n\t CHARS,\n\t /*depends: */\n\t [WORDS],\n\t /*key: */\n\t \"char\",\n\t /*split: */\n\t function (el, options, ctx) {\n\t var results = [];\n\t each(ctx[WORDS], function (word, i) {\n\t results.push.apply(results, splitText(word, \"char\", \"\", options.whitespace && i));\n\t });\n\t return results;\n\t });\n\t /**\n\t * # Splitting\n\t * \n\t * @param opts {import('./types').ISplittingOptions} \n\t */\n\n\t function Splitting(opts) {\n\t opts = opts || {};\n\t var key = opts.key;\n\t return $(opts.target || '[data-splitting]').map(function (el) {\n\t var ctx = el['🍌'];\n\n\t if (!opts.force && ctx) {\n\t return ctx;\n\t }\n\n\t ctx = el['🍌'] = {\n\t el: el\n\t };\n\t var items = resolve(opts.by || getData(el, 'splitting') || CHARS);\n\t var opts2 = copy({}, opts);\n\t each(items, function (plugin) {\n\t if (plugin.split) {\n\t var pluginBy = plugin.by;\n\t var key2 = (key ? '-' + key : '') + plugin.key;\n\t var results = plugin.split(el, opts2, ctx);\n\t key2 && index(el, key2, results);\n\t ctx[pluginBy] = results;\n\t el.classList.add(pluginBy);\n\t }\n\t });\n\t el.classList.add('splitting');\n\t return ctx;\n\t });\n\t }\n\t /**\n\t * # Splitting.html\n\t * \n\t * @param opts {import('./types').ISplittingOptions}\n\t */\n\n\n\t function html(opts) {\n\t opts = opts || {};\n\t var parent = opts.target = createElement();\n\t parent.innerHTML = opts.content;\n\t Splitting(opts);\n\t return parent.outerHTML;\n\t }\n\n\t Splitting.html = html;\n\t Splitting.add = add;\n\n\t function detectGrid(el, options, side) {\n\t var items = $(options.matching || el.children, el);\n\t var c = {};\n\t each(items, function (w) {\n\t var val = Math.round(w[side]);\n\t (c[val] || (c[val] = [])).push(w);\n\t });\n\t return Object.keys(c).map(Number).sort(byNumber).map(selectFrom(c));\n\t }\n\n\t function byNumber(a, b) {\n\t return a - b;\n\t }\n\n\t var linePlugin = createPlugin(\n\t /*by: */\n\t 'lines',\n\t /*depends: */\n\t [WORDS],\n\t /*key: */\n\t 'line',\n\t /*split: */\n\t function (el, options, ctx) {\n\t return detectGrid(el, {\n\t matching: ctx[WORDS]\n\t }, 'offsetTop');\n\t });\n\t var itemPlugin = createPlugin(\n\t /*by: */\n\t 'items',\n\t /*depends: */\n\t _,\n\t /*key: */\n\t 'item',\n\t /*split: */\n\t function (el, options) {\n\t return $(options.matching || el.children, el);\n\t });\n\t var rowPlugin = createPlugin(\n\t /*by: */\n\t 'rows',\n\t /*depends: */\n\t _,\n\t /*key: */\n\t 'row',\n\t /*split: */\n\t function (el, options) {\n\t return detectGrid(el, options, \"offsetTop\");\n\t });\n\t var columnPlugin = createPlugin(\n\t /*by: */\n\t 'cols',\n\t /*depends: */\n\t _,\n\t /*key: */\n\t \"col\",\n\t /*split: */\n\t function (el, options) {\n\t return detectGrid(el, options, \"offsetLeft\");\n\t });\n\t var gridPlugin = createPlugin(\n\t /*by: */\n\t 'grid',\n\t /*depends: */\n\t ['rows', 'cols']);\n\t var LAYOUT = \"layout\";\n\t var layoutPlugin = createPlugin(\n\t /*by: */\n\t LAYOUT,\n\t /*depends: */\n\t _,\n\t /*key: */\n\t _,\n\t /*split: */\n\t function (el, opts) {\n\t // detect and set options\n\t var rows = opts.rows = +(opts.rows || getData(el, 'rows') || 1);\n\t var columns = opts.columns = +(opts.columns || getData(el, 'columns') || 1); // Seek out the first if the value is true \n\n\t opts.image = opts.image || getData(el, 'image') || el.currentSrc || el.src;\n\n\t if (opts.image) {\n\t var img = $(\"img\", el)[0];\n\t opts.image = img && (img.currentSrc || img.src);\n\t } // add optional image to background\n\n\n\t if (opts.image) {\n\t setProperty(el, \"background-image\", \"url(\" + opts.image + \")\");\n\t }\n\n\t var totalCells = rows * columns;\n\t var elements = [];\n\t var container = createElement(_, \"cell-grid\");\n\n\t while (totalCells--) {\n\t // Create a span\n\t var cell = createElement(container, \"cell\");\n\t createElement(cell, \"cell-inner\");\n\t elements.push(cell);\n\t } // Append elements back into the parent\n\n\n\t appendChild(el, container);\n\t return elements;\n\t });\n\t var cellRowPlugin = createPlugin(\n\t /*by: */\n\t \"cellRows\",\n\t /*depends: */\n\t [LAYOUT],\n\t /*key: */\n\t \"row\",\n\t /*split: */\n\t function (el, opts, ctx) {\n\t var rowCount = opts.rows;\n\t var result = Array2D(rowCount);\n\t each(ctx[LAYOUT], function (cell, i, src) {\n\t result[Math.floor(i / (src.length / rowCount))].push(cell);\n\t });\n\t return result;\n\t });\n\t var cellColumnPlugin = createPlugin(\n\t /*by: */\n\t \"cellColumns\",\n\t /*depends: */\n\t [LAYOUT],\n\t /*key: */\n\t \"col\",\n\t /*split: */\n\t function (el, opts, ctx) {\n\t var columnCount = opts.columns;\n\t var result = Array2D(columnCount);\n\t each(ctx[LAYOUT], function (cell, i) {\n\t result[i % columnCount].push(cell);\n\t });\n\t return result;\n\t });\n\t var cellPlugin = createPlugin(\n\t /*by: */\n\t \"cells\",\n\t /*depends: */\n\t ['cellRows', 'cellColumns'],\n\t /*key: */\n\t \"cell\",\n\t /*split: */\n\t function (el, opt, ctx) {\n\t // re-index the layout as the cells\n\t return ctx[LAYOUT];\n\t }); // install plugins\n\t // word/char plugins\n\n\t add(wordPlugin);\n\t add(charPlugin);\n\t add(linePlugin); // grid plugins\n\n\t add(itemPlugin);\n\t add(rowPlugin);\n\t add(columnPlugin);\n\t add(gridPlugin); // cell-layout plugins\n\n\t add(layoutPlugin);\n\t add(cellRowPlugin);\n\t add(cellColumnPlugin);\n\t add(cellPlugin);\n\t return Splitting;\n\t});\n\t});\n\n\tvar aos = createCommonjsModule(function (module, exports) {\n\t!function (e, t) {\n\t module.exports = t() ;\n\t}(commonjsGlobal, function () {\n\t return function (e) {\n\t function t(o) {\n\t if (n[o]) return n[o].exports;\n\t var i = n[o] = {\n\t exports: {},\n\t id: o,\n\t loaded: !1\n\t };\n\t return e[o].call(i.exports, i, i.exports, t), i.loaded = !0, i.exports;\n\t }\n\n\t var n = {};\n\t return t.m = e, t.c = n, t.p = \"dist/\", t(0);\n\t }([function (e, t, n) {\n\n\t function o(e) {\n\t return e && e.__esModule ? e : {\n\t default: e\n\t };\n\t }\n\n\t var i = Object.assign || function (e) {\n\t for (var t = 1; t < arguments.length; t++) {\n\t var n = arguments[t];\n\n\t for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]);\n\t }\n\n\t return e;\n\t },\n\t r = n(1),\n\t a = (o(r), n(6)),\n\t u = o(a),\n\t c = n(7),\n\t s = o(c),\n\t f = n(8),\n\t d = o(f),\n\t l = n(9),\n\t p = o(l),\n\t m = n(10),\n\t b = o(m),\n\t v = n(11),\n\t y = o(v),\n\t g = n(14),\n\t h = o(g),\n\t w = [],\n\t k = !1,\n\t x = {\n\t offset: 120,\n\t delay: 0,\n\t easing: \"ease\",\n\t duration: 400,\n\t disable: !1,\n\t once: !1,\n\t startEvent: \"DOMContentLoaded\",\n\t throttleDelay: 99,\n\t debounceDelay: 50,\n\t disableMutationObserver: !1\n\t },\n\t j = function () {\n\t var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];\n\t if (e && (k = !0), k) return w = (0, y.default)(w, x), (0, b.default)(w, x.once), w;\n\t },\n\t O = function () {\n\t w = (0, h.default)(), j();\n\t },\n\t M = function () {\n\t w.forEach(function (e, t) {\n\t e.node.removeAttribute(\"data-aos\"), e.node.removeAttribute(\"data-aos-easing\"), e.node.removeAttribute(\"data-aos-duration\"), e.node.removeAttribute(\"data-aos-delay\");\n\t });\n\t },\n\t S = function (e) {\n\t return e === !0 || \"mobile\" === e && p.default.mobile() || \"phone\" === e && p.default.phone() || \"tablet\" === e && p.default.tablet() || \"function\" == typeof e && e() === !0;\n\t },\n\t _ = function (e) {\n\t x = i(x, e), w = (0, h.default)();\n\t var t = document.all && !window.atob;\n\t return S(x.disable) || t ? M() : (x.disableMutationObserver || d.default.isSupported() || (console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '), x.disableMutationObserver = !0), document.querySelector(\"body\").setAttribute(\"data-aos-easing\", x.easing), document.querySelector(\"body\").setAttribute(\"data-aos-duration\", x.duration), document.querySelector(\"body\").setAttribute(\"data-aos-delay\", x.delay), \"DOMContentLoaded\" === x.startEvent && [\"complete\", \"interactive\"].indexOf(document.readyState) > -1 ? j(!0) : \"load\" === x.startEvent ? window.addEventListener(x.startEvent, function () {\n\t j(!0);\n\t }) : document.addEventListener(x.startEvent, function () {\n\t j(!0);\n\t }), window.addEventListener(\"resize\", (0, s.default)(j, x.debounceDelay, !0)), window.addEventListener(\"orientationchange\", (0, s.default)(j, x.debounceDelay, !0)), window.addEventListener(\"scroll\", (0, u.default)(function () {\n\t (0, b.default)(w, x.once);\n\t }, x.throttleDelay)), x.disableMutationObserver || d.default.ready(\"[data-aos]\", O), w);\n\t };\n\n\t e.exports = {\n\t init: _,\n\t refresh: j,\n\t refreshHard: O\n\t };\n\t }, function (e, t) {},,,,, function (e, t) {\n\t (function (t) {\n\n\t function n(e, t, n) {\n\t function o(t) {\n\t var n = b,\n\t o = v;\n\t return b = v = void 0, k = t, g = e.apply(o, n);\n\t }\n\n\t function r(e) {\n\t return k = e, h = setTimeout(f, t), M ? o(e) : g;\n\t }\n\n\t function a(e) {\n\t var n = e - w,\n\t o = e - k,\n\t i = t - n;\n\t return S ? j(i, y - o) : i;\n\t }\n\n\t function c(e) {\n\t var n = e - w,\n\t o = e - k;\n\t return void 0 === w || n >= t || n < 0 || S && o >= y;\n\t }\n\n\t function f() {\n\t var e = O();\n\t return c(e) ? d(e) : void (h = setTimeout(f, a(e)));\n\t }\n\n\t function d(e) {\n\t return h = void 0, _ && b ? o(e) : (b = v = void 0, g);\n\t }\n\n\t function l() {\n\t void 0 !== h && clearTimeout(h), k = 0, b = w = v = h = void 0;\n\t }\n\n\t function p() {\n\t return void 0 === h ? g : d(O());\n\t }\n\n\t function m() {\n\t var e = O(),\n\t n = c(e);\n\n\t if (b = arguments, v = this, w = e, n) {\n\t if (void 0 === h) return r(w);\n\t if (S) return h = setTimeout(f, t), o(w);\n\t }\n\n\t return void 0 === h && (h = setTimeout(f, t)), g;\n\t }\n\n\t var b,\n\t v,\n\t y,\n\t g,\n\t h,\n\t w,\n\t k = 0,\n\t M = !1,\n\t S = !1,\n\t _ = !0;\n\n\t if (\"function\" != typeof e) throw new TypeError(s);\n\t return t = u(t) || 0, i(n) && (M = !!n.leading, S = \"maxWait\" in n, y = S ? x(u(n.maxWait) || 0, t) : y, _ = \"trailing\" in n ? !!n.trailing : _), m.cancel = l, m.flush = p, m;\n\t }\n\n\t function o(e, t, o) {\n\t var r = !0,\n\t a = !0;\n\t if (\"function\" != typeof e) throw new TypeError(s);\n\t return i(o) && (r = \"leading\" in o ? !!o.leading : r, a = \"trailing\" in o ? !!o.trailing : a), n(e, t, {\n\t leading: r,\n\t maxWait: t,\n\t trailing: a\n\t });\n\t }\n\n\t function i(e) {\n\t var t = \"undefined\" == typeof e ? \"undefined\" : c(e);\n\t return !!e && (\"object\" == t || \"function\" == t);\n\t }\n\n\t function r(e) {\n\t return !!e && \"object\" == (\"undefined\" == typeof e ? \"undefined\" : c(e));\n\t }\n\n\t function a(e) {\n\t return \"symbol\" == (\"undefined\" == typeof e ? \"undefined\" : c(e)) || r(e) && k.call(e) == d;\n\t }\n\n\t function u(e) {\n\t if (\"number\" == typeof e) return e;\n\t if (a(e)) return f;\n\n\t if (i(e)) {\n\t var t = \"function\" == typeof e.valueOf ? e.valueOf() : e;\n\t e = i(t) ? t + \"\" : t;\n\t }\n\n\t if (\"string\" != typeof e) return 0 === e ? e : +e;\n\t e = e.replace(l, \"\");\n\t var n = m.test(e);\n\t return n || b.test(e) ? v(e.slice(2), n ? 2 : 8) : p.test(e) ? f : +e;\n\t }\n\n\t var c = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n\t return typeof e;\n\t } : function (e) {\n\t return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n\t },\n\t s = \"Expected a function\",\n\t f = NaN,\n\t d = \"[object Symbol]\",\n\t l = /^\\s+|\\s+$/g,\n\t p = /^[-+]0x[0-9a-f]+$/i,\n\t m = /^0b[01]+$/i,\n\t b = /^0o[0-7]+$/i,\n\t v = parseInt,\n\t y = \"object\" == (\"undefined\" == typeof t ? \"undefined\" : c(t)) && t && t.Object === Object && t,\n\t g = \"object\" == (\"undefined\" == typeof self ? \"undefined\" : c(self)) && self && self.Object === Object && self,\n\t h = y || g || Function(\"return this\")(),\n\t w = Object.prototype,\n\t k = w.toString,\n\t x = Math.max,\n\t j = Math.min,\n\t O = function () {\n\t return h.Date.now();\n\t };\n\n\t e.exports = o;\n\t }).call(t, function () {\n\t return this;\n\t }());\n\t }, function (e, t) {\n\t (function (t) {\n\n\t function n(e, t, n) {\n\t function i(t) {\n\t var n = b,\n\t o = v;\n\t return b = v = void 0, O = t, g = e.apply(o, n);\n\t }\n\n\t function r(e) {\n\t return O = e, h = setTimeout(f, t), M ? i(e) : g;\n\t }\n\n\t function u(e) {\n\t var n = e - w,\n\t o = e - O,\n\t i = t - n;\n\t return S ? x(i, y - o) : i;\n\t }\n\n\t function s(e) {\n\t var n = e - w,\n\t o = e - O;\n\t return void 0 === w || n >= t || n < 0 || S && o >= y;\n\t }\n\n\t function f() {\n\t var e = j();\n\t return s(e) ? d(e) : void (h = setTimeout(f, u(e)));\n\t }\n\n\t function d(e) {\n\t return h = void 0, _ && b ? i(e) : (b = v = void 0, g);\n\t }\n\n\t function l() {\n\t void 0 !== h && clearTimeout(h), O = 0, b = w = v = h = void 0;\n\t }\n\n\t function p() {\n\t return void 0 === h ? g : d(j());\n\t }\n\n\t function m() {\n\t var e = j(),\n\t n = s(e);\n\n\t if (b = arguments, v = this, w = e, n) {\n\t if (void 0 === h) return r(w);\n\t if (S) return h = setTimeout(f, t), i(w);\n\t }\n\n\t return void 0 === h && (h = setTimeout(f, t)), g;\n\t }\n\n\t var b,\n\t v,\n\t y,\n\t g,\n\t h,\n\t w,\n\t O = 0,\n\t M = !1,\n\t S = !1,\n\t _ = !0;\n\n\t if (\"function\" != typeof e) throw new TypeError(c);\n\t return t = a(t) || 0, o(n) && (M = !!n.leading, S = \"maxWait\" in n, y = S ? k(a(n.maxWait) || 0, t) : y, _ = \"trailing\" in n ? !!n.trailing : _), m.cancel = l, m.flush = p, m;\n\t }\n\n\t function o(e) {\n\t var t = \"undefined\" == typeof e ? \"undefined\" : u(e);\n\t return !!e && (\"object\" == t || \"function\" == t);\n\t }\n\n\t function i(e) {\n\t return !!e && \"object\" == (\"undefined\" == typeof e ? \"undefined\" : u(e));\n\t }\n\n\t function r(e) {\n\t return \"symbol\" == (\"undefined\" == typeof e ? \"undefined\" : u(e)) || i(e) && w.call(e) == f;\n\t }\n\n\t function a(e) {\n\t if (\"number\" == typeof e) return e;\n\t if (r(e)) return s;\n\n\t if (o(e)) {\n\t var t = \"function\" == typeof e.valueOf ? e.valueOf() : e;\n\t e = o(t) ? t + \"\" : t;\n\t }\n\n\t if (\"string\" != typeof e) return 0 === e ? e : +e;\n\t e = e.replace(d, \"\");\n\t var n = p.test(e);\n\t return n || m.test(e) ? b(e.slice(2), n ? 2 : 8) : l.test(e) ? s : +e;\n\t }\n\n\t var u = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n\t return typeof e;\n\t } : function (e) {\n\t return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n\t },\n\t c = \"Expected a function\",\n\t s = NaN,\n\t f = \"[object Symbol]\",\n\t d = /^\\s+|\\s+$/g,\n\t l = /^[-+]0x[0-9a-f]+$/i,\n\t p = /^0b[01]+$/i,\n\t m = /^0o[0-7]+$/i,\n\t b = parseInt,\n\t v = \"object\" == (\"undefined\" == typeof t ? \"undefined\" : u(t)) && t && t.Object === Object && t,\n\t y = \"object\" == (\"undefined\" == typeof self ? \"undefined\" : u(self)) && self && self.Object === Object && self,\n\t g = v || y || Function(\"return this\")(),\n\t h = Object.prototype,\n\t w = h.toString,\n\t k = Math.max,\n\t x = Math.min,\n\t j = function () {\n\t return g.Date.now();\n\t };\n\n\t e.exports = n;\n\t }).call(t, function () {\n\t return this;\n\t }());\n\t }, function (e, t) {\n\n\t function n(e) {\n\t var t = void 0,\n\t o = void 0,\n\t i = void 0;\n\n\t for (t = 0; t < e.length; t += 1) {\n\t if (o = e[t], o.dataset && o.dataset.aos) return !0;\n\t if (i = o.children && n(o.children)) return !0;\n\t }\n\n\t return !1;\n\t }\n\n\t function o() {\n\t return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\t }\n\n\t function i() {\n\t return !!o();\n\t }\n\n\t function r(e, t) {\n\t var n = window.document,\n\t i = o(),\n\t r = new i(a);\n\t u = t, r.observe(n.documentElement, {\n\t childList: !0,\n\t subtree: !0,\n\t removedNodes: !0\n\t });\n\t }\n\n\t function a(e) {\n\t e && e.forEach(function (e) {\n\t var t = Array.prototype.slice.call(e.addedNodes),\n\t o = Array.prototype.slice.call(e.removedNodes),\n\t i = t.concat(o);\n\t if (n(i)) return u();\n\t });\n\t }\n\n\t Object.defineProperty(t, \"__esModule\", {\n\t value: !0\n\t });\n\n\t var u = function () {};\n\n\t t.default = {\n\t isSupported: i,\n\t ready: r\n\t };\n\t }, function (e, t) {\n\n\t function n(e, t) {\n\t if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n\t }\n\n\t function o() {\n\t return navigator.userAgent || navigator.vendor || window.opera || \"\";\n\t }\n\n\t Object.defineProperty(t, \"__esModule\", {\n\t value: !0\n\t });\n\n\t var i = function () {\n\t function e(e, t) {\n\t for (var n = 0; n < t.length; n++) {\n\t var o = t[n];\n\t o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);\n\t }\n\t }\n\n\t return function (t, n, o) {\n\t return n && e(t.prototype, n), o && e(t, o), t;\n\t };\n\t }(),\n\t r = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,\n\t a = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,\n\t u = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i,\n\t c = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,\n\t s = function () {\n\t function e() {\n\t n(this, e);\n\t }\n\n\t return i(e, [{\n\t key: \"phone\",\n\t value: function () {\n\t var e = o();\n\t return !(!r.test(e) && !a.test(e.substr(0, 4)));\n\t }\n\t }, {\n\t key: \"mobile\",\n\t value: function () {\n\t var e = o();\n\t return !(!u.test(e) && !c.test(e.substr(0, 4)));\n\t }\n\t }, {\n\t key: \"tablet\",\n\t value: function () {\n\t return this.mobile() && !this.phone();\n\t }\n\t }]), e;\n\t }();\n\n\t t.default = new s();\n\t }, function (e, t) {\n\n\t Object.defineProperty(t, \"__esModule\", {\n\t value: !0\n\t });\n\n\t var n = function (e, t, n) {\n\t var o = e.node.getAttribute(\"data-aos-once\");\n\t t > e.position ? e.node.classList.add(\"aos-animate\") : \"undefined\" != typeof o && (\"false\" === o || !n && \"true\" !== o) && e.node.classList.remove(\"aos-animate\");\n\t },\n\t o = function (e, t) {\n\t var o = window.pageYOffset,\n\t i = window.innerHeight;\n\t e.forEach(function (e, r) {\n\t n(e, i + o, t);\n\t });\n\t };\n\n\t t.default = o;\n\t }, function (e, t, n) {\n\n\t function o(e) {\n\t return e && e.__esModule ? e : {\n\t default: e\n\t };\n\t }\n\n\t Object.defineProperty(t, \"__esModule\", {\n\t value: !0\n\t });\n\n\t var i = n(12),\n\t r = o(i),\n\t a = function (e, t) {\n\t return e.forEach(function (e, n) {\n\t e.node.classList.add(\"aos-init\"), e.position = (0, r.default)(e.node, t.offset);\n\t }), e;\n\t };\n\n\t t.default = a;\n\t }, function (e, t, n) {\n\n\t function o(e) {\n\t return e && e.__esModule ? e : {\n\t default: e\n\t };\n\t }\n\n\t Object.defineProperty(t, \"__esModule\", {\n\t value: !0\n\t });\n\n\t var i = n(13),\n\t r = o(i),\n\t a = function (e, t) {\n\t var n = 0,\n\t o = 0,\n\t i = window.innerHeight,\n\t a = {\n\t offset: e.getAttribute(\"data-aos-offset\"),\n\t anchor: e.getAttribute(\"data-aos-anchor\"),\n\t anchorPlacement: e.getAttribute(\"data-aos-anchor-placement\")\n\t };\n\n\t switch (a.offset && !isNaN(a.offset) && (o = parseInt(a.offset)), a.anchor && document.querySelectorAll(a.anchor) && (e = document.querySelectorAll(a.anchor)[0]), n = (0, r.default)(e).top, a.anchorPlacement) {\n\t case \"top-bottom\":\n\t break;\n\n\t case \"center-bottom\":\n\t n += e.offsetHeight / 2;\n\t break;\n\n\t case \"bottom-bottom\":\n\t n += e.offsetHeight;\n\t break;\n\n\t case \"top-center\":\n\t n += i / 2;\n\t break;\n\n\t case \"bottom-center\":\n\t n += i / 2 + e.offsetHeight;\n\t break;\n\n\t case \"center-center\":\n\t n += i / 2 + e.offsetHeight / 2;\n\t break;\n\n\t case \"top-top\":\n\t n += i;\n\t break;\n\n\t case \"bottom-top\":\n\t n += e.offsetHeight + i;\n\t break;\n\n\t case \"center-top\":\n\t n += e.offsetHeight / 2 + i;\n\t }\n\n\t return a.anchorPlacement || a.offset || isNaN(t) || (o = t), n + o;\n\t };\n\n\t t.default = a;\n\t }, function (e, t) {\n\n\t Object.defineProperty(t, \"__esModule\", {\n\t value: !0\n\t });\n\n\t var n = function (e) {\n\t for (var t = 0, n = 0; e && !isNaN(e.offsetLeft) && !isNaN(e.offsetTop);) t += e.offsetLeft - (\"BODY\" != e.tagName ? e.scrollLeft : 0), n += e.offsetTop - (\"BODY\" != e.tagName ? e.scrollTop : 0), e = e.offsetParent;\n\n\t return {\n\t top: n,\n\t left: t\n\t };\n\t };\n\n\t t.default = n;\n\t }, function (e, t) {\n\n\t Object.defineProperty(t, \"__esModule\", {\n\t value: !0\n\t });\n\n\t var n = function (e) {\n\t return e = e || document.querySelectorAll(\"[data-aos]\"), Array.prototype.map.call(e, function (e) {\n\t return {\n\t node: e\n\t };\n\t });\n\t };\n\n\t t.default = n;\n\t }]);\n\t});\n\t});\n\n\tvar AOS = unwrapExports(aos);\n\tvar aos_1 = aos.AOS;\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 ul_Child = nav_mobile.find(\".has-child\");\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\"); // *** Component *** //\n\t// Search\n\n\tvar btn_BackToTop = $(\"#back-to-top\");\n\tconst headerFunction = {\n\t onScroll: () => {\n\t $(window).on(\"scroll\", function () {\n\t if ($(this).scrollTop() > height_header) {\n\t header.addClass(\"header-scroll\");\n\t $(\".search-overlay\").addClass(\"header-scroll\");\n\t } else {\n\t header.removeClass(\"header-scroll\");\n\t $(\".search-overlay\").removeClass(\"header-scroll\");\n\t }\n\n\t height_header = header.outerHeight();\n\t $(\"html\").css({\n\t \"--header-height\": height_header + \"px\"\n\t });\n\n\t if ($(this).scrollTop() == 0) {\n\t setTimeout(() => {\n\t height_header = header.outerHeight();\n\t $(\"html\").css({\n\t \"--header-height\": height_header + \"px\"\n\t });\n\t }, 300);\n\t }\n\t });\n\n\t if ($(window).scrollTop() > height_header) {\n\t setTimeout(() => {\n\t header.addClass(\"header-scroll\");\n\t setTimeout(() => {\n\t height_header = header.outerHeight();\n\t $(\"html\").css({\n\t \"--header-height\": header.outerHeight() + \"px\"\n\t });\n\t }, 500);\n\t }, 300);\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 },\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 });\n\t overlay.on(\"click\", function () {\n\t headerFunction.removeActiveCpn();\n\t });\n\t close_NB.on(\"click\", function () {\n\t headerFunction.removeActiveCpn();\n\t });\n\t },\n\t searchActive: () => {\n\t //\n\t $(\".search-icon\").on(\"click\", function () {\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\");\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 }\n\t });\n\t $(\".close-search\").on(\"click\", function () {\n\t $(\".search-overlay\").removeClass(\"active\");\n\t });\n\t $(\".search-overlay input\").keyup(function () {\n\t $(\".search-overlay .searchbox\").addClass(\"fixed-title\");\n\n\t if ($(this).val() == \"\") {\n\t $(\".search-overlay .searchbox\").removeClass(\"fixed-title\");\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 button\").trigger(\"click\"), console.log(\"click\");\n\t });\n\t },\n\t userAuthorize: () => {\n\t $(\".user-authorize .icon-size\").on(\"click\", function () {\n\t $(\".user-authorize\").toggleClass(\"active\");\n\t });\n\t $(document).on(\"click\", function (event) {\n\t var $trigger = $(\"header\");\n\t var $trigger_2 = $(\".user-authorize\");\n\n\t if ($trigger !== event.target && !$trigger.has(event.target).length && $trigger_2 !== event.target && !$trigger_2.has(event.target).length) {\n\t $(\".user-authorize\").removeClass(\"active\");\n\t }\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 nav_mobile.removeClass(\"active\");\n\t header.removeClass(\"blur-content\");\n\t burger.removeClass(\"active\");\n\t overlay.removeClass(\"active\");\n\t body.removeClass(\"ovh\");\n\t header.removeClass(\"navMobileOpen\");\n\t }\n\t });\n\t },\n\t menuMobileNav: () => {\n\t $(document).on(\"click\", \".nav-mobile nav li.drop-down >.title >em\", function () {\n\t $(this).closest(\"li\").siblings().removeClass(\"active\");\n\t $(this).closest(\"li\").toggleClass(\"active\");\n\t $(this).closest(\"li\").siblings().find(\">ul\").slideUp();\n\t $(this).closest(\"li\").find(\">ul\").slideToggle();\n\t });\n\t },\n\t menuDelayItem: () => {\n\t header.find(\".middle li\").each(function (e) {\n\t e++;\n\t $(this).css({\n\t \"transition-delay\": e * 0.15 + \"s\"\n\t });\n\t });\n\t },\n\t init: () => {\n\t headerFunction.menuDelayItem();\n\t headerFunction.onScroll();\n\t headerFunction.navMobileSlide();\n\t headerFunction.searchActive();\n\t headerFunction.userAuthorize();\n\t headerFunction.menuMobileNav();\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 accordion() {\n\t var item = $(\".accordion-item\");\n\t var title = $(\".accordion-title\");\n\t var content = $(\".accordion-content\");\n\t title.on(\"click\", function () {\n\t $(this).toggleClass(\".active\");\n\t $(this).closest(item).toggleClass(\"active\");\n\t $(this).closest(item).find(content).slideToggle();\n\t }); // Onload\n\n\t item.eq(0).addClass(\"active\");\n\t item.eq(0).find(content).slideDown();\n\t}\n\n\tfunction fancyboxCustom() {\n\t vt.bind(\"[data-fancybox]\", {\n\t dragToClose: false,\n\t mainClass: \"custom-box-fancybox\",\n\t template: {\n\t closeButton: ''\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 }); // Fancybox.bind(\"[custom-box-member]\", {\n\t // \tdragToClose: false,\n\t // \tmainClass: \"custom-box-member\",\n\t // \ttemplate: {\n\t // \t\tcloseButton: '',\n\t // \t},\n\t // \ton: {\n\t // \t\tdone: function () {\n\t // \t\t\tconsole.log(\"open\");\n\t // \t\t},\n\t // \t\tclosing: function () {\n\t // \t\t\tconsole.log(\"close\");\n\t // \t\t},\n\t // \t},\n\t // });\n\t // Fancybox.bind(\"[custom-contact-popup]\", {\n\t // \tdragToClose: false,\n\t // \tmainClass: \"custom-contact-popup\",\n\t // \ttemplate: {\n\t // \t\tcloseButton: '',\n\t // \t},\n\t // \ton: {\n\t // \t\tdone: function () {\n\t // \t\t\tconsole.log(\"open\");\n\t // \t\t},\n\t // \t\tclosing: function () {\n\t // \t\t\tconsole.log(\"close\");\n\t // \t\t},\n\t // \t},\n\t // });\n\t // Fancybox.defaults.parentEl = document.getElementById(\"aspnetForm\");\n\t}\n\n\tfunction screenImage() {\n\t var touchItem = $(\"[has-touch-screen]\");\n\t var screenLeft = $(this).attr(\"screen-left\");\n\t var screenRight = $(this).attr(\"screen-right\");\n\t var screen = ($(window).width() - $(\"main .container\").width()) * 0.5;\n\n\t if (ww >= 1280) {\n\t setTimeout(() => {\n\t touchItem.each(function () {\n\t if ($(this).hasAttr(\"screen-left\")) {\n\t $(this).css(\"margin-left\", -screen);\n\t } else {\n\t $(this).css(\"margin-right\", -screen);\n\t }\n\n\t $(this).addClass(\"screen-initial\");\n\t });\n\t }, 150);\n\t } else {\n\t setTimeout(() => {\n\t touchItem.each(function () {\n\t if ($(this).hasAttr(\"screen-left\")) {\n\t $(this).css(\"margin-left\", \"unset\");\n\t } else {\n\t $(this).css(\"margin-right\", \"unset\");\n\t }\n\n\t $(this).removeClass(\"screen-initial\");\n\t });\n\t }, 150);\n\t }\n\t}\n\n\tfunction useVariables() {\n\t return {\n\t counterUpNumber,\n\t setDelayCharSplitting\n\t };\n\t}\n\n\tfunction toggleFaqsAskModule() {\n\t var item = $(\".faqs-module .item .top\");\n\t item.on(\"click\", function () {\n\t $(this).parent().toggleClass(\"active\");\n\n\t if ($(this).closest(\".faq-ask-module\").hasAttr(\"faq-toggle-class\")) ; else {\n\t $(this).siblings().slideToggle();\n\t }\n\t });\n\t}\n\n\tconst styleBreadcrumb = () => {\n\t if (pagesBanner.length == 1) {\n\t $(\".global-breadcrumb\").appendTo(pagesBanner.find(\".breadcrumb-here\")); //\n\n\t pagesBanner.find(\".title\").text($(\".global-breadcrumb li\").eq(1).text());\n\t } // else {\n\t // \t$(\".global-breadcrumb\").wrap(\"
\");\n\t // \tww >= 1280 && $(\".homepage\").length != 1\n\t // \t\t? $(\"main\").css({ \"margin-top\": height_header })\n\t // \t\t: null;\n\t // \t$(\".homepage\").length != 1 ? header.addClass(\"fixed-bgWhite\") : null;\n\t // }\n\n\t};\n\n\tfunction ccPaginationMapping() {\n\t $(\".modulepager .pagination\").find(\"a.NextPage, a.LastPage, a.BackPage, a.FirstPage\").parent().hide();\n\n\t if ($(\".newslist\").length) {\n\t $(\".pages.newspager\").appendTo($(\".newslist .col-left\"));\n\t }\n\n\t if ($(\".recruit-list-3\").length) {\n\t $(\".pages.productpager\").appendTo($(\".recruit-list-3 .container\"));\n\t }\n\t}\n\n\tfunction expandItem() {\n\t // Filter Load\n\t var hasLoadBtn = $(\"[has-expand-btn]\");\n\t hasLoadBtn.each(function () {\n\t var $this = $(this);\n\t var expandBtn = $(this).find(\".expand-btn\");\n\t var list = $(this).find(\".expand-item\").length;\n\t var count;\n\t var countMobile = $(this).attr(\"item-count-mobile\");\n\t countMobile != undefined && countMobile != 0 && ww < 576 ? count = Number($(this).attr(\"item-count-mobile\")) : count = Number($(this).attr(\"item-count\"));\n\t var expand = Number($(this).attr(\"item-expand\"));\n\t var isFlex = false;\n\t $(this).hasAttr(\"expand-flex\") ? isFlex = true : isFlex = false; //=// Init\n\n\t function init(initValue, thisFunction) {\n\t isFlex ? thisFunction.find(\".expand-item\").slice(0, initValue).slideDown({\n\t complete: function () {\n\t $(this).css(\"display\", \"flex\");\n\t $(this).css(\"flex-direction\", \"column\");\n\t setTimeout(() => {\n\t $(this).addClass(\"done-animated\");\n\t }, 300);\n\t }\n\t }) : thisFunction.find(\".expand-item\").slice(0, initValue).slideDown({\n\t complete: function () {\n\t setTimeout(() => {\n\t $(this).addClass(\"done-animated\");\n\t }, 300);\n\t }\n\t });\n\n\t if (list == 0 || list <= initValue) {\n\t expandBtn.hide();\n\t }\n\t }\n\n\t init(count, $this); // Click\n\n\t function expandBtnInit(initCount, thisFunction) {\n\t count = initCount + expand <= list ? initCount + expand : list;\n\t isFlex ? thisFunction.closest(hasLoadBtn).find(\".expand-item\").slice(0, count).slideDown({\n\t complete: function () {\n\t $(this).css(\"display\", \"flex\");\n\t $(this).css(\"flex-direction\", \"column\");\n\t setTimeout(() => {\n\t $(this).addClass(\"done-animated\");\n\t }, 300);\n\t }\n\t }) : thisFunction.closest(hasLoadBtn).find(\".expand-item\").slice(0, count).slideDown({\n\t complete: function () {\n\t setTimeout(() => {\n\t $(this).addClass(\"done-animated\");\n\t }, 300);\n\t }\n\t }); // console.log(count);\n\n\t if (count == list) {\n\t thisFunction.slideUp();\n\t }\n\t }\n\n\t expandBtn.on(\"click\", function (e) {\n\t e.preventDefault();\n\t expandBtnInit(count, $(this));\n\t });\n\t });\n\t}\n\n\tconst templateIntroduce = {\n\t coverImagePage: () => {\n\t if ($(\".introduce__page\").length) {\n\t if ($(\".set-body-background\").length) $(\".global-breadcrumb\").insertBefore($(\".set-body-background .cover-image\"));\n\t }\n\n\t if ($(\".gocbep-detail__page\").length) {\n\t $(\".global-breadcrumb\").appendTo($(\".set-body-background\"));\n\t $(\".gocbepdetail-1\").appendTo($(\".set-body-background\"));\n\t $(\".gocbepdetail-2\").appendTo($(\".set-body-background\"));\n\t if ($(\".outside-background\").length) $(\".outside-background\").appendTo(mainSection);\n\t }\n\t },\n\t init: () => {\n\t templateIntroduce.coverImagePage();\n\t }\n\t};\n\n\tfunction setDelayCharSplitting() {\n\t splitting();\n\t}\n\n\tfunction activeCommonNav() {\n\t if ($(\".product-nav\").length) {\n\t $(\".product-nav ul\").scrollTo(\"li.active\", 0);\n\t }\n\t}\n\n\tfunction mappingJS() {\n\t var colMiddle = $(\".product-detail .col-middle\");\n\t var colLeft = $(\".product-detail .col-left\");\n\t var colRight = $(\".product-detail .col-right\");\n\t var arrowButton = $(\".product-detail .arrow-button\");\n\t var searchWrap = $(\"header .search\");\n\t colLeft.mapping({\n\t mobileWrapper: \".product-detail .after-desktop .box-right\",\n\t mobileMethod: \"prependTo\",\n\t desktopWrapper: \".product-detail .on-desktop .grid\",\n\t desktopMethod: \"prependTo\",\n\t breakpoint: 1279.98\n\t });\n\t colMiddle.mapping({\n\t mobileWrapper: \".product-detail .after-desktop .box-left\",\n\t mobileMethod: \"prependTo\",\n\t desktopWrapper: \".product-detail .on-desktop .col-left\",\n\t desktopMethod: \"insertAfter\",\n\t breakpoint: 1279.98\n\t });\n\t colRight.mapping({\n\t mobileWrapper: \".product-detail .after-desktop .box-right\",\n\t mobileMethod: \"appendTo\",\n\t desktopWrapper: \".product-detail .on-desktop .grid\",\n\t desktopMethod: \"appendTo\",\n\t breakpoint: 1279.98\n\t });\n\t arrowButton.mapping({\n\t mobileWrapper: \".product-detail .after-desktop .col-middle\",\n\t mobileMethod: \"appendTo\",\n\t desktopWrapper: \".product-detail .on-desktop .col-right\",\n\t desktopMethod: \"prependTo\",\n\t breakpoint: 1279.98\n\t });\n\t searchWrap.mapping({\n\t mobileWrapper: \".nav-clone\",\n\t mobileMethod: \"insertBefore\",\n\t desktopWrapper: \"header .language\",\n\t desktopMethod: \"insertBefore\",\n\t breakpoint: 1279.98\n\t });\n\t}\n\n\tfunction changeMap() {\n\t $(\".contact .item\").on(\"click\", function () {\n\t var map = $(this).attr(\"data-map\");\n\t $(this).siblings().removeClass(\"active\");\n\t $(this).addClass(\"active\");\n\t $(\".contact .map iframe\").attr(\"src\", map);\n\t });\n\t}\n\n\tfunction aosAnimation() {\n\t AOS.init({\n\t // disable: \"mobile\",\n\t duration: 1000,\n\t offset: 0,\n\t delay: 150 // once: true,\n\n\t });\n\t AOS.refresh();\n\t}\n\n\tfunction changeTextOnEN() {\n\t if ($(\"body\").is(\".en-us\")) {\n\t $(\".search-overlay input\").attr(\"placeholder\", \"Search...\");\n\t }\n\t}\n\n\t$(document).ready(function () {\n\t // ---***--- Global JS ---***---\n\t globalJS.init(); // ---***--- Header ---***---\n\n\t headerFunction.init(); // ---***--- Swiper Init ---***---\n\n\t swiperInit(); // ---***--- Body ---***---\n\n\t toggleFaqsAskModule();\n\t counterUpNumber();\n\t templateIntroduce.init(); // Template Page\n\t // ---***--- Fancybox ---***---\n\n\t fancyboxCustom(); // ---***--- Other ---***---\n\n\t styleBreadcrumb();\n\t ccPaginationMapping();\n\t expandItem();\n\t setDelayCharSplitting();\n\t activeCommonNav();\n\t accordion();\n\t mappingJS();\n\t changeMap();\n\t backToTop();\n\t changeTextOnEN();\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 screenImage();\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 aosAnimation();\n\t if ($(\"body.homepage\").length) header.addClass(\"init\");\n\t pagesBanner.addClass(\"initial\");\n\t height_header = header.outerHeight();\n\t $(\"html\").css({\n\t \"--header-height\": height_header + \"px\"\n\t }); // Load to section\n\n\t if (window.location.href.indexOf(\"#\") != -1) {\n\t onLoadToSection();\n\t }\n\t }\n\t};\n\n\twindow.onscroll = function () {\n\t if (document.body.scrollTop > $(window).height() || document.documentElement.scrollTop > $(window).height()) {\n\t $(\".side-nav-tool\").addClass(\"show\");\n\t } else {\n\t $(\".side-nav-tool\").removeClass(\"show\");\n\t }\n\t};\n\n\tfunction backToTop() {\n\t let btn = $(\".back-to-top\");\n\t btn.on(\"click\", function (e) {\n\t e.preventDefault();\n\t $(\"html, body\").animate({\n\t scrollTop: 0\n\t }, \"300\");\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"]}