{"version":3,"sources":["main.min.js","node_modules/aos/dist/aos.js","node_modules/lozad/dist/lozad.es.js","node_modules/countup.js/dist/countUp.min.js","src/js/header.js","plugins/ComponentsUi/HeaderSearch/HeaderSearch.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/scrollbar.mjs","node_modules/swiper/modules/autoplay.mjs","node_modules/swiper/modules/free-mode.mjs","node_modules/swiper/shared/effect-target.mjs","node_modules/swiper/shared/effect-virtual-transition-end.mjs","node_modules/swiper/modules/effect-fade.mjs","node_modules/swiper/shared/effect-init.mjs","src/js/swiper.js","src/js/header-menu.js","node_modules/menuspy/dist/menuspy.js","src/js/main.js","src/js/helper.js"],"names":["factory","createCommonjsModule","fn","module","exports","globalThis","window","global","self","aos","e","t","o","n","i","id","loaded","call","m","c","p","__esModule","default","Object","assign","arguments","length","prototype","hasOwnProperty","a","u","s","d","b","y","h","w","k","x","offset","delay","easing","duration","disable","once","startEvent","throttleDelay","debounceDelay","disableMutationObserver","j","O","M","forEach","node","removeAttribute","S","mobile","phone","tablet","_","document","all","atob","isSupported","console","info","querySelector","setAttribute","indexOf","readyState","addEventListener","ready","init","refresh","refreshHard","v","g","apply","r","setTimeout","f","l","clearTimeout","this","TypeError","leading","maxWait","trailing","cancel","flush","valueOf","replace","test","slice","Symbol","iterator","constructor","NaN","parseInt","Function","toString","Math","max","min","Date","now","dataset","children","MutationObserver","WebKitMutationObserver","MozMutationObserver","observe","documentElement","childList","subtree","removedNodes","Array","addedNodes","concat","defineProperty","value","navigator","userAgent","vendor","opera","enumerable","configurable","writable","key","substr","getAttribute","position","classList","add","remove","pageYOffset","innerHeight","anchor","anchorPlacement","isNaN","querySelectorAll","top","offsetHeight","offsetLeft","offsetTop","tagName","scrollLeft","scrollTop","offsetParent","left","map","AOS","unwrapExports","isIE","documentMode","defaultConfig","rootMargin","threshold","load","element","nodeName","toLowerCase","img","append","createElement","src","alt","childs","childSrc","poster","backgroundImageDelimiter","style","backgroundImage","split","join","imageSetLinks","firstUrlLink","toggle","markAsLoaded","isLoaded","getElements","selector","root","Element","NodeList","endVal","options","version","defaults","startVal","decimalPlaces","useEasing","useGrouping","useIndianSeparators","smartEasingThreshold","smartEasingAmount","separator","decimal","prefix","suffix","enableScrollSpy","scrollSpyDelay","scrollSpyOnce","finalEndVal","countDown","error","paused","count","startTime","remaining","frameVal","easingFn","Number","toFixed","printValue","rAF","requestAnimationFrame","update","onCompleteCallback","formatNumber","abs","numerals","easeOutExpo","pow","formattingFn","validateValue","resetDuration","String","el","getElementById","onScrollFns","push","handleScroll","onscroll","scrollY","getBoundingClientRect","height","start","reset","determineDirectionAndSmartEasing","onStartCallback","pauseResume","cancelAnimationFrame","plugin","render","textContent","innerHTML","ensureNumber","$","width","header","scrollActive","addClass","removeClass","on","toggleClass","preventDefault","next","slideToggle","parent","siblings","find","slideUp","initVariable","setProperty","headerSearch","closeSearch","focus","keyup","hasClass","log","target","closest","is","isObject","obj","extend","keys","ssrDocument","body","removeEventListener","activeElement","blur","createEvent","initEvent","childNodes","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","matchMedia","callback","getWindow","win","classesToTokens","classes","trim","filter","nextTick","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","parseFloat","m42","to","undefined","noExtend","nextSource","HTMLElement","nodeType","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","easeProgress","cos","PI","currentPosition","scrollTo","overflow","getSlideTransformEl","slideEl","shadowRoot","elementChildren","matches","showWarning","text","warn","err","tag","isArray","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parentElement","elementTransitionEnd","fireCallBack","elementOuterSize","size","includeMargins","offsetWidth","support","deviceCached","browser","getSupport","calcSupport","smoothScroll","touch","DocumentTouch","getDevice","overrides","calcDevice","_temp","platform","ua","device","ios","android","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","os","getBrowser","calcBrowser","needPerspectiveFix","isSafari","includes","major","minor","num","isWebView","eventsEmitter","events","handler","priority","eventsListeners","destroyed","method","event","onceHandler","off","__emitterProxy","_len","args","_key","onAny","eventsAnyListeners","offAny","index","splice","eventHandler","emit","data","context","_len2","_key2","unshift","processLazyPreloader","imageEl","isElement","slideClass","lazyEl","lazyPreloaderClass","unlazy","slides","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","from","column","slideIndexLastInView","rewind","loop","realIndex","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","minusOffset","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","slideFullyVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","slideActiveClass","slideNextClass","slidePrevClass","elementNextAll","nextEls","nextElementSibling","elementPrevAll","prevEls","previousElementSibling","prev","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","getActiveIndexByTranslate","normalizeSlideIndex","skip","firstSlideInColumn","activeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEnd","transitionEmit","direction","step","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","onTouchStart","originalEvent","type","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","pointerType","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","closestElement","base","__closestFrom","assignedSlot","found","getRootNode","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","grabCursor","setGrabCursor","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","points","point","minRatio","sort","resizeObserver","createElements","eventsPrefix","url","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","extendParams","moduleParamName","moduleParams","auto","prototypes","transition","transitionDuration","transitionDelay","moving","isLocked","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","prepareClasses","entries","resultClasses","item","autoheight","centered","removeClasses","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","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","getWrapperSelector","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","deleteProps","object","static","newDefaults","installModule","createElementIfNotDefined","checkProps","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","res","toggleEl","disabled","subEl","onPrevClick","onNextClick","initButton","destroyButton","_s","pagination","clickable","isHidden","classesToSelector","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","total","firstIndex","midIndex","classesToRemove","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","paginationHTML","numberOfBullets","Scrollbar","dragStartPos","dragSize","trackSize","divider","timeout","dragTimeout","scrollbar","dragEl","newSize","newPos","hide","opacity","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","elementOffset","box","clientTop","scrollX","onDragStart","onDragMove","returnValue","onDragEnd","snapOnRelease","activeListener","passiveListener","eventMethod","swiperEl","dragClass","draggable","enableDraggable","disableDraggable","scrollbarDisabledClass","Autoplay","raf","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","onTransitionEnd","calcTimeLeft","run","delayForce","currentSlideDelay","getSlideDelay","activeSlideEl","proceed","stop","pause","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","sticky","minimumVelocity","_ref2","lastMoveEvent","pop","velocityEvent","distance","momentumDuration","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","effectTarget","effectParams","transformEl","backfaceVisibility","effectVirtualTransitionEnd","transformElements","allSlides","transitionEndTarget","eventTriggered","getSlide","EffectFade","fadeEffect","crossFade","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","requireUpdateOnVirtual","overwriteParamsResult","slideShadows","shadowEl","tx","ty","slideOpacity","swiperInit","swiperProjectDetail","swiperCareerDetail","swiperHomeBanner","paginationItems","homeSwiper","updatePagination","slideChange","paginationItem","paginationName","swiperNews","swiperHome3","FreeMode","swiperHome7","swiperHomeBannerMobile","showMenu","barBtn","menu","icon","searchBtns","searchBtnsMobile","searchBar","searchMobileClose","resetSearchIcons","btn","toggleSearch","prototypeGroup","protoMethod","use","Resize","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","unobserve","Observer","observers","attach","WebkitMutationObserver","mutations","observerUpdate","attributes","characterData","observeParents","observeSlideChildren","containerParents","disconnect","menuspy","utils","MenuSpy","rect","pageXOffset","RegExp","debounce","this$1","menuItemSelector","activeClass","enableLocationHash","hashTimeout","assignValues","debouncedAssignValuesFn","debouncedHashFn","lastInViewElm","st","cacheItems","scrollFn","currScrollTop","menuHeight","menuItems","scrollItems","elm","Boolean","tick","fromTop","inViewElms","activateItem","inViewElm","ref","resizeIframe","iframe","contentWindow","scrollHeight","setBackgroundElement","each","background","attr","css","ToggleItem","end","countUpInit","countUp","targetNumber","CountUp","initMenuSpy","hoverItemHome8","$firstQuarter","hover","targetIndex","tabsletSubContent","targetId","show","$nextButton","$prevButton","hoverHome6Item","loadMoreTableItem","$tableRows","visibleCount","loadStep","$loadMoreBtn","nextVisible","watchObserveInputFile","file","files","fileName","name","fileNameDisplay","class","tabslet","active","animation","$firstItem","first","$currentItem","targetImage","firstItem","lozad","IntersectionObserver","onIntersection","entry","intersectionRatio","isIntersecting","elements","triggerLoad","Fancybox","dragToClose","backdropClick","template","closeButton","define","amd"],"mappings":"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","file":"main.min.js","sourcesContent":[null,"!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p=\"dist/\",t(0)}([function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},M=function(){w.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\")})},S=function(e){return e===!0||\"mobile\"===e&&p.default.mobile()||\"phone\"===e&&p.default.phone()||\"tablet\"===e&&p.default.tablet()||\"function\"==typeof e&&e()===!0},_=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?M():(x.disableMutationObserver||d.default.isSupported()||(console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '),x.disableMutationObserver=!0),document.querySelector(\"body\").setAttribute(\"data-aos-easing\",x.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",x.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",x.delay),\"DOMContentLoaded\"===x.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1?j(!0):\"load\"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener(\"resize\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"orientationchange\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"scroll\",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||d.default.ready(\"[data-aos]\",O),w)};e.exports={init:_,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){\"use strict\";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(f,t),M?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=O();return c(e)?d(e):void(h=setTimeout(f,a(e)))}function d(e){return h=void 0,_&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),o(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,k=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(s);return t=u(t)||0,i(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?x(u(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(s);return i(o)&&(r=\"leading\"in o?!!o.leading:r,a=\"trailing\"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t=\"undefined\"==typeof e?\"undefined\":c(e);return!!e&&(\"object\"==t||\"function\"==t)}function r(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":c(e))}function a(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":c(e))||r(e)&&k.call(e)==d}function u(e){if(\"number\"==typeof e)return e;if(a(e))return f;if(i(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(l,\"\");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?f:+e}var c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},s=\"Expected a function\",f=NaN,d=\"[object Symbol]\",l=/^\\s+|\\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y=\"object\"==(\"undefined\"==typeof t?\"undefined\":c(t))&&t&&t.Object===Object&&t,g=\"object\"==(\"undefined\"==typeof self?\"undefined\":c(self))&&self&&self.Object===Object&&self,h=y||g||Function(\"return this\")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){\"use strict\";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(f,t),M?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function s(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=j();return s(e)?d(e):void(h=setTimeout(f,u(e)))}function d(e){return h=void 0,_&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=s(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),i(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,O=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?k(a(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e){var t=\"undefined\"==typeof e?\"undefined\":u(e);return!!e&&(\"object\"==t||\"function\"==t)}function i(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":u(e))}function r(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":u(e))||i(e)&&w.call(e)==f}function a(e){if(\"number\"==typeof e)return e;if(r(e))return s;if(o(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(d,\"\");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?s:+e}var u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},c=\"Expected a function\",s=NaN,f=\"[object Symbol]\",d=/^\\s+|\\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v=\"object\"==(\"undefined\"==typeof t?\"undefined\":u(t))&&t&&t.Object===Object&&t,y=\"object\"==(\"undefined\"==typeof self?\"undefined\":u(self))&&self&&self.Object===Object&&self,g=v||y||Function(\"return this\")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){\"use strict\";function n(e){var t=void 0,o=void 0,i=void 0;for(t=0;te.position?e.node.classList.add(\"aos-animate\"):\"undefined\"!=typeof o&&(\"false\"===o||!n&&\"true\"!==o)&&e.node.classList.remove(\"aos-animate\")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add(\"aos-init\"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute(\"data-aos-offset\"),anchor:e.getAttribute(\"data-aos-anchor\"),anchorPlacement:e.getAttribute(\"data-aos-anchor-placement\")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case\"top-bottom\":break;case\"center-bottom\":n+=e.offsetHeight/2;break;case\"bottom-bottom\":n+=e.offsetHeight;break;case\"top-center\":n+=i/2;break;case\"bottom-center\":n+=i/2+e.offsetHeight;break;case\"center-center\":n+=i/2+e.offsetHeight/2;break;case\"top-top\":n+=i;break;case\"bottom-top\":n+=e.offsetHeight+i;break;case\"center-top\":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){return e=e||document.querySelectorAll(\"[data-aos]\"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});","/*! lozad.js - v1.16.0 - 2020-09-06\n* https://github.com/ApoorvSaxena/lozad.js\n* Copyright (c) 2020 Apoorv Saxena; Licensed MIT */\n\n\n/**\n * Detect IE browser\n * @const {boolean}\n * @private\n */\nconst isIE = typeof document !== 'undefined' && document.documentMode;\n\nconst defaultConfig = {\n rootMargin: '0px',\n threshold: 0,\n load(element) {\n if (element.nodeName.toLowerCase() === 'picture') {\n let img = element.querySelector('img');\n let append = false;\n\n if (img === null) {\n img = document.createElement('img');\n append = true;\n }\n\n if (isIE && element.getAttribute('data-iesrc')) {\n img.src = element.getAttribute('data-iesrc');\n }\n\n if (element.getAttribute('data-alt')) {\n img.alt = element.getAttribute('data-alt');\n }\n\n if (append) {\n element.append(img);\n }\n }\n\n if (element.nodeName.toLowerCase() === 'video' && !element.getAttribute('data-src')) {\n if (element.children) {\n const childs = element.children;\n let childSrc;\n for (let i = 0; i <= childs.length - 1; i++) {\n childSrc = childs[i].getAttribute('data-src');\n if (childSrc) {\n childs[i].src = childSrc;\n }\n }\n\n element.load();\n }\n }\n\n if (element.getAttribute('data-poster')) {\n element.poster = element.getAttribute('data-poster');\n }\n\n if (element.getAttribute('data-src')) {\n element.src = element.getAttribute('data-src');\n }\n\n if (element.getAttribute('data-srcset')) {\n element.setAttribute('srcset', element.getAttribute('data-srcset'));\n }\n\n let backgroundImageDelimiter = ',';\n if (element.getAttribute('data-background-delimiter')) {\n backgroundImageDelimiter = element.getAttribute('data-background-delimiter');\n }\n\n if (element.getAttribute('data-background-image')) {\n element.style.backgroundImage = `url('${element.getAttribute('data-background-image').split(backgroundImageDelimiter).join('\\'),url(\\'')}')`;\n } else if (element.getAttribute('data-background-image-set')) {\n const imageSetLinks = element.getAttribute('data-background-image-set').split(backgroundImageDelimiter);\n let firstUrlLink = (imageSetLinks[0].substr(0, imageSetLinks[0].indexOf(' ')) || imageSetLinks[0]); // Substring before ... 1x\n firstUrlLink = firstUrlLink.indexOf('url(') === -1 ? `url(${firstUrlLink})` : firstUrlLink;\n if (imageSetLinks.length === 1) {\n element.style.backgroundImage = firstUrlLink;\n } else {\n element.setAttribute('style', (element.getAttribute('style') || '') + `background-image: ${firstUrlLink}; background-image: -webkit-image-set(${imageSetLinks}); background-image: image-set(${imageSetLinks})`);\n }\n }\n\n if (element.getAttribute('data-toggle-class')) {\n element.classList.toggle(element.getAttribute('data-toggle-class'));\n }\n },\n loaded() {}\n};\n\nfunction markAsLoaded(element) {\n element.setAttribute('data-loaded', true);\n}\n\nfunction preLoad(element) {\n if (element.getAttribute('data-placeholder-background')) {\n element.style.background = element.getAttribute('data-placeholder-background');\n }\n}\n\nconst isLoaded = element => element.getAttribute('data-loaded') === 'true';\n\nconst onIntersection = (load, loaded) => (entries, observer) => {\n entries.forEach(entry => {\n if (entry.intersectionRatio > 0 || entry.isIntersecting) {\n observer.unobserve(entry.target);\n\n if (!isLoaded(entry.target)) {\n load(entry.target);\n markAsLoaded(entry.target);\n loaded(entry.target);\n }\n }\n });\n};\n\nconst getElements = (selector, root = document) => {\n if (selector instanceof Element) {\n return [selector]\n }\n\n if (selector instanceof NodeList) {\n return selector\n }\n\n return root.querySelectorAll(selector)\n};\n\nfunction lozad (selector = '.lozad', options = {}) {\n const {root, rootMargin, threshold, load, loaded} = Object.assign({}, defaultConfig, options);\n let observer;\n\n if (typeof window !== 'undefined' && window.IntersectionObserver) {\n observer = new IntersectionObserver(onIntersection(load, loaded), {\n root,\n rootMargin,\n threshold\n });\n }\n\n const elements = getElements(selector, root);\n for (let i = 0; i < elements.length; i++) {\n preLoad(elements[i]);\n }\n\n return {\n observe() {\n const elements = getElements(selector, root);\n\n for (let i = 0; i < elements.length; i++) {\n if (isLoaded(elements[i])) {\n continue\n }\n\n if (observer) {\n observer.observe(elements[i]);\n continue\n }\n\n load(elements[i]);\n markAsLoaded(elements[i]);\n loaded(elements[i]);\n }\n },\n triggerLoad(element) {\n if (isLoaded(element)) {\n return\n }\n\n load(element);\n markAsLoaded(element);\n loaded(element);\n },\n observer\n }\n}\n\nexport default lozad;\n","var t=function(){return t=Object.assign||function(t){for(var i,n=1,s=arguments.length;na.endVal;a.frameVal=n?a.endVal:a.frameVal,a.frameVal=Number(a.frameVal.toFixed(a.options.decimalPlaces)),a.printValue(a.frameVal),i1?a.options.decimal+r[1]:\"\",a.options.useGrouping){e=\"\";for(var l=3,h=0,u=0,p=n.length;uwindow.scrollY&&t.paused?(t.paused=!1,setTimeout((function(){return t.start()}),t.options.scrollSpyDelay),t.options.scrollSpyOnce&&(t.once=!0)):(window.scrollY>a||s>i)&&!t.paused&&t.reset()}},i.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold&&this.options.useEasing){this.finalEndVal=t;var n=this.countDown?1:-1;this.endVal=t+n*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;null!==this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},i.prototype.start=function(t){this.error||(this.options.onStartCallback&&this.options.onStartCallback(),t&&(this.options.onCompleteCallback=t),this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},i.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},i.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},i.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,null==this.finalEndVal&&this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},i.prototype.printValue=function(t){var i;if(this.el){var n=this.formattingFn(t);if(null===(i=this.options.plugin)||void 0===i?void 0:i.render)this.options.plugin.render(this.el,n);else if(\"INPUT\"===this.el.tagName)this.el.value=n;else\"text\"===this.el.tagName||\"tspan\"===this.el.tagName?this.el.textContent=n:this.el.innerHTML=n}},i.prototype.ensureNumber=function(t){return\"number\"==typeof t&&!isNaN(t)},i.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error=\"[CountUp] invalid start or end value: \".concat(t),null)},i.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},i}();export{i as CountUp};\n","import { headerSearch } from \"../../plugins/ComponentsUi/HeaderSearch/HeaderSearch\";\nimport { detectCloseElement } from \"./helper\";\n/*==================== Header ====================*/\n/**\n * @param header\n */\nconst vw = $(window).width();\nexport const header = {\n\tscrollActive: function () {\n\t\tlet height = $(\"header\").height();\n\t\tif ($(window).scrollTop() > height) {\n\t\t\t$(\"header\").addClass(\"active\");\n\t\t} else {\n\t\t\t$(\"header\").removeClass(\"active\");\n\t\t}\n\t},\n\tmobile: function () {\n\t\t$(\".header-hambuger\").on(\"click\", function () {\n\t\t\t$(this).toggleClass(\"active\");\n\t\t\t$(\"body\").toggleClass(\"isOpenMenu\");\n\t\t});\n\t\t$('.header-nav-mobile li[class*=\"menu-item-has-children\"] > a').on(\"click\", function (e) {\n\t\t\te.preventDefault();\n\t\t\t$(this)\n\t\t\t\t.toggleClass(\"dropdown-active\")\n\t\t\t\t.next()\n\t\t\t\t.slideToggle()\n\t\t\t\t.parent()\n\t\t\t\t.siblings()\n\t\t\t\t.find(\"a\")\n\t\t\t\t.removeClass(\"dropdown-active\")\n\t\t\t\t.next()\n\t\t\t\t.slideUp();\n\t\t});\n\t},\n\tinitVariable: function () {\n\t\tconst height = $(\"header\").height();\n\t\tdocument.documentElement.style.setProperty(\"--header-height\", `${height}px`);\n\t},\n\tinit: function () {\n\t\theaderSearch();\n\t\theader.scrollActive();\n\t\theader.mobile();\n\t\theader.initVariable();\n\t},\n};\ndocument.addEventListener(\n\t\"scroll\",\n\tfunction (e) {\n\t\theader.scrollActive();\n\t},\n\ttrue\n);\n","export function headerSearch() {\n\tfunction closeSearch() {\n\t\t$(\".header-search-form\").removeClass(\"active\");\n\t\t$(\".header-search\").removeClass(\"active\");\n\t\t$(\"body\").removeClass(\"disable\");\n\t}\n\t$(\".header-search\").on(\"click\", function () {\n\t\t$(\".header-search-form\").addClass(\"active\");\n\t\t$(\"body\").addClass(\"disable\");\n\t\tsetTimeout(() => {\n\t\t\t$(\".header-search-form .searchinput\").focus();\n\t\t}, 400);\n\t});\n\t$(\".header-search-form .close\").on(\"click\", function () {\n\t\tcloseSearch();\n\t});\n\t$(document).keyup(function (e) {\n\t\tif (e.key === \"Escape\") {\n\t\t\tcloseSearch();\n\t\t}\n\t});\n\t$(document).on(\"click\", function (e) {\n\t\tif ($(\".header-search-form\").hasClass(\"active\")) {\n\t\t\tconsole.log(e.target);\n\t\t\tif (!$(e.target).closest(\".productsearchbox\").length && !$(e.target).is('.header-search')) {\n\t\t\t\tcloseSearch();\n\t\t\t}\n\t\t}\n\t});\n}\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';\nimport { h as classesToTokens, c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\n\nfunction Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\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 if (!el.length) return;\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass));\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));\n }\n disableDraggable();\n }\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\nexport { Scrollbar 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","import { d as now, j as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n emit('_freeModeStaticRelease');\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\nexport { freeMode as default };\n","import { l as getSlideTransformEl } from './utils.mjs';\n\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n\nexport { effectTarget as e };\n","import { j as elementTransitionEnd } from './utils.mjs';\n\nfunction effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformElements,\n allSlides\n } = _ref;\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\nexport { effectVirtualTransitionEnd as e };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { l as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFade as default };\n","function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\nexport { effectInit as e };\n","import Swiper from \"swiper\";\nimport { Autoplay, EffectFade, FreeMode, Navigation, Pagination, Scrollbar } from \"swiper/modules\";\n/**\n * @param swiperInit\n */\nexport function swiperInit() {\n\t// new Swiper(\".section-home-banner .swiper\", {\n\t// \tslidesPerView: 1,\n\t// \tspaceBetween: 0,\n\t// \tspeed: 1000,\n\t// \tloop: true,\n\t// \teffect: \"fade\",\n\t// \tautoplay: {\n\t// \t\tdelay: 3500,\n\t// \t},\n\t// \tmodules: [Pagination, Navigation, Autoplay, EffectFade],\n\t// \tpagination: {\n\t// \t\tel: \".section-home-banner .swiper-pagination\",\n\t// \t\tclickable: true,\n\t// \t\trenderBullet: function (index, className) {\n\t// \t\t\tconst slide = this.slides[index];\n\t// \t\t\tconst title = slide.getAttribute(\"data-title\") || `Slide ${index + 1}`;\n\t// \t\t\treturn `${title}`;\n\t// \t\t},\n\t// \t},\n\t// \tnavigation: {\n\t// \t\tnextEl: \".section-home-banner .btn-next\",\n\t// \t\tprevEl: \".section-home-banner .btn-prev\",\n\t// \t},\n\t// });\n\t// // Reuseable Swiper\n\t// $(\".swiper-cols-1 .swiper\").each(function () {\n\t// \tnew Swiper(this, {\n\t// \t\tslidesPerView: 1,\n\t// \t\tspaceBetween: 20,\n\t// \t\tmodules: [Navigation],\n\t// \t\tnavigation: {\n\t// \t\t\tnextEl: $(this).closest(\".swiper-cols-1\").find(\".btn-next\")[0],\n\t// \t\t\tprevEl: $(this).closest(\".swiper-cols-1\").find(\".btn-prev\")[0],\n\t// \t\t},\n\t// \t});\n\t// });\n\t// $(\".swiper-cols-2 .swiper\").each(function () {\n\t// \tnew Swiper(this, {\n\t// \t\tslidesPerView: 1,\n\t// \t\tspaceBetween: 20,\n\t// \t\tmodules: [Navigation],\n\t// \t\tnavigation: {\n\t// \t\t\tnextEl: $(this).closest(\".swiper-cols-1\").find(\".btn-next\")[0],\n\t// \t\t\tprevEl: $(this).closest(\".swiper-cols-1\").find(\".btn-prev\")[0],\n\t// \t\t},\n\t// \t\tbreakpoints: {\n\t// \t\t\t768: {\n\t// \t\t\t\tslidesPerView: 2,\n\t// \t\t\t\tspaceBetween: 40,\n\t// \t\t\t},\n\t// \t\t},\n\t// \t});\n\t// });\n\t// $(\".swiper-cols-3 .swiper\").each(function () {\n\t// \tnew Swiper(this, {\n\t// \t\tslidesPerView: 1,\n\t// \t\tspaceBetween: 20,\n\t// \t\tmodules: [Navigation],\n\t// \t\tnavigation: {\n\t// \t\t\tnextEl: $(this).closest(\".swiper-cols-3\").find(\".btn-next\")[0],\n\t// \t\t\tprevEl: $(this).closest(\".swiper-cols-3\").find(\".btn-prev\")[0],\n\t// \t\t},\n\t// \t\tbreakpoints: {\n\t// \t\t\t768: {\n\t// \t\t\t\tslidesPerView: 2,\n\t// \t\t\t},\n\t// \t\t\t1200: {\n\t// \t\t\t\tslidesPerView: 3,\n\t// \t\t\t\tspaceBetween: 40,\n\t// \t\t\t},\n\t// \t\t},\n\t// \t});\n\t// });\n\t// $(\".swiper-cols-4 .swiper\").each(function () {\n\t// \tnew Swiper(this, {\n\t// \t\tslidesPerView: 1,\n\t// \t\tspaceBetween: 20,\n\t// \t\tmodules: [Navigation],\n\t// \t\tnavigation: {\n\t// \t\t\tnextEl: $(this).closest(\".swiper-cols-4\").find(\".btn-next\")[0],\n\t// \t\t\tprevEl: $(this).closest(\".swiper-cols-4\").find(\".btn-prev\")[0],\n\t// \t\t},\n\t// \t\tbreakpoints: {\n\t// \t\t\t768: {\n\t// \t\t\t\tslidesPerView: 3,\n\t// \t\t\t},\n\t// \t\t\t1200: {\n\t// \t\t\t\tslidesPerView: 4,\n\t// \t\t\t\tspaceBetween: 40,\n\t// \t\t\t},\n\t// \t\t},\n\t// \t});\n\t// });\n\n\tswiperProjectDetail();\n\tswiperCareerDetail();\n\tswiperHomeBanner();\n\tswiperNews();\n\tswiperHome3();\n\tswiperHome7();\n\tswiperHomeBannerMobile();\n}\nfunction swiperHomeBannerMobile() {\n\tconst homeSwiperMobile = new Swiper(\".swiper-home-banner-mobile\", {\n\t\tmodules: [Autoplay, Navigation, Pagination],\n\t\tspeed: 1000,\n\t\tslidesPerView: 1,\n\t\tpagination: {\n\t\t\tel: \".swiper-pagination-mobile\",\n\t\t\tclickable: true,\n\t\t},\n\t\tautoplay: {\n\t\t\tdelay: 3000,\n\t\t\tdisableOnInteraction: false,\n\t\t},\n\t});\n}\n\nfunction swiperHome3() {\n\tconst swiperHome3 = new Swiper(\".home-3-swiper\", {\n\t\tmodules: [Autoplay, Navigation, Scrollbar, FreeMode],\n\t\tspaceBetween: 40,\n\t\tslidesPerView: 1,\n\t\tspeed: 1200,\n\t\tfreeMode: true,\n\t\tgrabCursor: true,\n\t\tloop: true,\n\t\tautoplay: {\n\t\t\tdelay: 3500,\n\t\t},\n\t\tscrollbar: {\n\t\t\tel: \".swiper-scrollbar\",\n\t\t\thide: false,\n\t\t},\n\t\tbreakpoints: {\n\t\t\t640: {\n\t\t\t\tslidesPerView: 2,\n\t\t\t\tspaceBetween: 20,\n\t\t\t},\n\t\t\t768: {\n\t\t\t\tslidesPerView: 2,\n\t\t\t\tspaceBetween: 40,\n\t\t\t},\n\t\t\t1024: {\n\t\t\t\tslidesPerView: 5,\n\t\t\t\tspaceBetween: 5,\n\t\t\t},\n\t\t\t1920: {\n\t\t\t\tslidesPerView: 5,\n\t\t\t\tspaceBetween: 5,\n\t\t\t},\n\t\t},\n\t});\n}\n\nfunction swiperHome7() {\n\tconst swiperHome3 = new Swiper(\".home-7-swiper\", {\n\t\tmodules: [Autoplay, Navigation, Scrollbar],\n\n\t\tslidesPerView: 1,\n\t\tspeed: 1200,\n\t\tgrabCursor: true,\n\t\tscrollbar: {\n\t\t\tel: \".swiper-scrollbar\",\n\t\t\thide: false,\n\t\t},\n\t\tbreakpoints: {\n\t\t\t640: {\n\t\t\t\tslidesPerView: 2,\n\t\t\t\tspaceBetween: 20,\n\t\t\t},\n\t\t\t768: {\n\t\t\t\tslidesPerView: 2,\n\t\t\t},\n\t\t\t1024: {\n\t\t\t\tslidesPerView: 3.8,\n\t\t\t},\n\t\t},\n\t});\n}\n\nfunction swiperHomeBanner() {\n\t// Check if pagination elements exist\n\tconst paginationItems = document.querySelectorAll(\".pagination-main\");\n\tif (!paginationItems || paginationItems.length === 0) return;\n\n\t// Update pagination active state\n\tfunction updatePagination(activeIndex) {\n\t\tpaginationItems.forEach((item, index) => {\n\t\t\tconst paginationItem = item.querySelector(\".pagination-item\");\n\t\t\tconst paginationName = item.querySelector(\".pagination-name\");\n\n\t\t\tif (index === activeIndex) {\n\t\t\t\tpaginationItem.classList.add(\"active\");\n\t\t\t\tpaginationName.classList.add(\"active\");\n\t\t\t} else {\n\t\t\t\tpaginationItem.classList.remove(\"active\");\n\t\t\t\tpaginationName.classList.remove(\"active\");\n\t\t\t}\n\t\t});\n\t}\n\n\t// Initialize Swiper\n\tconst homeSwiper = new Swiper(\".swiper-home-banner\", {\n\t\tmodules: [Autoplay, Navigation, EffectFade],\n\t\teffect: \"fade\",\n\t\tspeed: 1000,\n\t\tautoplay: {\n\t\t\tdelay: 5000,\n\t\t\tdisableOnInteraction: false,\n\t\t},\n\t\ton: {\n\t\t\tinit: function () {\n\t\t\t\tupdatePagination(0);\n\t\t\t},\n\t\t\tslideChange: function () {\n\t\t\t\tupdatePagination(this.realIndex);\n\t\t\t},\n\t\t},\n\t});\n\n\t// Handle pagination clicks\n\tpaginationItems.forEach((item, index) => {\n\t\titem.addEventListener(\"click\", () => {\n\t\t\thomeSwiper.slideToLoop(index);\n\t\t});\n\t});\n}\n\nfunction swiperProjectDetail() {\n\tconst swiperSingleProject = new Swiper(\".project-swiper\", {\n\t\tmodules: [Autoplay, Navigation],\n\t\tspaceBetween: 20,\n\t\tslidesPerView: 1.65,\n\t\tfreeMode: true,\n\t\tinitialSlide: 1,\n\t\tspeed: 1500,\n\t\tloop: true,\n\t\tautoplay: {\n\t\t\tdelay: 3000,\n\t\t\tdisableOnInteraction: false,\n\t\t},\n\t\tcenteredSlides: true,\n\t\tnavigation: {\n\t\t\tnextEl: \".custom-next, .btn-prev-project\",\n\t\t\tprevEl: \".custom-prev, .btn-next-project\",\n\t\t},\n\t\tbreakpoints: {\n\t\t\t640: {\n\t\t\t\tslidesPerView: 1.2,\n\t\t\t\tspaceBetween: 20,\n\t\t\t},\n\t\t\t768: {\n\t\t\t\tslidesPerView: 1.55,\n\t\t\t\tspaceBetween: 60,\n\t\t\t},\n\t\t\t1024: {\n\t\t\t\tslidesPerView: 1.55,\n\t\t\t\tspaceBetween: 60,\n\t\t\t},\n\t\t\t1920: {\n\t\t\t\tslidesPerView: 1.55,\n\t\t\t\tspaceBetween: 75,\n\t\t\t},\n\t\t},\n\t});\n\n\tconst swiperProjectDetail = new Swiper(\".project-detail-swiper\", {\n\t\tmodules: [Autoplay, Navigation],\n\t\tspaceBetween: 15,\n\t\tslidesPerView: 1,\n\t\tspeed: 1500,\n\t\tloop: true,\n\t\tautoplay: {\n\t\t\tdelay: 3000,\n\t\t\tdisableOnInteraction: false,\n\t\t},\n\t\tnavigation: {\n\t\t\tnextEl: \".project-detail-3 .btn-next\",\n\t\t\tprevEl: \".project-detail-3 .btn-prev\",\n\t\t},\n\t\tbreakpoints: {\n\t\t\t640: {\n\t\t\t\tslidesPerView: 2,\n\t\t\t\tspaceBetween: 20,\n\t\t\t},\n\t\t\t768: {\n\t\t\t\tslidesPerView: 2,\n\t\t\t\tspaceBetween: 40,\n\t\t\t},\n\t\t\t1024: {\n\t\t\t\tslidesPerView: 3,\n\t\t\t\tspaceBetween: 40,\n\t\t\t},\n\t\t\t1920: {\n\t\t\t\tslidesPerView: 3,\n\t\t\t\tspaceBetween: 40,\n\t\t\t},\n\t\t},\n\t});\n}\n\nfunction swiperCareerDetail() {\n\tconst swiperCareerDetail = new Swiper(\".career-detail-swiper\", {\n\t\tmodules: [Autoplay, Navigation],\n\t\tspaceBetween: 40,\n\t\tslidesPerView: 1,\n\t\tloop: true,\n\t\tspeed: 1200,\n\t\tautoplay: {\n\t\t\tdelay: 3000,\n\t\t\tdisableOnInteraction: false,\n\t\t},\n\t\tnavigation: {\n\t\t\tnextEl: \".btn-career-next, .btn-career-next-mobile\",\n\t\t\tprevEl: \".btn-career-prev, .btn-career-prev-mobile\",\n\t\t},\n\t\tbreakpoints: {\n\t\t\t640: {\n\t\t\t\tslidesPerView: 2,\n\t\t\t\tspaceBetween: 20,\n\t\t\t},\n\t\t\t768: {\n\t\t\t\tslidesPerView: 2,\n\t\t\t\tspaceBetween: 40,\n\t\t\t},\n\t\t\t1024: {\n\t\t\t\tslidesPerView: 3,\n\t\t\t\tspaceBetween: 40,\n\t\t\t},\n\t\t\t1920: {\n\t\t\t\tslidesPerView: 3,\n\t\t\t\tspaceBetween: 40,\n\t\t\t},\n\t\t},\n\t});\n}\n\nfunction swiperNews() {\n\tconst swiperCareerDetail = new Swiper(\".news-swiper\", {\n\t\tmodules: [Autoplay, Navigation],\n\t\tspaceBetween: 20,\n\t\tslidesPerView: 1,\n\t\tautoplay: true,\n\t\tloop: true,\n\t\tspeed: 1200,\n\t\tnavigation: {\n\t\t\tnextEl: \".btn-news-next\",\n\t\t\tprevEl: \".btn-news-prev\",\n\t\t},\n\t\tbreakpoints: {\n\t\t\t640: {\n\t\t\t\tslidesPerView: 2,\n\t\t\t\tspaceBetween: 20,\n\t\t\t},\n\t\t\t768: {\n\t\t\t\tslidesPerView: 2,\n\t\t\t\tspaceBetween: 40,\n\t\t\t},\n\t\t\t1024: {\n\t\t\t\tslidesPerView: 4,\n\t\t\t\tspaceBetween: 40,\n\t\t\t},\n\t\t\t1920: {\n\t\t\t\tslidesPerView: 4,\n\t\t\t\tspaceBetween: 40,\n\t\t\t},\n\t\t},\n\t});\n}\n","export function showMenu() {\n\tdocument.addEventListener(\"DOMContentLoaded\", function () {\n\t\tconst barBtn = document.querySelector(\".header-bar\");\n\t\tconst menu = document.querySelector(\".header-nav-mobile\");\n\n\t\tif (barBtn && menu) {\n\t\t\tbarBtn.addEventListener(\"click\", () => {\n\t\t\t\tmenu.classList.toggle(\"open\");\n\n\t\t\t\tconst icon = barBtn.querySelector(\"i\");\n\t\t\t\tif (menu.classList.contains(\"open\")) {\n\t\t\t\t\ticon.classList.remove(\"fa-bars\");\n\t\t\t\t\ticon.classList.add(\"fa-times\");\n\t\t\t\t} else {\n\t\t\t\t\ticon.classList.remove(\"fa-times\");\n\t\t\t\t\ticon.classList.add(\"fa-bars\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Enhanced Search Functionality\n\t\tconst searchBtns = document.querySelectorAll(\".header-search\");\n\t\tconst searchBtnsMobile = document.querySelectorAll(\".header-search-mobile\");\n\t\tconst searchBar = document.querySelector(\".search-bar-container\");\n\t\tconst searchMobileClose = document.querySelector(\".search-mobile-close\");\n\n\t\tif (searchBtns && searchBar && searchBtnsMobile) {\n\t\t\t// Desktop search handling\n\t\t\tsearchBtns.forEach((btn) => {\n\t\t\t\tbtn.addEventListener(\"click\", function () {\n\t\t\t\t\ttoggleSearch(btn);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// Mobile search handling\n\t\t\tsearchBtnsMobile.forEach((btn) => {\n\t\t\t\tbtn.addEventListener(\"click\", function () {\n\t\t\t\t\tsearchBar.classList.toggle(\"active\");\n\t\t\t\t\tdocument.body.classList.toggle(\"search-open\");\n\n\t\t\t\t\t// Toggle icon for mobile search\n\t\t\t\t\tconst icon = btn.querySelector(\"i\");\n\t\t\t\t\tif (searchBar.classList.contains(\"active\")) {\n\t\t\t\t\t\ticon.classList.remove(\"fa-magnifying-glass\");\n\t\t\t\t\t\ticon.classList.add(\"fa-times\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\ticon.classList.remove(\"fa-times\");\n\t\t\t\t\t\ticon.classList.add(\"fa-magnifying-glass\");\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// Mobile search close button\n\t\t\tif (searchMobileClose) {\n\t\t\t\tsearchMobileClose.addEventListener(\"click\", function () {\n\t\t\t\t\tsearchBar.classList.remove(\"active\");\n\t\t\t\t\tdocument.body.classList.remove(\"search-open\");\n\t\t\t\t\tresetSearchIcons();\n\n\t\t\t\t\t// Reset mobile search icons\n\t\t\t\t\tsearchBtnsMobile.forEach((btn) => {\n\t\t\t\t\t\tconst icon = btn.querySelector(\"i\");\n\t\t\t\t\t\ticon.classList.remove(\"fa-times\");\n\t\t\t\t\t\ticon.classList.add(\"fa-magnifying-glass\");\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Close search on overlay click\n\t\t\tsearchBar.addEventListener(\"click\", function (e) {\n\t\t\t\tif (e.target === searchBar) {\n\t\t\t\t\tsearchBar.classList.remove(\"active\");\n\t\t\t\t\tdocument.body.classList.remove(\"search-open\");\n\t\t\t\t\tresetSearchIcons();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction toggleSearch(btn) {\n\t\t\tsearchBar.classList.toggle(\"active\");\n\t\t\tconst icon = btn.querySelector(\"i\");\n\n\t\t\tif (searchBar.classList.contains(\"active\")) {\n\t\t\t\ticon.classList.remove(\"fa-magnifying-glass\");\n\t\t\t\ticon.classList.add(\"fa-times\");\n\t\t\t} else {\n\t\t\t\ticon.classList.remove(\"fa-times\");\n\t\t\t\ticon.classList.add(\"fa-magnifying-glass\");\n\t\t\t}\n\t\t}\n\n\t\tfunction resetSearchIcons() {\n\t\t\tsearchBtns.forEach((btn) => {\n\t\t\t\tconst icon = btn.querySelector(\"i\");\n\t\t\t\ticon.classList.remove(\"fa-times\");\n\t\t\t\ticon.classList.add(\"fa-magnifying-glass\");\n\t\t\t});\n\t\t}\n\t});\n}\n\nshowMenu();\n","/*! MenuSpy v1.3.0 (Jan 31 2018) - http://leocs.me/menuspy/ - Copyright (c) 2018 Leonardo Santos; MIT License */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.MenuSpy = factory());\n}(this, (function () { 'use strict';\n\nvar utils = {\n extend: function extend(a, b) {\n for (var key in b) {\n if (b.hasOwnProperty(key)) {\n a[key] = b[key];\n }\n }\n\n return a;\n },\n\n offset: function offset(el) {\n var rect = el.getBoundingClientRect();\n\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n };\n },\n\n scrollTop: function scrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop;\n },\n\n addClass: function addClass(el, className) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n var classes = el.className.split(' ');\n var existingIndex = classes.indexOf(className);\n\n if (existingIndex === -1) {\n classes.push(className);\n }\n\n el.className = classes.join(' ');\n }\n },\n\n removeClass: function removeClass(el, className) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp((\"(^|\\\\b)\" + (className.split(' ').join('|')) + \"(\\\\b|$)\"), 'gi'), ' ');\n }\n },\n\n debounce: function debounce(fn, delay) {\n var timeout = null;\n return function() {\n var args = arguments;\n var context = this;\n if (!timeout) {\n timeout = setTimeout(function () {\n timeout = 0;\n return fn.apply(context, args);\n }, delay);\n }\n };\n }\n};\n\nvar MenuSpy = function MenuSpy(element, options) {\n var this$1 = this;\n\n if (!element) {\n return;\n }\n\n var defaults = {\n menuItemSelector : 'a[href^=\"#\"]',\n activeClass : 'active',\n threshold : 15,\n enableLocationHash : true,\n hashTimeout : 600,\n callback : null\n };\n\n this.element = typeof element === 'string' ? document.querySelector(element) : element;\n this.options = utils.extend(defaults, options);\n\n this.assignValues();\n this.debouncedAssignValuesFn = utils.debounce(function () { return this$1.assignValues(); });\n window.addEventListener('resize', this.debouncedAssignValuesFn);\n\n this.debouncedHashFn = utils.debounce(function () {\n var hash = this$1.lastInViewElm ? (\"#\" + (this$1.lastInViewElm.id)) : '#';\n if (history.replaceState) {\n history.replaceState(null, null, hash);\n } else {\n var st = utils.scrollTop();\n window.location.hash = hash;\n window.scrollTo(0, st);\n }\n }, this.options.hashTimeout);\n\n this.cacheItems();\n this.scrollFn();\n};\n\nMenuSpy.prototype.assignValues = function assignValues () {\n this.currScrollTop = 0;\n this.lastInViewElm = null;\n this.menuHeight = this.element.offsetHeight + this.options.threshold;\n this.menuItems = [].slice.call(this.element.querySelectorAll(this.options.menuItemSelector));\n this.raf = null;\n};\n\nMenuSpy.prototype.cacheItems = function cacheItems () {\n this.scrollItems = this.menuItems.map(function (elm) {\n var target = elm.dataset.target ? document.querySelector(elm.dataset.target) : document.getElementById(elm.hash.slice(1));\n if (target) {\n var offset = Math.floor(utils.offset(target).top);\n return { elm: elm, target: target, offset: offset };\n }\n return false;\n });\n this.scrollItems = this.scrollItems.filter(Boolean).sort(function (a, b) { return a.offset - b.offset; });\n};\n\nMenuSpy.prototype.tick = function tick () {\n var fromTop = this.currScrollTop + this.menuHeight;\n var inViewElms = this.scrollItems.filter(function (item) { return item.offset < fromTop; });\n this.activateItem(inViewElms.pop());\n};\n\nMenuSpy.prototype.activateItem = function activateItem (inViewElm) {\n var this$1 = this;\n\n var ref = this.options;\n var activeClass = ref.activeClass;\n var callback = ref.callback;\n\n if (!inViewElm) {\n this.scrollItems.forEach(function (item) { return utils.removeClass(item.elm.parentNode, activeClass); });\n this.lastInViewElm = null;\n\n if (this.options.enableLocationHash) {\n this.debouncedHashFn();\n }\n\n return;\n }\n\n if (this.lastInViewElm !== inViewElm.target) {\n this.lastInViewElm = inViewElm.target;\n\n this.scrollItems.forEach(function (item) {\n utils.removeClass(item.elm.parentNode, activeClass);\n\n if (item.target === inViewElm.target) {\n utils.addClass(item.elm.parentNode, activeClass);\n\n if (typeof callback === 'function') {\n callback.call(this$1, item);\n }\n\n if (this$1.options.enableLocationHash) {\n this$1.debouncedHashFn();\n }\n }\n });\n }\n};\n\nMenuSpy.prototype.scrollFn = function scrollFn () {\n var st = utils.scrollTop();\n\n if (this.currScrollTop !== st) {\n this.currScrollTop = st;\n this.tick();\n }\n\n this.raf = window.requestAnimationFrame(this.scrollFn.bind(this));\n};\n\nMenuSpy.prototype.destroy = function destroy () {\n if (this.raf) {\n window.cancelAnimationFrame(this.raf);\n }\n\n window.removeEventListener('resize', this.debouncedAssignValuesFn);\n};\n\nreturn MenuSpy;\n\n})));\n","import AOS from \"aos\";\nimport lozad from \"lozad\";\nimport { setBackgroundElement, detectCloseElement, buttonToTop, clickScrollToDiv, appendCaptchaASP, ToggleItem, countUpInit } from \"./helper\";\n\nimport { header } from \"./header\";\nimport { swiperInit } from \"./swiper\";\n\nimport { showMenu } from \"./header-menu\";\nimport menuspy from \"menuspy\";\n$(document).ready(function () {\n\tsetBackgroundElement();\n\theader.init();\n\tswiperInit();\n\tshowMenu();\n\tToggleItem();\n\tcountUpInit();\n\tinitMenuSpy();\n\thoverItemHome8();\n\ttabsletSubContent();\n\thoverHome6Item();\n\tloadMoreTableItem();\n\twindow.resizeIframe = resizeIframe;\n\twatchObserveInputFile();\n});\nfunction watchObserveInputFile() {\n\t$(\".attachfile1 input.ruFileInput\").on(\"change\", function () {\n\t\tconsole.log(\"🚀 ~ watchObserveInputFile ~ this:\", this);\n\t\tconst file = this.files[0];\n\t\tif (file) {\n\t\t\tconst fileName = file.name;\n\t\t\t// Create/update filename display\n\t\t\tconst fileNameDisplay = $(\"\", {\n\t\t\t\tclass: \"file-name text-sm text-body-text-66 mt-1 block\",\n\t\t\t\ttext: \"File CV: \" + fileName,\n\t\t\t});\n\n\t\t\t// Remove existing filename display if any\n\t\t\t$(this).closest(\".attachfile1\").find(\".file-name\").remove();\n\t\t\t// Add new filename display\n\t\t\t$(this).closest(\".attachfile1\").append(fileNameDisplay);\n\t\t}\n\t});\n}\nfunction resizeIframe(iframe) {\n\tconsole.log(\"resize Iframe\");\n\tiframe.height = iframe.contentWindow.document.body.scrollHeight + 100 + \"px\";\n}\nfunction loadMoreTableItem() {\n\tconst $tableRows = $(\".career-detail-4-table>tbody>tr\");\n\tlet visibleCount = 12;\n\tconst loadStep = 5;\n\tconst $loadMoreBtn = $(\".btn-load-more-career\");\n\n\t$tableRows.slice(visibleCount).hide();\n\n\t// Hide load more button initially if not enough rows\n\tif ($tableRows.length <= visibleCount) {\n\t\t$loadMoreBtn.hide();\n\t}\n\n\t$loadMoreBtn.on(\"click\", function (e) {\n\t\te.preventDefault();\n\t\tconst nextVisible = visibleCount + loadStep;\n\t\t$tableRows.slice(visibleCount, nextVisible).show();\n\t\tvisibleCount = nextVisible;\n\t\tif (visibleCount >= $tableRows.length) {\n\t\t\t$(this).hide();\n\t\t}\n\t});\n}\nfunction hoverHome6Item() {\n\tif (window.matchMedia(\"(min-width: 1024px)\").matches) {\n\t\t$(\".home-6-item:first\").addClass(\"active\");\n\t\t$(\".home-6-item\").hover(function () {\n\t\t\t$(\".home-6-item\").removeClass(\"active\");\n\t\t\t$(this).addClass(\"active\");\n\t\t});\n\t\t$(\".home-6-list\").on(\"mouseleave\", function () {\n\t\t\t$(\".home-6-item\").removeClass(\"active\");\n\t\t\t$(\".home-6-item:first\").addClass(\"active\");\n\t\t});\n\t}\n}\n\nfunction tabsletSubContent() {\n\t// Handle click on tab links\n\t$(\".wrap-button-sub .buiding-button a\").on(\"click\", function (e) {\n\t\te.preventDefault();\n\n\t\t// Get target tab ID from href\n\t\tconst targetId = $(this).attr(\"href\");\n\t\tconsole.log(\"🚀 ~ targetId:\", targetId);\n\n\t\t// Hide all tab content\n\t\t$(\".wrap-tab-sub > div\").hide();\n\n\t\t// Show target tab content\n\t\t$(`.wrap-tab-sub ${targetId}`).show();\n\n\t\t// Update active for button next\n\t\tconst $nextButton = $(this).closest(\".buiding-button\").next(\".buiding-button\");\n\t\tconst $prevButton = $(this).closest(\".buiding-button\").prev(\".buiding-button\");\n\t\tif ($nextButton.length > 0) {\n\t\t\t$nextButton.show();\n\t\t\t$(this).closest(\".buiding-button\").hide();\n\t\t} else {\n\t\t\t$prevButton.show();\n\t\t\t$prevButton.addClass(\"is-state-prev\");\n\t\t\t$(this).closest(\".buiding-button\").hide();\n\t\t}\n\t});\n}\n\nfunction hoverItemHome8() {\n\t// Initially show first image and hide others\n\t$(\".circle-image img:first\").addClass(\"opacity-100 visible\").removeClass(\"invisible opacity-0\");\n\t$(\".circle-image img:not(:first)\").addClass(\"invisible opacity-0\").removeClass(\"opacity-100 visible\");\n\n\t// Initially activate first quarter\n\tconst $firstQuarter = $(\".circle-quarter-top-left\");\n\t$firstQuarter.addClass(\"active\");\n\t$firstQuarter.find(\".item-circle-text\").addClass(\"active\");\n\n\t// Handle hover on quarters\n\t$('.circle-border [class^=\"circle-quarter\"]').hover(function () {\n\t\t// Mouse enter\n\t\tconst targetIndex = $(this).data(\"index\");\n\n\t\t// Remove active states from all quarters\n\t\t$('.circle-border [class^=\"circle-quarter\"]').removeClass(\"active\");\n\t\t$(\".item-circle-text\").removeClass(\"active\");\n\n\t\t// Add active state to current quarter\n\t\t$(this).addClass(\"active\");\n\t\t$(this).find(\".item-circle-text\").addClass(\"active\");\n\n\t\t// Hide all images first\n\t\t$(\".circle-image img\").addClass(\"invisible opacity-0\").removeClass(\"opacity-100 visible\");\n\n\t\t// Show corresponding image\n\t\t$(`.circle-image img[data-index=\"${targetIndex}\"]`).addClass(\"opacity-100 visible\").removeClass(\"invisible opacity-0\");\n\t});\n}\n\n$(\".tabs\").tabslet({\n\tactive: 2,\n\tanimation: true,\n});\n$(\".tabs-secondary\").tabslet({\n\tanimation: true,\n});\n\nfunction initMenuSpy() {\n\tif ($(\"#main-company\").length > 0) {\n\t\tvar elm = document.querySelector(\"#main-company\");\n\t\tvar ms = new menuspy(elm, {\n\t\t\tactiveClass: \"current-item\",\n\t\t\tthreshold: 160,\n\t\t});\n\t}\n}\n\n// Home-4 section hover effects\n$(document).ready(function () {\n\t// Initially show first image and activate first item\n\t$(\"#image-1\").removeClass(\"invisible opacity-0\").addClass(\"opacity-100 visible\");\n\tconst $firstItem = $(\".home-4-left\").first();\n\n\t// Set active styles for first item\n\t$firstItem.find(\"h3\").css(\"color\", \"#150f96\");\n\t$firstItem.find(\".home-4-left-item\").css(\"borderTopColor\", \"#150f96\");\n\n\t// Show content of first item\n\t$firstItem.find(\".home-4-left-item-content\").removeClass(\"h-0 opacity-0 invisible\").addClass(\"h-auto visible opacity-100 mt-5\");\n\n\t// Handle hover on .home-4-left-item\n\t$(\".home-4-left-item\").hover(function () {\n\t\tconst $currentItem = $(this);\n\t\tconst $parentGroup = $currentItem.closest(\".group\");\n\t\tconst targetImage = $parentGroup.data(\"target\");\n\n\t\t// Check if the current item is already active\n\t\tif ($currentItem.hasClass(\"active\")) {\n\t\t\treturn; // Don't change anything if it's already active\n\t\t}\n\n\t\t// Remove active styles from all items\n\t\t$(\".home-4-left-item\").removeClass(\"active\").css(\"color\", \"\").css(\"borderTopColor\", \"\");\n\t\t$(\".home-4-left-item-content\").addClass(\"h-0 opacity-0 invisible\").removeClass(\"h-auto visible opacity-100 mt-5\");\n\n\t\t$(\".home-4-right\").addClass(\"invisible opacity-0\").removeClass(\"opacity-100 visible\");\n\n\t\t// Add active styles to the current item\n\t\t$currentItem.addClass(\"active\").css(\"color\", \"#150f96\");\n\t\t$currentItem.css(\"borderTopColor\", \"#150f96\");\n\n\t\t// Update images\n\t\t$(`#${targetImage}`).removeClass(\"invisible opacity-0\").addClass(\"opacity-100 visible\");\n\n\t\t// Show content of current item\n\t\tconst $content = $currentItem.find(\".home-4-left-item-content\");\n\t\t$content.removeClass(\"h-0 opacity-0 invisible\").addClass(\"h-auto visible opacity-100 mt-5\");\n\t});\n});\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n\tif (document.querySelector(\".item-toggle\")) {\n\t\tconst firstItem = document.querySelector(\".item-toggle\"); // Lấy phần tử đầu tiên\n\t\tfirstItem.classList.add(\"active\"); // Thêm lớp \"active\" cho phần tử đầu tiên\n\n\t\tconst firstContent = firstItem.querySelector(\".content\"); // Lấy phần content đầu tiên\n\t\tfirstContent.style.display = \"flex\"; // Hiển thị content đầu tiên\n\t}\n});\n\n/*==================== Aos Init ====================*/\nAOS.init({\n\toffset: 100,\n});\n/*==================== Lazyload JS ====================*/\nconst observer = lozad(); // lazy loads elements with default selector as '.lozad'\nobserver.observe();\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n\tFancybox.bind(\"[data-fancybox]\", {\n\t\tdragToClose: false,\n\t\tbackdropClick: false,\n\t\ttemplate: {\n\t\t\tcloseButton: '',\n\t\t},\n\t});\n});\n","import { CountUp } from \"countup.js\";\n\nexport function setBackgroundElement() {\n\t$(\"[setBackground]\").each(function () {\n\t\tvar background = $(this).attr(\"setBackground\");\n\t\t$(this).css({\n\t\t\t\"background-image\": \"url(\" + background + \")\",\n\t\t\t\"background-size\": \"cover\",\n\t\t\t\"background-position\": \"center center\",\n\t\t});\n\t});\n}\nexport function detectCloseElement(ele, ele2, funcRemove) {\n\t// close\n\t$(document).on(\"click\", function (e) {\n\t\tconsole.log();\n\t\tif (!$(e.target).closest(ele).length && !$(e.target).hasClass(ele2)) {\n\t\t\tfuncRemove();\n\t\t}\n\t});\n\t// esc\n\t$(document).keyup(function (e) {\n\t\tif (e.key === \"Escape\") {\n\t\t\tfuncRemove();\n\t\t}\n\t});\n\t// overlay-blur\n}\nexport function buttonToTop() {\n\tlet windowHeight = $(window).height();\n\t$(document).on(\"scroll\", function () {\n\t\tlet scrollTop = $(window).scrollTop();\n\t\tlet documentHeight = $(document).height();\n\t\tif (scrollTop + windowHeight > documentHeight - windowHeight) {\n\t\t\t$(\".button-to-top\").addClass(\"active\");\n\t\t} else {\n\t\t\t$(\".button-to-top\").removeClass(\"active\");\n\t\t}\n\t});\n\t$(document).on(\"click\", \".button-to-top\", function () {\n\t\t$(\"html, body\").animate({ scrollTop: 0 });\n\t});\n}\n\nexport function ToggleItem() {\n\tconst nodeParent = $(\".wrap-item-toggle\");\n\tconst nodeItem = nodeParent.find(\".item-toggle\");\n\tconst nodeTitle = nodeItem.find(\".title\");\n\tnodeTitle.on(\"click\", function () {\n\t\tconst $itemToggle = $(this).closest(\".item-toggle\");\n\n\t\t// Thêm/xóa class active vào item-toggle (phần tử cha) thay vì title\n\t\t$itemToggle\n\t\t\t.toggleClass(\"active\")\n\t\t\t.find(\".content\")\n\t\t\t.slideToggle()\n\t\t\t.end()\n\t\t\t.siblings()\n\t\t\t.removeClass(\"active\")\n\t\t\t.find(\".content\")\n\t\t\t.slideUp();\n\t});\n}\n\n/**\n * parent, children, item, button, initItem\n * @param { parent, children, item, button, initItem} listNode\n */\nexport function funcExpandContent(listNode) {\n\tconst { parent, children, item, button, initItem, gap = 0 } = listNode;\n\tif (!$(parent).length) return;\n\tlet itemHeight = $(item).outerHeight();\n\tlet gapCalculate = gap\n\t\t? Number($(parent).find(children).css(\"column-gap\").slice(0, -2)) * gap\n\t\t: 0;\n\tlet initHeight = itemHeight * initItem + gapCalculate;\n\tlet originalHeight = $(parent).find(children).outerHeight();\n\tif (originalHeight < initHeight) {\n\t\t$(button).remove();\n\t} else {\n\t\t$(parent).css(\"height\", initHeight);\n\t}\n\t$(button).on(\"click\", function () {\n\t\tif ($(this).hasClass(\"expand\")) {\n\t\t\t$(parent).css(\"height\", initHeight);\n\t\t\t$(this).find(\"span\").text(\"Xem thêm\");\n\t\t} else {\n\t\t\t$(parent).css(\"height\", originalHeight);\n\t\t\t// setTimeout(() => {\n\t\t\t// \t$(parent).css(\"height\", \"auto\");\n\t\t\t// }, 1000);\n\t\t\t$(this).find(\"span\").text(\"Rút gọn\");\n\t\t}\n\t\t$(this).toggleClass(\"expand\");\n\t});\n}\n\nexport function clickScrollToDiv(nodeEle, heightSpacing = () => {}) {\n\t$(nodeEle).on(\"click\", function (event) {\n\t\tlet height = 0;\n\t\t$(this).addClass(\"active\").siblings().removeClass(\"active\");\n\t\tif (heightSpacing) {\n\t\t\theight = heightSpacing();\n\t\t} else {\n\t\t\theight = 0;\n\t\t}\n\t\tif (this.hash !== \"\") {\n\t\t\tevent.preventDefault();\n\t\t\tvar hash = this.hash;\n\t\t\t$(\"html, body\").animate(\n\t\t\t\t{\n\t\t\t\t\tscrollTop: $(hash).offset().top - height,\n\t\t\t\t},\n\t\t\t\t800\n\t\t\t);\n\t\t}\n\t});\n}\n\nexport function appendCaptchaASP() {\n\tif (!$(\"#ctl00_mainContent_ctl01_pnlFormWizard\").length) return;\n\t// Select the div element you want to observe\n\tconst myDiv = document.querySelector(\"#ctl00_mainContent_ctl01_pnlFormWizard\");\n\t// Create a new MutationObserver object\n\tconst observer = new MutationObserver(function (mutations) {\n\t\tmutations.forEach(function (mutation) {\n\t\t\tconsole.log(\"Run\");\n\t\t\tappendCaptcha();\n\t\t});\n\t});\n\t// Configure the observer to listen for changes to the \"class\" attribute\n\tconst config = { attributes: true, characterData: true, childList: true };\n\t// Start observing the target div element\n\tobserver.observe(myDiv, config);\n\tfunction appendCaptcha() {\n\t\t$(\".form-group.frm-captcha\").appendTo(\".wrap-form-submit\");\n\t\t$(\".form-group.frm-btnwrap\").appendTo(\".wrap-form-submit\");\n\t}\n\tappendCaptcha();\n}\nexport function replaceSvgImages() {\n\t$(\".img-svg\").each(function () {\n\t\tconst $img = $(this);\n\t\tconst imgURL = $img.attr(\"src\");\n\t\tconst imgClass = $img.attr(\"class\");\n\t\tconst imgWidth = $img.attr(\"width\");\n\t\tconst imgHeight = $img.attr(\"height\");\n\n\t\t$.ajax({\n\t\t\turl: imgURL,\n\t\t\tdataType: \"text\",\n\t\t\tsuccess: function (svgContent) {\n\t\t\t\t// Create a new div to hold the SVG content\n\t\t\t\tconst $svgDiv = $(\"
\").html(svgContent);\n\t\t\t\tconst $svg = $svgDiv.find(\"svg\");\n\n\t\t\t\t// Apply original image attributes to SVG\n\t\t\t\tif (imgClass) {\n\t\t\t\t\t$svg.addClass(imgClass);\n\t\t\t\t}\n\n\t\t\t\t// Replace the image with the SVG\n\t\t\t\t$img.replaceWith($svg);\n\t\t\t},\n\t\t\terror: function (error) {\n\t\t\t\tconsole.error(\"Error fetching SVG:\", error);\n\t\t\t},\n\t\t});\n\t});\n}\nexport function indicatorSlide() {\n\tif ($(\".indicator-swipe\").length > 0) {\n\t\tvar callback = function (entries) {\n\t\t\tentries.forEach(function (entry) {\n\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\tentry.target.classList.add(\"active\");\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\tentry.target.classList.remove(\"active\");\n\t\t\t\t\t}, 3000);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tvar observer = new IntersectionObserver(callback);\n\t\tvar animationItems = document.querySelectorAll(\".indicator-swipe\");\n\t\tanimationItems.forEach(function (item) {\n\t\t\tobserver.observe(item);\n\t\t});\n\t}\n}\nexport function countUpInit() {\n\tconst countUpElements = document.querySelectorAll(\".countup\");\n\tlet countUp;\n\tcountUpElements.forEach((element) => {\n\t\tconst targetNumber = element.getAttribute(\"data-number\");\n\t\t// Check if number is decimal values\n\t\t// const is_decimal = targetNumber?.includes(\".\");\n\t\tcountUp = new CountUp(element, targetNumber, {\n\t\t\tduration: 4,\n\t\t\tseparator: \".\",\n\t\t\tdecimal: \",\",\n\t\t\tenableScrollSpy: true,\n\t\t\tsuffix: \"+\",\n\t\t\t// decimalPlaces: is_decimal ? 2 : 0,\n\t\t});\n\t\tif (!countUp.error) {\n\t\t\tcountUp.start();\n\t\t} else {\n\t\t\tconsole.error(countUp.error);\n\t\t}\n\t});\n\treturn {\n\t\treset: () => {\n\t\t\tcountUp.reset();\n\t\t},\n\t\tstart: () => {\n\t\t\tcountUp.start();\n\t\t},\n\t};\n}\n"]}