{"version":3,"sources":["main.min.js","node_modules/aos/dist/aos.js","node_modules/lozad/dist/lozad.es.js","src/js/helper.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/autoplay.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/main.js","src/js/swiper.js"],"names":["global","factory","exports","module","define","amd","self","main","this","globalThis","window","aos","createCommonjsModule","fn","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","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","$","each","prop","animate","Counter","text","step","ceil","width","header","scrollActive","height","addClass","removeClass","on","toggleClass","headerSearch","closeSearch","focus","keyup","hasClass","log","target","closest","is","isObject","obj","extend","keys","jQuery","next","slideToggle","parent","siblings","find","slideUp","$subMenu","not","ssrDocument","body","removeEventListener","activeElement","blur","getElementById","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","requestAnimationFrame","callback","cancelAnimationFrame","getWindow","win","nextTick","getTranslate","el","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","parseFloat","m42","to","undefined","noExtend","nextSource","HTMLElement","nodeType","keysArray","filter","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","getTime","progress","easeProgress","cos","PI","currentPosition","scrollTo","overflow","getSlideTransformEl","slideEl","shadowRoot","elementChildren","matches","showWarning","warn","err","tag","classes","isArray","classesToTokens","trim","elementStyle","elementIndex","child","previousSibling","elementParents","parents","parentElement","push","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","String","includes","major","minor","num","Number","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","activeIndex","grid","rows","activeColumn","preloadColumns","from","column","slideIndexLastInView","rewind","loop","realIndex","update","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","abs","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","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","preventDefault","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","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","resizeObserver","createElements","eventsPrefix","url","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","extendParams","moduleParamName","moduleParams","auto","prototypes","transition","transitionDuration","transitionDelay","moving","isLocked","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","points","point","minRatio","sort","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","prepareClasses","entries","prefix","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","getWrapper","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","suffix","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","innerHTML","render","paginationHTML","numberOfBullets","Autoplay","timeout","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","start","stop","pause","reset","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","effectTarget","effectParams","transformEl","backfaceVisibility","effectVirtualTransitionEnd","transformElements","allSlides","transitionEndTarget","eventTriggered","getSlide","elementTransitionEnd","fireCallBack","EffectFade","fadeEffect","crossFade","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","requireUpdateOnVirtual","overwriteParamsResult","slideShadows","shadowEl","tx","ty","slideOpacity","opacity","replaceSvgImages","$img","imgURL","attr","imgClass","ajax","dataType","success","svgContent","$svg","html","replaceWith","error","prototypeGroup","protoMethod","use","Resize","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","unobserve","Observer","observers","attach","options","WebkitMutationObserver","mutations","observerUpdate","attributes","characterData","observeParents","observeSlideChildren","containerParents","disconnect","setBackgroundElement","background","css","swiperInit","swiper4","watchSlidesVisibility","nameVariable","FAQ","slideDown","$mainFaq","appendCaptchaASP","myDiv","mutation","appendCaptcha","appendTo","clickSvg","open","buttonToTop","fadeIn","fadeOut","click","lozad","IntersectionObserver","onIntersection","entry","intersectionRatio","isIntersecting","elements","triggerLoad","modal","openModalButton","closeModalButtons"],"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","export function setBackgroundElement() {\r\n $(\"[setBackground]\").each(function () {\r\n var background = $(this).attr(\"setBackground\");\r\n $(this).css({\r\n \"background-image\": \"url(\" + background + \")\",\r\n \"background-size\": \"cover\",\r\n \"background-position\": \"center center\",\r\n });\r\n });\r\n}\r\nexport function detectCloseElement(ele, ele2, funcRemove) {\r\n // close\r\n $(document).on(\"click\", function (e) {\r\n console.log();\r\n if (!$(e.target).closest(ele).length && !$(e.target).hasClass(ele2)) {\r\n funcRemove();\r\n }\r\n });\r\n // esc\r\n $(document).keyup(function (e) {\r\n if (e.key === \"Escape\") {\r\n funcRemove();\r\n }\r\n });\r\n // overlay-blur\r\n}\r\nexport function buttonToTop() {\r\n $(document).on(\"scroll\", function () {\r\n if ($(this).scrollTop()) {\r\n $(\"#backtop\").fadeIn();\r\n } else {\r\n $(\"#backtop\").fadeOut();\r\n }\r\n });\r\n $(\"#backtop\").click(function () {\r\n $(\"html, body\").animate(\r\n {\r\n scrollTop: 0,\r\n },\r\n \"fast\"\r\n );\r\n });\r\n}\r\n\r\nexport function ToggleItem() {\r\n const nodeParent = $(\".wrap-item-toggle\");\r\n const nodeItem = nodeParent.find(\".item-toggle\");\r\n const nodeTitle = nodeItem.find(\".title\");\r\n nodeTitle.on(\"click\", function () {\r\n $(this)\r\n .toggleClass(\"active\")\r\n .next()\r\n .slideToggle()\r\n .closest(\".item-toggle\")\r\n .siblings()\r\n .find(\".title\")\r\n .removeClass(\"active\")\r\n .next()\r\n .slideUp();\r\n });\r\n}\r\n\r\n/**\r\n * parent, children, item, button, initItem\r\n * @param { parent, children, item, button, initItem} listNode\r\n */\r\nexport function funcExpandContent(listNode) {\r\n const { parent, children, item, button, initItem, gap = 0 } = listNode;\r\n if (!$(parent).length) return;\r\n let itemHeight = $(item).outerHeight();\r\n let gapCalculate = gap\r\n ? Number($(parent).find(children).css(\"column-gap\").slice(0, -2)) * gap\r\n : 0;\r\n let initHeight = itemHeight * initItem + gapCalculate;\r\n let originalHeight = $(parent).find(children).outerHeight();\r\n if (originalHeight < initHeight) {\r\n $(button).remove();\r\n } else {\r\n $(parent).css(\"height\", initHeight);\r\n }\r\n $(button).on(\"click\", function () {\r\n if ($(this).hasClass(\"expand\")) {\r\n $(parent).css(\"height\", initHeight);\r\n $(this).find(\"span\").text(\"Xem thêm\");\r\n } else {\r\n $(parent).css(\"height\", originalHeight);\r\n // setTimeout(() => {\r\n // \t$(parent).css(\"height\", \"auto\");\r\n // }, 1000);\r\n $(this).find(\"span\").text(\"Rút gọn\");\r\n }\r\n $(this).toggleClass(\"expand\");\r\n });\r\n}\r\n\r\nexport function clickScrollToDiv(nodeEle, heightSpacing = () => {}) {\r\n $(nodeEle).on(\"click\", function (event) {\r\n let height = 0;\r\n $(this).addClass(\"active\").siblings().removeClass(\"active\");\r\n if (heightSpacing) {\r\n height = heightSpacing();\r\n } else {\r\n height = 0;\r\n }\r\n if (this.hash !== \"\") {\r\n event.preventDefault();\r\n var hash = this.hash;\r\n $(\"html, body\").animate(\r\n {\r\n scrollTop: $(hash).offset().top - height,\r\n },\r\n 800\r\n );\r\n }\r\n });\r\n}\r\n\r\nexport function appendCaptchaASP() {\r\n if (!$(\"#ctl00_mainContent_ctl01_pnlFormWizard\").length) return;\r\n // Select the div element you want to observe\r\n const myDiv = document.querySelector(\r\n \"#ctl00_mainContent_ctl01_pnlFormWizard\"\r\n );\r\n // Create a new MutationObserver object\r\n const observer = new MutationObserver(function (mutations) {\r\n mutations.forEach(function (mutation) {\r\n console.log(\"Run\");\r\n appendCaptcha();\r\n });\r\n });\r\n // Configure the observer to listen for changes to the \"class\" attribute\r\n const config = { attributes: true, characterData: true, childList: true };\r\n // Start observing the target div element\r\n observer.observe(myDiv, config);\r\n function appendCaptcha() {\r\n $(\".form-group.frm-captcha\").appendTo(\".wrap-form-submit\");\r\n $(\".form-group.frm-btnwrap\").appendTo(\".wrap-form-submit\");\r\n }\r\n appendCaptcha();\r\n}\r\n\r\n$(\".number\").each(function () {\r\n $(this)\r\n .prop(\"Counter\", 0)\r\n .animate(\r\n {\r\n Counter: $(this).text(),\r\n },\r\n {\r\n duration: 2500,\r\n easing: \"swing\",\r\n step: function (now) {\r\n $(this).text(Math.ceil(now));\r\n $(this).text(\r\n $(this)\r\n .text()\r\n .replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\")\r\n );\r\n },\r\n }\r\n );\r\n});\r\n","import { headerSearch } from \"../../plugins/ComponentsUi/HeaderSearch/HeaderSearch\";\r\nimport { detectCloseElement } from \"./helper\";\r\n/*==================== Header ====================*/\r\n/**\r\n * @param header\r\n */\r\nconst vw = $(window).width();\r\nexport const header = {\r\n scrollActive: function () {\r\n let height = $(\"header\").height();\r\n if ($(window).scrollTop() > height) {\r\n $(\"header\").addClass(\"active\");\r\n } else {\r\n $(\"header\").removeClass(\"active\");\r\n }\r\n },\r\n mobile: function () {\r\n $(\".header-hambuger\").on(\"click\", function () {\r\n $(\"body\").toggleClass(\"openMenuMobile\");\r\n });\r\n },\r\n init: function () {\r\n headerSearch();\r\n header.scrollActive();\r\n header.mobile();\r\n },\r\n};\r\n\r\njQuery(document).ready(function () {\r\n $(\".header-menu .title.has-sub\").on(\"click\", function () {\r\n const $subMenu = $(this).next(\".nav-sub\");\r\n $subMenu\r\n .slideToggle()\r\n .parent()\r\n .toggleClass(\"active\")\r\n .siblings()\r\n .removeClass(\"active\")\r\n .find(\".nav-sub\")\r\n .slideUp();\r\n });\r\n $(\".header-menu li i\").on(\"click\", function () {\r\n const $subMenu = $(this).next(\".nav-sub\");\r\n if ($subMenu.length) {\r\n $(\".nav-sub.active\").not($subMenu).removeClass(\"active\");\r\n $subMenu.toggleClass(\"active\");\r\n }\r\n });\r\n $(document).on(\"click\", function (e) {\r\n if (!$(e.target).closest(\".header-menu li i, .nav-sub\").length) {\r\n $(\".nav-sub.active\").removeClass(\"active\");\r\n }\r\n });\r\n});\r\n\r\ndocument.addEventListener(\r\n \"scroll\",\r\n function (e) {\r\n header.scrollActive();\r\n },\r\n true\r\n);\r\n","export function headerSearch() {\r\n\tfunction closeSearch() {\r\n\t\t$(\".header-search-form\").removeClass(\"active\");\r\n\t\t$(\"body\").removeClass(\"disable\");\r\n\t}\r\n\t$(\".header-search\").on(\"click\", function () {\r\n\t\t$(\".header-search-form\").addClass(\"active\");\r\n\t\t$(\"body\").addClass(\"disable\");\r\n\t\tsetTimeout(() => {\r\n\t\t\t$(\".header-search-form .searchinput\").focus();\r\n\t\t}, 400);\r\n\t});\r\n\t$(\".header-search-form .close\").on(\"click\", function () {\r\n\t\tcloseSearch();\r\n\t});\r\n\t$(document).keyup(function (e) {\r\n\t\tif (e.key === \"Escape\") {\r\n\t\t\tcloseSearch();\r\n\t\t}\r\n\t});\r\n\t$(document).on(\"click\", function (e) {\r\n\t\tif ($(\".header-search-form\").hasClass(\"active\")) {\r\n\t\t\tconsole.log(e.target);\r\n\t\t\tif (!$(e.target).closest(\".productsearchbox\").length && !$(e.target).is('.header-search')) {\r\n\t\t\t\tcloseSearch();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, elementIndex as g, classesToTokens as h, getTranslate as i, elementTransitionEnd as j, isObject as k, getSlideTransformEl as l, elementStyle as m, nextTick as n, elementNextAll as o, elementPrevAll as p, animateCSSModeScroll as q, showWarning as r, setCSSProperty as s, extend as t, deleteProps as u };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, m as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, o as elementNextAll, p as elementPrevAll, i as getTranslate, q as animateCSSModeScroll, n as nextTick, r as showWarning, c as createElement, d as now, t as extend, g as elementIndex, u as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n if (isFullyVisible) {\n slides[i].classList.add(params.slideFullyVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n if (gridEnabled) {\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n } else {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n }\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { f as elementOuterSize, g as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","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 AOS from \"aos\";\r\nimport lozad from \"lozad\";\r\nimport {\r\n setBackgroundElement,\r\n detectCloseElement,\r\n buttonToTop,\r\n clickScrollToDiv,\r\n appendCaptchaASP,\r\n} from \"./helper\";\r\nimport { header } from \"./header\";\r\nimport swiperInit from \"./swiper\";\r\n$(document).ready(function () {\r\n setBackgroundElement();\r\n header.init();\r\n swiperInit();\r\n FAQ();\r\n appendCaptchaASP();\r\n replaceSvgImages();\r\n clickSvg();\r\n buttonToTop();\r\n});\r\nfunction clickSvg() {\r\n $(\"body\").on(\"click\", \".ele-hover\", function (e) {\r\n e.stopPropagation();\r\n const href = $(this).data(\"href\");\r\n window.open(href, \"_self\");\r\n });\r\n}\r\n\r\nexport function replaceSvgImages() {\r\n $(\".img-svg\").each(function () {\r\n const $img = $(this);\r\n const imgURL = $img.attr(\"src\");\r\n const imgClass = $img.attr(\"class\");\r\n const imgWidth = $img.attr(\"width\");\r\n const imgHeight = $img.attr(\"height\");\r\n\r\n $.ajax({\r\n url: imgURL,\r\n dataType: \"text\",\r\n success: function (svgContent) {\r\n // Create a new div to hold the SVG content\r\n const $svgDiv = $(\"
\").html(svgContent);\r\n const $svg = $svgDiv.find(\"svg\");\r\n\r\n // Apply original image attributes to SVG\r\n if (imgClass) {\r\n $svg.addClass(imgClass);\r\n }\r\n\r\n // Replace the image with the SVG\r\n $img.replaceWith($svg);\r\n },\r\n error: function (error) {\r\n console.error(\"Error fetching SVG:\", error);\r\n },\r\n });\r\n });\r\n}\r\n\r\n/*==================== Aos Init ====================*/\r\nAOS.init({\r\n offset: 100,\r\n});\r\n\r\n/*==================== FAQ =================*/\r\nfunction FAQ() {\r\n $(\".faq-full-content .main-faq:nth-child(1)\").addClass(\"active-faq\");\r\n $(\".faq-full-content .main-faq:nth-child(1) .heading-faq\").addClass(\"active\");\r\n $(\".faq-full-content .main-faq:nth-child(1) .content-faq\").slideDown();\r\n $(\".heading-faq\").on(\"click\", function () {\r\n var $mainFaq = $(this).closest(\".main-faq\");\r\n if ($(this).hasClass(\"active\")) {\r\n $(this).siblings(\".content-faq\").slideUp();\r\n $(this).removeClass(\"active\");\r\n $mainFaq.removeClass(\"active-faq\");\r\n } else {\r\n $(\".heading-faq\").removeClass(\"active\");\r\n $(\".content-faq\").slideUp();\r\n $(\".main-faq\").removeClass(\"active-faq\");\r\n\r\n $(this).siblings(\".content-faq\").slideToggle();\r\n $(this).toggleClass(\"active\");\r\n $mainFaq.addClass(\"active-faq\");\r\n }\r\n });\r\n}\r\n/*==================== Lazyload JS ====================*/\r\nconst observer = lozad(); // lazy loads elements with default selector as '.lozad'\r\nobserver.observe();\r\nwindow.observer = observer;\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n const modal = document.getElementById(\"myModal\");\r\n const openModalButton = document.getElementById(\"MainNavMain\");\r\n const closeModalButtons = document.querySelectorAll(\".close, .btn-default\");\r\n\r\n openModalButton.addEventListener(\"click\", function () {\r\n modal.classList.add(\"show\");\r\n });\r\n\r\n closeModalButtons.forEach((button) => {\r\n button.addEventListener(\"click\", function () {\r\n modal.classList.remove(\"show\");\r\n });\r\n });\r\n\r\n window.addEventListener(\"click\", function (event) {\r\n if (event.target === modal) {\r\n modal.classList.remove(\"show\");\r\n }\r\n });\r\n});\r\n","import Swiper from \"swiper\";\r\nimport {\r\n Pagination,\r\n EffectCreative,\r\n Keyboard,\r\n Mousewheel,\r\n Navigation,\r\n Thumbs,\r\n EffectFade,\r\n Autoplay,\r\n EffectCoverflow,\r\n Grid,\r\n FreeMode,\r\n} from \"swiper/modules\";\r\n\r\n/**\r\n * @param swiperInit\r\n */\r\nexport default function swiperInit() {\r\n $(\".col-3-products .swiper\").each(function () {\r\n new Swiper(this, {\r\n modules: [Pagination, Autoplay, Navigation],\r\n slidesPerView: 1,\r\n spaceBetween: 40,\r\n speed: 1000,\r\n autoplay: {\r\n delay: 4000,\r\n disableOnInteraction: false,\r\n pauseOnMouseEnter: true,\r\n },\r\n loop: true,\r\n pagination: {\r\n el: $(this).closest(\".swiper-cols-1\").find(\".swiper-pagination\")[0],\r\n clickable: true,\r\n },\r\n navigation: {\r\n nextEl: $(this).closest(\".col-3-products\").find(\".btn-next\")[0],\r\n prevEl: $(this).closest(\".col-3-products\").find(\".btn-prev\")[0],\r\n },\r\n breakpoints: {\r\n 768: {\r\n slidesPerView: 2,\r\n spaceBetween: 20,\r\n },\r\n 1290: {\r\n slidesPerView: 3,\r\n spaceBetween: 30,\r\n },\r\n },\r\n on: {\r\n init: function () {\r\n this.autoplay.start();\r\n },\r\n },\r\n });\r\n });\r\n const swiper4 = () =>\r\n $(\".col-4-products .swiper\").each(function () {\r\n new Swiper(this, {\r\n modules: [Pagination, Autoplay, Navigation],\r\n slidesPerView: 2,\r\n spaceBetween: 40,\r\n autoplay: {\r\n delay: 4000,\r\n },\r\n loop: false,\r\n pagination: {\r\n el: $(this).closest(\".swiper-cols-1\").find(\".swiper-pagination\")[0],\r\n clickable: true,\r\n },\r\n navigation: {\r\n nextEl: $(this).closest(\".col-4-products\").find(\".btn-next\")[0],\r\n prevEl: $(this).closest(\".col-4-products\").find(\".btn-prev\")[0],\r\n },\r\n breakpoints: {\r\n 1200: {\r\n slidesPerView: 4,\r\n },\r\n },\r\n });\r\n });\r\n swiper4();\r\n window.swiper4 = swiper4;\r\n $(\".col-6-posts .swiper\").each(function () {\r\n new Swiper(this, {\r\n modules: [Pagination, Autoplay, Navigation],\r\n slidesPerView: 2,\r\n spaceBetween: 15,\r\n watchSlidesVisibility: true,\r\n watchSlidesProgress: true,\r\n loopedSlides: 6,\r\n autoplay: {\r\n delay: 4000,\r\n },\r\n loop: true,\r\n\r\n pagination: {\r\n el: $(this).closest(\".col-6-posts\").find(\".swiper-pagination\")[0],\r\n clickable: true,\r\n type: \"progressbar\",\r\n },\r\n navigation: {\r\n nextEl: $(this).closest(\".col-4-posts\").find(\".btn-next\")[0],\r\n prevEl: $(this).closest(\".col-4-posts\").find(\".btn-prev\")[0],\r\n },\r\n breakpoints: {\r\n 768: {\r\n slidesPerView: 2,\r\n },\r\n 1200: {\r\n slidesPerView: 4,\r\n },\r\n },\r\n });\r\n });\r\n $(\".col-1-products .swiper\").each(function () {\r\n new Swiper(this, {\r\n modules: [Pagination, Autoplay, Navigation, EffectFade],\r\n slidesPerView: 1,\r\n spaceBetween: 2,\r\n autoplay: {\r\n delay: 10000,\r\n },\r\n speed: 2000,\r\n loop: true,\r\n effect: \"fade\",\r\n fadeEffect: {\r\n crossFade: true,\r\n },\r\n pagination: {\r\n el: $(this).closest(\".col-1-products\").find(\".swiper-pagination\")[0],\r\n renderBullet: function (index, className) {\r\n // Get total number of slides\r\n const totalSlides = this.slides.length;\r\n // Only add dash separator if not last bullet\r\n const separator = index < totalSlides - 1 ? \" - \" : \"\";\r\n return (\r\n '' +\r\n (index < 9 ? \"0\" : \"\") +\r\n (index + 1) +\r\n \"\" +\r\n separator\r\n );\r\n },\r\n clickable: true,\r\n type: \"bullets\",\r\n },\r\n navigation: {\r\n nextEl: $(this).closest(\".col-1-products\").find(\".btn-next\")[0],\r\n prevEl: $(this).closest(\".col-1-products\").find(\".btn-prev\")[0],\r\n },\r\n });\r\n });\r\n $(\".col-1-posts .swiper\").each(function () {\r\n new Swiper(this, {\r\n modules: [Autoplay, Navigation, EffectFade],\r\n slidesPerView: 1,\r\n spaceBetween: 0,\r\n autoplay: {\r\n delay: 4000,\r\n },\r\n speed: 2000,\r\n loop: true,\r\n effect: \"slide\",\r\n navigation: {\r\n nextEl: $(this).closest(\".col-1-posts\").find(\".btn-next\")[0],\r\n prevEl: $(this).closest(\".col-1-posts\").find(\".btn-prev\")[0],\r\n },\r\n });\r\n });\r\n $(\".home-cols-9 .swiper\").each(function (index) {\r\n const nameVariable = `swiper_brand_${index}`;\r\n window[nameVariable] = new Swiper(this, {\r\n modules: [Autoplay],\r\n slidesPerView: 3,\r\n spaceBetween: 32,\r\n speed: 3000,\r\n loop: true,\r\n freeMode: true,\r\n observer: true,\r\n observeParents: true,\r\n allowTouchMove: false,\r\n autoplay: {\r\n delay: 0,\r\n disableOnInteraction: false,\r\n },\r\n breakpoints: {\r\n 768: {\r\n slidesPerView: 5,\r\n spaceBetween: 20,\r\n },\r\n 1200: {\r\n slidesPerView: 9,\r\n spaceBetween: 24,\r\n },\r\n },\r\n });\r\n });\r\n}\r\n"]}