{"version":3,"sources":["webpack:///./src/assets/1.png","webpack:///./src/assets/4.png","webpack:///./src/views/home/index.vue?0e13","webpack:///./src/assets/slide_3.png","webpack:///./src/assets/slide_1.png","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/shared/process-lazy-preloader.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/onLoad.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./src/views/home/index.vue","webpack:///./src/views/home/index.vue?7d92","webpack:///./src/assets/5.png","webpack:///./src/assets/slide_4.png","webpack:///./src/assets/2.png","webpack:///./src/assets/3.png","webpack:///./src/assets/slide_2.png"],"names":["module","exports","isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","activeElement","nodeName","children","childNodes","style","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","CustomEvent","this","screen","callback","setTimeout","id","clearTimeout","getWindow","win","window","deleteProps","object","e","nextTick","delay","now","Date","el","getComputedStyle","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","transform","webkitTransform","split","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","getPropertyValue","toString","m41","parseFloat","m42","o","prototype","call","slice","isNode","node","HTMLElement","nodeType","args","to","noExtend","i","nextSource","undefined","keysArray","filter","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cancelAnimationFrame","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","requestAnimationFrame","elementChildren","element","selector","matches","createElement","tag","classes","classList","add","Array","isArray","elementPrevAll","prevEls","previousElementSibling","prev","push","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","elementOuterSize","size","includeMargins","offsetWidth","deviceCached","calcSupport","smoothScroll","documentElement","touch","DocumentTouch","getSupport","calcDevice","support","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","calcBrowser","needPerspectiveFix","isSafari","toLowerCase","String","includes","major","minor","num","Number","isWebView","test","getBrowser","Resize","on","emit","observer","animationFrame","resizeHandler","destroyed","initialized","createObserver","ResizeObserver","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","addEventListener","removeEventListener","Observer","extendParams","observers","attach","options","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","__preventObserver__","observerUpdate","attributes","childList","characterData","init","observeParents","containerParents","observeSlideChildren","destroy","disconnect","splice","events","handler","priority","self","eventsListeners","method","event","onceHandler","off","__emitterProxy","apply","eventsAnyListeners","index","eventHandler","data","context","unshift","eventsArray","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","assign","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","slideEl","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","loop","groups","ceil","slidesBefore","slidesAfter","groupSize","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","remove","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","activeIndex","offsetHeight","minusOffset","isElement","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","nextSlide","prevSlide","emitSlidesClasses","processLazyPreloader","imageEl","slideSelector","closest","lazyEl","querySelector","lazyPreloaderClass","unlazy","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerViewDynamic","activeColumn","preloadColumns","from","column","slideIndexLastInView","rewind","realIndex","getActiveIndexByTranslate","normalizeSlideIndex","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","skip","getAttribute","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","updateSize","getSwiperTranslate","virtualTranslate","currentTranslate","byController","x","y","z","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","setTranslate","onTranslateToWrapperTransitionEnd","transitionDuration","transitionEmit","direction","step","transitionStart","transitionEnd","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","indexAsNumber","newIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","loopFix","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slideToIndex","loopedSlides","getSlideIndex","loopCreate","slideRealIndex","setAttribute","activeSlideIndex","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","swiperLoopMoveDOM","prepend","append","recalcSlides","currentSlideTranslate","newSlideTranslate","diff","touches","controller","control","loopParams","c","loopDestroy","newSlidesOrder","swiperSlideIndex","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","closestElement","base","__closestFrom","assignedSlot","found","getRootNode","touchEventsData","evCache","pointerType","originalEvent","targetEl","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchStart","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","targetTouches","diffX","diffY","sqrt","touchAngle","atan2","zoom","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","startTranslate","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","loopFixed","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchMove","type","proceed","browser","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","onTouchEnd","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","onLoad","update","dummyEventAttached","dummyEventListener","capture","domMethod","swiperMethod","passive","updateOnWindowResize","attachEvents","bind","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","matchMedia","prepareClasses","prefix","resultClasses","item","classNames","addClasses","suffixes","removeClasses","wasLocked","lastSlideRightEdge","createElements","url","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","transition","extendedDefaults","querySelectorAll","swipers","newParams","modules","__modules__","mod","once","swiperParams","defaults","passedParams","eventName","onAny","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","cls","className","updates","getSlideClasses","view","exact","spv","breakLoop","slideInView","translateValue","translated","complete","newDirection","needUpdate","currentDirection","mounted","shadowEl","getWrapperSelector","trim","getWrapper","res","mount","deleteInstance","cleanStyles","newDefaults","m","installModule","prototypeGroup","protoMethod","use","store","useStore","router","useRouter","token","computed","state","jumpToChat","query","cur","commit","jumpToDraft","swiperContainer","ref","timmer","autoPlay","setInterval","onMounted","Swiper","onBeforeUnmount","clearInterval","__exports__"],"mappings":"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","file":"js/chunk-439b6589.6f454bfd.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/1.7dfc1ef0.png\";","module.exports = __webpack_public_path__ + \"img/4.128a7207.png\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=16fecce4&lang=less&scoped=true\"","module.exports = __webpack_public_path__ + \"img/slide_3.d0fe7f30.png\";","module.exports = __webpack_public_path__ + \"img/slide_1.ffce2310.png\";","/**\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 &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\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}\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 { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow, getDocument } from 'ssr-window';\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 = 0) {\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 = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\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(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[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({\n swiper,\n targetPosition,\n side\n}) {\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.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction findElementsInElements(elements = [], selector = '') {\n const found = [];\n elements.forEach(el => {\n found.push(...el.querySelectorAll(selector));\n });\n return found;\n}\nfunction elementChildren(element, selector = '') {\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction createElement(tag, classes = []) {\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : [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}\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty, getSlideTransformEl,\n// dom\nfindElementsInElements, createElement, elementChildren, elementOffset, elementPrevAll, elementNextAll, elementStyle, elementIndex, elementParents, elementTransitionEnd, elementOuterSize };","import { getWindow, getDocument } from 'ssr-window';\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}\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\nfunction calcDevice({\n userAgent\n} = {}) {\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 (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\nexport { getDevice };","import { getWindow } from 'ssr-window';\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}\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\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(({\n contentBoxSize,\n contentRect,\n target\n }) => {\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}","import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.js';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n const attach = (target, options = {}) => {\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.el);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.el, {\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}","/* eslint-disable no-underscore-dangle */\n\nexport default {\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(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\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(...args) {\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 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};","import { elementStyle } from '../../shared/utils.js';\nexport default function 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}","import { elementChildren, elementOuterSize, elementStyle, setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.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 function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(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(slidesLength);\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, slidesLength, getDirectionLabel);\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[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[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[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\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' : 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 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}","export default function 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}","export default function 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}","export default function updateSlidesProgress(translate = this && this.translate || 0) {\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);\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 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 slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}","export default function 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}","import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.js';\nexport default function 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 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 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 activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let 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 // Prev Slide\n let 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 swiper.emitSlidesClasses();\n}","export const 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 const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\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};\nexport const 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};","import { preload } from '../../shared/process-lazy-preloader.js';\nexport function 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}\nexport default function 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) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\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 (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","export default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\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}","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\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}","export default function 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}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\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}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n }\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\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}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\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}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\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}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\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}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\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 newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\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 }\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}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\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 }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\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}","import { elementChildren, nextTick } from '../../shared/utils.js';\nexport default function 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}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { elementChildren } from '../../shared/utils.js';\nexport default function 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 slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}","export default function loopFix({\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n} = {}) {\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 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 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.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 // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\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.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\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.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 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 slideTo: false,\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(loopParams);\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix(loopParams);\n }\n }\n swiper.emit('loopFix');\n}","export default function 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}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","export default function 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}","export default function 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}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","import { getWindow, getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\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}\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.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 e = event;\n if (e.originalEvent) e = e.originalEvent;\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 = event.composedPath ? event.composedPath() : event.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 const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\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}","import { getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\nexport default function 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 (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\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 prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\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 if (e.targetTouches && e.targetTouches.length > 1) return;\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 || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\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 if (!data.isMoved) {\n if (isLoop) {\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 if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\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 && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : 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 && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : 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}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) {\n const proceed = event.type === 'pointercancel' && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\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 (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 // 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);\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.currentTranslate === data.startTranslate) {\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 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 (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (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}","export default function 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}","export default function 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}","export default function 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}","import { processLazyPreloader } from '../../shared/process-lazy-preloader.js';\nexport default function 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}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nimport onLoad from './onLoad.js';\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\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 el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', 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\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 document = getDocument();\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 if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nexport default function 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 if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\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 (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n }\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\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}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","function 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}\nexport default function 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}","export default function removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function 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}\nexport default {\n checkOverflow\n};","export default {\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 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 loopedSlides: null,\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 slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-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};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\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 (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\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}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { extend, deleteProps, createElement, elementChildren, elementStyle, elementIndex } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nimport { processLazyPreloader, preload } from '../shared/process-lazy-preloader.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\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 evCache: []\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 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 = 'current', exact = false) {\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 (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 = true) {\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.shadowEl) {\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 : wrapperEl,\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 [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].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 = true, cleanStyles = true) {\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.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]);\nexport default Swiper;","\r\n\r\n\r\n\r\n\r\n","import script from \"./index.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=16fecce4&lang=less&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\Admin\\\\PycharmProjects\\\\chatlawyer-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-16fecce4\"]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"img/5.d8ccd7d8.png\";","module.exports = __webpack_public_path__ + \"img/slide_4.12e24846.png\";","module.exports = __webpack_public_path__ + \"img/2.535cb566.png\";","module.exports = __webpack_public_path__ + \"img/3.73b40813.png\";","module.exports = __webpack_public_path__ + \"img/slide_2.64135974.png\";"],"sourceRoot":""}