{"version":3,"sources":["src/js/task.js","node_modules/swiper/shared/ssr-window.esm.mjs","node_modules/swiper/shared/utils.mjs","node_modules/swiper/shared/swiper-core.mjs","node_modules/swiper/shared/create-element-if-not-defined.mjs","node_modules/swiper/modules/navigation.mjs","node_modules/swiper/shared/classes-to-selector.mjs","node_modules/swiper/modules/pagination.mjs","node_modules/swiper/modules/autoplay.mjs","node_modules/swiper/modules/grid.mjs","src/js/swiper.js","src/js/main.js"],"names":["basicTask","backTop","document","querySelector","counterItem","querySelectorAll","setBackground","menuToggle","closeMenu","searchToggle","bodyWrap","menuMobile","searchWrap","hamburger","breadcrumb","addEventListener","classList","toggle","remove","contains","anchorElements","anchorBreadrumb","title","innerText","newNode","createElement","textContent","after","secondAnchor","event","preventDefault","$","animate","scrollTop","tabLink","index","length","tabNav","parentNode","tabNavItems","forEach","item","add","tab","getAttribute","tabWrap","tabItems","activeTab","window","innerWidth","em","dropDown","parentElement","navSub","sub","style","display","wrap","otherItem","attributes","cssText","concat","counterUp","default","callback","entries","entry","el","target","isIntersecting","duration","delay","IO","IntersectionObserver","threshold","counter","observe","isObject","obj","constructor","Object","extend","src","keys","key","ssrDocument","body","removeEventListener","activeElement","blur","nodeName","getElementById","createEvent","initEvent","children","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","cancelAnimationFrame","id","getWindow","win","classesToTokens","classes","trim","split","filter","c","deleteProps","object","e","nextTick","now","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","transform","webkitTransform","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","o","prototype","call","slice","isNode","node","HTMLElement","nodeType","to","arguments","undefined","noExtend","i","nextSource","keysArray","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","startTime","time","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","elementChildren","element","selector","matches","showWarning","text","console","warn","err","tag","Array","isArray","elementPrevAll","prevEls","previousElementSibling","prev","push","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","elementOuterSize","size","includeMargins","offsetWidth","support","calcSupport","smoothScroll","documentElement","touch","DocumentTouch","getSupport","deviceCached","calcDevice","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","browser","calcBrowser","needPerspectiveFix","isSafari","toLowerCase","String","includes","major","minor","num","Number","isWebView","test","getBrowser","Resize","on","emit","observer","animationFrame","resizeHandler","destroyed","initialized","createObserver","ResizeObserver","newWidth","newHeight","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","removeObserver","unobserve","orientationChangeHandler","resizeObserver","Observer","extendParams","observers","attach","options","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","__preventObserver__","observerUpdate","childList","characterData","init","observeParents","containerParents","hostEl","observeSlideChildren","destroy","disconnect","splice","eventsEmitter","events","handler","priority","self","eventsListeners","method","once","onceHandler","off","__emitterProxy","_len","args","_key","apply","onAny","eventsAnyListeners","offAny","eventHandler","data","context","_len2","_key2","unshift","eventsArray","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","assign","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","slideEl","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","initSlides","unsetSlides","slideSize","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","loop","groups","ceil","slidesBefore","slidesAfter","groupSize","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","activeIndex","offsetHeight","minusOffset","isElement","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","slideFullyVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","slideActiveClass","slideNextClass","slidePrevClass","activeSlide","prevSlide","nextSlide","column","emitSlidesClasses","processLazyPreloader","imageEl","slideSelector","closest","lazyEl","lazyPreloaderClass","shadowRoot","unlazy","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerViewDynamic","activeColumn","preloadColumns","from","slideIndexLastInView","rewind","realIndex","getActiveIndexByTranslate","normalizeSlideIndex","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","skip","firstSlideInColumn","activeSlideIndex","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","update","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","x","y","z","previousTranslate","newProgress","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEnd","transitionDuration","transitionDelay","transitionEmit","direction","step","transitionStart","transition","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","indexAsNumber","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","currentSnap","nextSnap","slideToIndex","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","append","loopAddBlankSlides","slidesToAdd","recalcSlides","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndex","activeColIndexWithShift","colIndexToPrepend","swiperLoopMoveDOM","prepend","currentSlideTranslate","newSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","grabCursor","closestElement","base","__closestFrom","assignedSlot","found","getRootNode","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","onTouchStart","originalEvent","type","pointerId","targetTouches","touchId","identifier","pageX","touches","pointerType","targetEl","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","dispatchEvent","allowMomentumBounce","loopFixed","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","isTouchEvent","proceed","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","attachEvents","bind","detachEvents","events$1","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","prepareClasses","prefix","resultClasses","classNames","addClasses","suffixes","removeClasses","wasLocked","lastSlideRightEdge","checkOverflow$1","defaults","createElements","eventsPrefix","url","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","className","getSlideClasses","updates","view","exact","spv","breakLoop","slideInView","complete","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","getWrapper","res","slideSlots","lazyElements","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod","createElementIfNotDefined","checkProps","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","toggleEl","disabled","subEl","tagName","onPrevClick","onNextClick","initButton","destroyButton","_s","pagination","clickable","isHidden","classesToSelector","Pagination","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","position","onBulletClick","total","firstIndex","midIndex","classesToRemove","suffix","s","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","innerHTML","render","paginationHTML","numberOfBullets","Autoplay","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","timeout","raf","autoplayDelayTotal","autoplayDelayCurrent","autoplayTimeLeft","autoplayStartTime","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","onTransitionEnd","calcTimeLeft","getSlideDelay","activeSlideEl","currentSlideDelay","run","delayForce","start","stop","pause","reset","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","getSpaceBetween","swiperSlideGridSet","newSlideOrderIndex","row","groupIndex","slideIndexInGroup","columnsInGroup","order","onInit","onUpdate","swiperInit","defaultSettingSwiper","lazy","loadPrevNext","swiperGrid","primarySwiper","each","$this","addClass","find","sideNav","mappingFunc","generalFunction","hideElement","scrollY","click","wrapForms","form","btnWrap","icon","Fancybox","parentEl","a11yUser","submitInput","labelFor","labelSubmit","readMore","content","toggleClass","MappingListener","mobileWrapper","mobileMethod","desktopWrapper","desktopMethod","watch"],"mappings":"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","file":"main.min.js","sourcesContent":["export function basicTask() {\r\n\tconst backTop = document.querySelector(\".back-to-top\");\r\n\tconst counterItem = document.querySelectorAll(\".counter .number-counter\");\r\n\tconst setBackground = document.querySelectorAll(\"[setBackground]\");\r\n\tconst menuToggle = document.querySelector(\".site-menu-toggle\");\r\n\tconst closeMenu = document.querySelector(\".close-menu\");\r\n\tconst searchToggle = document.querySelector(\".search-toggle\");\r\n\tconst bodyWrap = document.querySelector(\"body\");\r\n\tconst menuMobile = document.querySelector(\".mobile-nav-wrap\");\r\n\tconst searchWrap = document.querySelector(\".search-overlay\");\r\n\tconst hamburger = document.querySelector(\".hamburger\");\r\n\tconst breadcrumb = document.querySelector(\".global-breadcrumb\");\r\n\r\n\t//Basic Toggle Function\r\n\tmenuToggle.addEventListener(\"click\", () => {\r\n\t\tmenuMobile.classList.toggle(\"is-open\");\r\n\t\thamburger.classList.toggle(\"is-active\");\r\n\t\tbodyWrap.classList.toggle(\"overlay-bg\");\r\n\t});\r\n\tcloseMenu.addEventListener(\"click\", () => {\r\n\t\tmenuMobile.classList.remove(\"is-open\");\r\n\t\thamburger.classList.remove(\"is-active\");\r\n\t\tbodyWrap.classList.remove(\"overlay-bg\");\r\n\t});\r\n\r\n\t// Search Toggle\r\n\tsearchToggle.addEventListener(\"click\", () => {\r\n\t\tsearchWrap.classList.toggle(\"is-open\");\r\n\t\tbodyWrap.classList.toggle(\"overlay-bg\");\r\n\t});\r\n\t// Breadcrumb Title\r\n\tif (breadcrumb !== null) {\r\n\t\tif (bodyWrap.classList.contains(\"recruitment-detail-page\")) {\r\n\t\t\tlet anchorElements = breadcrumb.querySelectorAll(\":scope a\");\r\n\t\t\tlet anchorBreadrumb =\r\n\t\t\t\tbreadcrumb.querySelector(\":scope .breadcrumb\");\r\n\t\t\tlet title = document.querySelector(\r\n\t\t\t\t\".recruit-detail .zone-title\"\r\n\t\t\t).innerText;\r\n\t\t\tlet newNode = document.createElement(\"h2\");\r\n\t\t\tnewNode.textContent = title;\r\n\t\t\tanchorBreadrumb.after(newNode);\r\n\t\t} else {\r\n\t\t\tlet anchorElements = breadcrumb.querySelectorAll(\":scope a\");\r\n\t\t\tlet anchorBreadrumb =\r\n\t\t\t\tbreadcrumb.querySelector(\":scope .breadcrumb\");\r\n\t\t\tlet secondAnchor = anchorElements[1];\r\n\t\t\tlet title = secondAnchor.innerText;\r\n\t\t\tlet newNode = document.createElement(\"h2\");\r\n\t\t\tnewNode.textContent = title;\r\n\t\t\tanchorBreadrumb.after(newNode);\r\n\t\t}\r\n\t}\r\n\t//back to top\r\n\tbackTop.addEventListener(\"click\", (event) => {\r\n\t\tevent.preventDefault();\r\n\t\t$(\"html, body\").animate({ scrollTop: 0 }, \"300\");\r\n\t});\r\n\t//Tab function\r\n\t// Get all tab nav links\r\n\tvar tabLink = document.querySelectorAll(\".tab-nav a\");\r\n\t// Loop through each tab nav link\r\n\tfor (let index = 0; index < tabLink.length; index++) {\r\n\t\ttabLink[index].addEventListener(\"click\", function () {\r\n\t\t\tconst tabNav = this.parentNode.parentNode;\r\n\t\t\tconst tabNavItems = tabNav.querySelectorAll(\"li\");\r\n\t\t\ttabNavItems.forEach((item) => item.classList.remove(\"active\"));\r\n\t\t\tthis.parentNode.classList.add(\"active\");\r\n\r\n\t\t\tconst tab = this.getAttribute(\"data-type\");\r\n\t\t\tconst tabWrap = tabNav.parentNode.parentNode;\r\n\t\t\tconst tabItems = tabWrap.querySelectorAll(\".tab-item\");\r\n\t\t\ttabItems.forEach((item) => item.classList.remove(\"active\"));\r\n\r\n\t\t\tconst activeTab = tabWrap.querySelector(\"#\" + tab);\r\n\t\t\tif (activeTab) activeTab.classList.add(\"active\");\r\n\t\t});\r\n\t}\r\n\t// Add click event listener to each link\r\n\r\n\t//Drop down menu\r\n\tif (window.innerWidth < 1200.1) {\r\n\t\tdocument\r\n\t\t\t.querySelectorAll(\".drop-down .title em\")\r\n\t\t\t.forEach(function (em) {\r\n\t\t\t\tem.addEventListener(\"click\", function () {\r\n\t\t\t\t\tvar dropDown = this.parentElement.parentElement;\r\n\t\t\t\t\tvar navSub = dropDown.querySelector(\".nav-sub\");\r\n\r\n\t\t\t\t\tif (dropDown.classList.contains(\"is-open\")) {\r\n\t\t\t\t\t\tdocument\r\n\t\t\t\t\t\t\t.querySelectorAll(\".drop-down .nav-sub\")\r\n\t\t\t\t\t\t\t.forEach(function (sub) {\r\n\t\t\t\t\t\t\t\tsub.style.display = \"none\";\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\tdocument\r\n\t\t\t\t\t\t\t.querySelectorAll(\".drop-down\")\r\n\t\t\t\t\t\t\t.forEach(function (item) {\r\n\t\t\t\t\t\t\t\titem.classList.remove(\"is-open\");\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdocument\r\n\t\t\t\t\t\t\t.querySelectorAll(\".drop-down .nav-sub\")\r\n\t\t\t\t\t\t\t.forEach(function (sub) {\r\n\t\t\t\t\t\t\t\tsub.style.display = \"none\";\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\tdocument\r\n\t\t\t\t\t\t\t.querySelectorAll(\".drop-down\")\r\n\t\t\t\t\t\t\t.forEach(function (item) {\r\n\t\t\t\t\t\t\t\titem.classList.remove(\"is-open\");\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\tnavSub.style.display = \"block\";\r\n\t\t\t\t\t\tdropDown.classList.add(\"is-open\");\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n\t//Toggle item\r\n\tdocument.querySelectorAll(\".toggle-wrap\").forEach((wrap, index) => {\r\n\t\twrap.classList.add(\"toggle-instance-\" + index);\r\n\r\n\t\twrap.querySelectorAll(\r\n\t\t\t\".toggle-instance-\" + index + \" .toggle-item\"\r\n\t\t).forEach((item) => {\r\n\t\t\titem.addEventListener(\"click\", () => {\r\n\t\t\t\tif (item.classList.contains(\"is-toggle\")) {\r\n\t\t\t\t\titem.querySelector(\".article\").style.display = \"none\";\r\n\t\t\t\t\titem.classList.remove(\"is-toggle\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdocument\r\n\t\t\t\t\t\t.querySelectorAll(\r\n\t\t\t\t\t\t\t\".toggle-instance-\" + index + \" .toggle-item\"\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.forEach((otherItem) => {\r\n\t\t\t\t\t\t\totherItem.classList.remove(\"is-toggle\");\r\n\t\t\t\t\t\t\totherItem.querySelector(\".article\").style.display =\r\n\t\t\t\t\t\t\t\t\"none\";\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\titem.querySelector(\".article\").style.display = \"block\";\r\n\t\t\t\t\titem.classList.add(\"is-toggle\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n\r\n\t//setBackground\r\n\tsetBackground.forEach((attributes) => {\r\n\t\tattributes.style.cssText = `\r\n\t\tbackground-image: url(${attributes.getAttribute(\"setBackground\")});\r\n\t\tbackground-size: cover;\r\n\t\tbackground-position: center;\r\n\t `;\r\n\t});\r\n\tif (counterItem !== null) {\r\n\t\tif (counterItem.length) {\r\n\t\t\tconst counterUp = window.counterUp.default;\r\n\t\t\tconst callback = (entries) => {\r\n\t\t\t\tentries.forEach((entry) => {\r\n\t\t\t\t\tconst el = entry.target;\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tentry.isIntersecting &&\r\n\t\t\t\t\t\t!el.classList.contains(\"is-visible\")\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tcounterUp(el, {\r\n\t\t\t\t\t\t\tduration: 2000,\r\n\t\t\t\t\t\t\tdelay: 200,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tel.classList.add(\"is-visible\");\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t\tconst IO = new IntersectionObserver(callback, { threshold: 1 });\r\n\r\n\t\t\tcounterItem.forEach((counter) => {\r\n\t\t\t\tIO.observe(counter);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, elementIndex as g, classesToTokens as h, getTranslate as i, elementTransitionEnd as j, isObject as k, getSlideTransformEl as l, elementStyle as m, nextTick as n, elementNextAll as o, elementPrevAll as p, animateCSSModeScroll as q, showWarning as r, setCSSProperty as s, extend as t, deleteProps as u };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, m as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, o as elementNextAll, p as elementPrevAll, i as getTranslate, q as animateCSSModeScroll, n as nextTick, r as showWarning, c as createElement, d as now, t as extend, g as elementIndex, u as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n if (isFullyVisible) {\n slides[i].classList.add(params.slideFullyVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n if (gridEnabled) {\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n } else {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n }\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { f as elementOuterSize, g as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","function Grid(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n let wasMultiRow;\n const getSpaceBetween = () => {\n let spaceBetween = swiper.params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n return spaceBetween;\n };\n const initSlides = slides => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n slidesPerRow = slidesNumberEvenToRows / rows;\n };\n const unsetSlides = () => {\n if (swiper.slides) {\n swiper.slides.forEach(slide => {\n if (slide.swiperSlideGridSet) {\n slide.style.height = '';\n slide.style[swiper.getDirectionLabel('margin-top')] = '';\n }\n });\n }\n };\n const updateSlide = (i, slide, slides) => {\n const {\n slidesPerGroup\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.row = row;\n slide.column = column;\n slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;\n slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n slide.swiperSlideGridSet = true;\n };\n const updateWrapperSize = (slideSize, snapGrid) => {\n const {\n centeredSlides,\n roundLengths\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n const onInit = () => {\n wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;\n };\n const onUpdate = () => {\n const {\n params,\n el\n } = swiper;\n const isMultiRow = params.grid && params.grid.rows > 1;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n numFullColumns = 1;\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n wasMultiRow = isMultiRow;\n };\n on('init', onInit);\n on('update', onUpdate);\n swiper.grid = {\n initSlides,\n unsetSlides,\n updateSlide,\n updateWrapperSize\n };\n}\n\nexport { Grid as default };\n","import Swiper from 'swiper';\r\nimport {\r\n\tPagination,\r\n\tKeyboard,\r\n\tMousewheel,\r\n\tNavigation,\r\n\tThumbs,\r\n\tEffectFade,\r\n\tAutoplay,\r\n\tGrid,\r\n} from 'swiper/modules';\r\n/**\r\n * @param swiperInit\r\n */\r\n\r\nconst sleep = (t) => new Promise((r) => setTimeout(r, t));\r\n\r\nexport function swiperInit() {\r\n\tvar defaultSettingSwiper = {\r\n\t\tpreventInteractionOnTransition: true,\r\n\t\tobserver: true,\r\n\t\tobserveParents: true,\r\n\t\trewind: true,\r\n\t\tspeed: 1205,\r\n\t\tloop: false,\r\n\t\tautoplay: {\r\n\t\t\tdelay: 4000,\r\n\t\t\tpauseOnMouseEnter: true,\r\n\t\t},\r\n\t\tlazy: {\r\n\t\t\tloadPrevNext: true,\r\n\t\t},\r\n\t};\r\n\r\n\r\n\t\r\n\r\n\tvar swiperGrid = new Swiper(\".home-services-swiper .swiper\", {\r\n\t\tmodules: [Navigation, Pagination,Autoplay,Grid],\r\n\t\tautoplay: {\r\n\t\t\tdelay: 3000,\r\n\t\t\tpauseOnMouseEnter: true,\r\n\t\t},\r\n\t\tlazy: {\r\n\t\t\tloadPrevNext: true,\r\n\t\t},\r\n\t\tobserver: true,\r\n\t\tspaceBetween: 30,\r\n\t\tobserveParents: true,\r\n\t\tbreakpoints: {\r\n\t\t\t200: {\r\n\t\t\t\tslidesPerView: 1,\r\n\t\t\t\tspaceBetween: 15,\r\n\t\t\t},\r\n\t\t\t768: {\r\n\t\t\t\tslidesPerView: 2,\r\n\t\t\t\tspaceBetween: 20,\r\n\t\t\t},\r\n\t\t\t1024: {\r\n\t\t\t\tslidesPerView: 2,\r\n\t\t\t\tgrid: {\r\n\t\t\t\t\trows: 2,\r\n\t\t\t\t\tfill: \"row\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\r\n\t\tnavigation: {\r\n\t\t\tnextEl: \".home-services-swiper .next\",\r\n\t\t\tprevEl: \".home-services-swiper .prev\",\r\n\t\t},\r\n\t\tpagination: {\r\n\t\t\tel: \".home-services-swiper .swiper-pagination\",\r\n\t\t\tclickable: true,\r\n\t\t},\r\n\t});\r\n\tvar primarySwiper = new Swiper(\".primary-banner .swiper\", {\r\n\t\tmodules: [Navigation, Pagination,Autoplay],\r\n\t\tdefaultSettingSwiper,\r\n\t\tslidesPerView: 1,\r\n\t\tlazy: {\r\n\t\t\tloadPrevNext: true,\r\n\t\t},\r\n\t\tnavigation: {\r\n\t\t\tnextEl: \".primary-banner .next\",\r\n\t\t\tprevEl: \".primary-banner .prev\",\r\n\t\t},\r\n\t\tpagination: {\r\n\t\t\tel: \".primary-banner .swiper-pagination\",\r\n\t\t\ttype: \"bullets\",\r\n\t\t\tclickable: true,\r\n\t\t},\r\n\t});\r\n\r\n\t$(\".init-swiper .swiper\").each(function (index) {\r\n\t\tvar $this = $(this);\r\n\t\t$this.addClass(\"swiper-init-\" + index);\r\n\t\t$this\r\n\t\t\t.parents(\".init-swiper\")\r\n\t\t\t.find(\".prev\")\r\n\t\t\t.addClass(\"prev-nav-\" + index);\r\n\t\t$this\r\n\t\t\t.parents(\".init-swiper\")\r\n\t\t\t.find(\".next\")\r\n\t\t\t.addClass(\"next-nav-\" + index);\r\n\t\t$this\r\n\t\t\t.parents(\".init-swiper\")\r\n\t\t\t.find(\".swiper-pagination\")\r\n\t\t\t.addClass(\"pagination-inst-\" + index);\r\n\r\n\t\tvar swiper = new Swiper(\".swiper-init-\" + index, {\r\n\t\t\tdefaultSettingSwiper,\r\n\t\t\tmodules: [Navigation, Pagination,Autoplay],\r\n\t\t\tslidesPerView: \"auto\",\r\n\t\t\tnavigation: {\r\n\t\t\t\tnextEl: \".next-nav-\" + index,\r\n\t\t\t\tprevEl: \".prev-nav-\" + index,\r\n\t\t\t},\r\n\t\t\tpagination: {\r\n\t\t\t\tel: \".pagination-inst-\" + index,\r\n\t\t\t\ttype: \"bullets\",\r\n\t\t\t\tclickable: true,\r\n\t\t\t\tdynamicBullets: true,\r\n\t\t\t\tdynamicMainBullets: 1,\r\n\t\t\t},\r\n\t\t});\r\n\t});\r\n}","import { basicTask } from \"./task\";\r\nimport { swiperInit } from \"./swiper\";\r\nconst bodyWrap = document.querySelector(\"body\");\r\nconst sideNav = document.querySelector(\".sidenav-group\");\r\nconst hamburger = document.querySelector(\".hamburger\");\r\nconst menuMobile = document.querySelector(\".mobile-nav-wrap\");\r\nconst searchWrap = document.querySelector(\".search-overlay\");\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tmappingFunc();\r\n\tswiperInit();\r\n\tbasicTask();\r\n\tgeneralFunction.init();\r\n});\r\n\r\nwindow.addEventListener(\"resize\", function () {\r\n\tlet width = this.window.innerWidth;\r\n\tif (width <= 1200.1) {\r\n\t\tmappingFunc();\r\n\t\tgeneralFunction.hideElement().init();\r\n\t}\r\n});\r\nwindow.addEventListener(\"scroll\", function () {\r\n\tconst width = this.window.innerWidth;\r\n\tconst scrollTop = window.scrollY || document.documentElement.scrollTop;\r\n\tif (\r\n\t\tdocument.body.scrollTop > 100 ||\r\n\t\tdocument.documentElement.scrollTop > 100\r\n\t) {\r\n\t\tbodyWrap.classList.add(\"minimize\");\r\n\t} else {\r\n\t\tbodyWrap.classList.remove(\"minimize\");\r\n\t}\r\n\tif (scrollTop > window.innerHeight) {\r\n\t\tsideNav.classList.add(\"show\");\r\n\t} else {\r\n\t\tsideNav.classList.remove(\"show\");\r\n\t}\r\n});\r\ndocument.addEventListener(\"click\", (event) => {\r\n\tif (!event.target.closest(\".search-toggle, .search-overlay\")) {\r\n\t\tsearchWrap.classList.remove(\"is-open\");\r\n\t}\r\n\tif (!event.target.closest(\".mobile-nav-wrap, .site-menu-toggle\")) {\r\n\t\tmenuMobile.classList.remove(\"is-open\");\r\n\t\tbodyWrap.classList.remove(\"overlay-bg\");\r\n\t\thamburger.classList.remove(\"is-active\");\r\n\t}\r\n});\r\n\r\n$(\"body\").on(\"click\", function () {\r\n\t$(\".wrap-form input[submit]\").click(() => {\r\n\t\tconst wrapForms = document.querySelectorAll(\".wrap-form\");\r\n\t\tif (wrapForms !== null) {\r\n\t\t\twrapForms.forEach(function (form) {\r\n\t\t\t\tconst btnWrap = form.querySelector(\".frm-btn\");\r\n\r\n\t\t\t\tconst icon = document.createElement(\"div\");\r\n\t\t\t\ticon.classList.add(\"icon\");\r\n\t\t\t\tbtnWrap.append(icon);\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n});\r\n\r\nFancybox.bind(\"[data-fancybox]\", {\r\n\tparentEl: document.body[0], // Element containing main structure\r\n});\r\n\r\nconst generalFunction = {\r\n\ta11yUser: () => {\r\n\t\tconst wrapForms = document.querySelectorAll(\".wrap-form\");\r\n\t\tif (wrapForms !== null) {\r\n\t\t\twrapForms.forEach(function (form) {\r\n\t\t\t\tconst btnWrap = form.querySelector(\".frm-btn\");\r\n\t\t\t\tconst submitInput = form.querySelector(\"input[type='submit']\");\r\n\t\t\t\tconst labelFor = submitInput.getAttribute(\"name\");\r\n\t\t\t\tconst labelSubmit = form.querySelector(\".frm-btnwrap .label\");\r\n\r\n\t\t\t\tconst icon = document.createElement(\"div\");\r\n\t\t\t\ticon.classList.add(\"icon\");\r\n\t\t\t\tbtnWrap.append(icon);\r\n\t\t\t\tif (labelFor !== null) {\r\n\t\t\t\t\tif (labelSubmit !== null) {\r\n\t\t\t\t\t\tlabelSubmit.textContent = \"Submit Button\";\r\n\t\t\t\t\t\tlabelSubmit.setAttribute(\"for\", labelFor);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\treadMore: () => {\r\n\t\t$(\".read-more-wrap\").each(function (index) {\r\n\t\t\t$(this).addClass(\"read-instance-\" + index);\r\n\t\t\tlet $this = $(\".read-instance-\" + index);\r\n\t\t\t$this.each(function () {\r\n\t\t\t\tlet button = $this.find(\".btn-read-more\");\r\n\t\t\t\tlet content = $this;\r\n\t\t\t\tbutton.on(\"click\", function () {\r\n\t\t\t\t\tcontent.toggleClass(\"active\");\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\thideElement: () => {\r\n\t\tif ($(window).width() < 1200.1) {\r\n\t\t\t[\".searchbox\", \".nav-primary-menu\"]\r\n\t\t\t\t.map((selector) => document.querySelector(selector))\r\n\t\t\t\t.forEach((el) => (el.style.display = \"flex\"));\r\n\t\t}\r\n\t},\r\n\tinit: () => {\r\n\t\tgeneralFunction.a11yUser();\r\n\t\tgeneralFunction.hideElement();\r\n\t\tgeneralFunction.readMore();\r\n\t},\r\n};\r\n\r\nfunction mappingFunc() {\r\n\tnew MappingListener({\r\n\t\tselector: \".header-contact-group\",\r\n\t\tmobileWrapper: \"main\",\r\n\t\tmobileMethod: \"appendTo\",\r\n\t\tdesktopWrapper: \".site-menu-toggle\",\r\n\t\tdesktopMethod: \"insertBefore\",\r\n\t\tbreakpoint: 1200.1,\r\n\t}).watch();\r\n\tnew MappingListener({\r\n\t\tselector: \".nav-primary-menu\",\r\n\t\tmobileWrapper: \".mobile-nav-wrap\",\r\n\t\tmobileMethod: \"appendTo\",\r\n\t\tdesktopWrapper: \".language-wrap\",\r\n\t\tdesktopMethod: \"insertBefore\",\r\n\t\tbreakpoint: 1200.1,\r\n\t}).watch();\r\n\tnew MappingListener({\r\n\t\tselector: \".search-overlay\",\r\n\t\tmobileWrapper: \".mobile-top-nav\",\r\n\t\tmobileMethod: \"appendTo\",\r\n\t\tdesktopWrapper: \".search-toggle\",\r\n\t\tdesktopMethod: \"insertAfter\",\r\n\t\tbreakpoint: 1200.1,\r\n\t}).watch();\r\n}\r\n"]}