{"version":3,"sources":["utils/router.js","../node_modules/@roskvartal-landings/base/src/app.js","../node_modules/@roskvartal-landings/base/src/component.js","../node_modules/@roskvartal-landings/base/src/filter.js","../node_modules/@roskvartal-landings/base/src/plugin.js","../node_modules/@roskvartal-landings/base/index.js","../node_modules/@roskvartal-landings/util-dom-utils/src/dom-utils.js","../node_modules/@roskvartal-landings/util-dom-utils/index.js","../node_modules/@roskvartal-landings/module-animator/src/animator.js","../node_modules/@roskvartal-landings/module-animator/index.js","../node_modules/@roskvartal-landings/component-modal/src/modal.js","../node_modules/@roskvartal-landings/component-modal/index.js","../node_modules/@roskvartal-landings/plugin-modal/src/modal.js","../node_modules/@roskvartal-landings/plugin-modal/index.js","components/navbar.js","../node_modules/viewerjs/dist/viewer.js","components/lightbox.js","errors/incorrect-email-address-error.js","errors/incorrect-comment-error.js","errors/empty-fields-error.js","dto/lead-modal.js","components/email-modal.js","components/email-confirm-modal.js","utils/dispatch-widget.js","../node_modules/ssr-window/ssr-window.esm.js","../node_modules/dom7/dom7.esm.js","../node_modules/swiper/esm/utils/dom.js","../node_modules/swiper/esm/utils/utils.js","../node_modules/swiper/esm/utils/get-support.js","../node_modules/swiper/esm/utils/get-device.js","../node_modules/swiper/esm/utils/get-browser.js","../node_modules/swiper/esm/modules/resize/resize.js","../node_modules/swiper/esm/modules/observer/observer.js","../node_modules/swiper/esm/components/core/modular.js","../node_modules/swiper/esm/components/core/events-emitter.js","../node_modules/swiper/esm/components/core/update/updateSize.js","../node_modules/swiper/esm/components/core/update/updateSlides.js","../node_modules/swiper/esm/components/core/update/updateAutoHeight.js","../node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","../node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","../node_modules/swiper/esm/components/core/update/updateProgress.js","../node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","../node_modules/swiper/esm/components/core/update/updateActiveIndex.js","../node_modules/swiper/esm/components/core/update/updateClickedSlide.js","../node_modules/swiper/esm/components/core/update/index.js","../node_modules/swiper/esm/components/core/translate/getTranslate.js","../node_modules/swiper/esm/components/core/translate/setTranslate.js","../node_modules/swiper/esm/components/core/translate/minTranslate.js","../node_modules/swiper/esm/components/core/translate/maxTranslate.js","../node_modules/swiper/esm/components/core/translate/translateTo.js","../node_modules/swiper/esm/components/core/translate/index.js","../node_modules/swiper/esm/components/core/transition/setTransition.js","../node_modules/swiper/esm/components/core/transition/transitionStart.js","../node_modules/swiper/esm/components/core/transition/transitionEnd.js","../node_modules/swiper/esm/components/core/transition/index.js","../node_modules/swiper/esm/components/core/slide/slideTo.js","../node_modules/swiper/esm/components/core/slide/slideToLoop.js","../node_modules/swiper/esm/components/core/slide/slideNext.js","../node_modules/swiper/esm/components/core/slide/slidePrev.js","../node_modules/swiper/esm/components/core/slide/slideReset.js","../node_modules/swiper/esm/components/core/slide/slideToClosest.js","../node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","../node_modules/swiper/esm/components/core/slide/index.js","../node_modules/swiper/esm/components/core/loop/loopCreate.js","../node_modules/swiper/esm/components/core/loop/loopFix.js","../node_modules/swiper/esm/components/core/loop/loopDestroy.js","../node_modules/swiper/esm/components/core/loop/index.js","../node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","../node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","../node_modules/swiper/esm/components/core/grab-cursor/index.js","../node_modules/swiper/esm/components/core/manipulation/appendSlide.js","../node_modules/swiper/esm/components/core/manipulation/prependSlide.js","../node_modules/swiper/esm/components/core/manipulation/addSlide.js","../node_modules/swiper/esm/components/core/manipulation/removeSlide.js","../node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","../node_modules/swiper/esm/components/core/manipulation/index.js","../node_modules/swiper/esm/components/core/events/onTouchStart.js","../node_modules/swiper/esm/components/core/events/onTouchMove.js","../node_modules/swiper/esm/components/core/events/onTouchEnd.js","../node_modules/swiper/esm/components/core/events/onResize.js","../node_modules/swiper/esm/components/core/events/onClick.js","../node_modules/swiper/esm/components/core/events/onScroll.js","../node_modules/swiper/esm/components/core/events/index.js","../node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","../node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","../node_modules/swiper/esm/components/core/breakpoints/index.js","../node_modules/swiper/esm/components/core/classes/addClasses.js","../node_modules/swiper/esm/components/core/classes/removeClasses.js","../node_modules/swiper/esm/components/core/classes/index.js","../node_modules/swiper/esm/components/core/images/loadImage.js","../node_modules/swiper/esm/components/core/images/preloadImages.js","../node_modules/swiper/esm/components/core/images/index.js","../node_modules/swiper/esm/components/core/check-overflow/index.js","../node_modules/swiper/esm/components/core/defaults.js","../node_modules/swiper/esm/components/core/core-class.js","../node_modules/swiper/esm/components/virtual/virtual.js","../node_modules/swiper/esm/components/keyboard/keyboard.js","../node_modules/swiper/esm/components/mousewheel/mousewheel.js","../node_modules/swiper/esm/components/navigation/navigation.js","../node_modules/swiper/esm/components/pagination/pagination.js","../node_modules/swiper/esm/components/scrollbar/scrollbar.js","../node_modules/swiper/esm/components/parallax/parallax.js","../node_modules/swiper/esm/components/zoom/zoom.js","../node_modules/swiper/esm/components/lazy/lazy.js","../node_modules/swiper/esm/components/controller/controller.js","../node_modules/swiper/esm/components/a11y/a11y.js","../node_modules/swiper/esm/components/history/history.js","../node_modules/swiper/esm/components/hash-navigation/hash-navigation.js","../node_modules/swiper/esm/components/autoplay/autoplay.js","../node_modules/swiper/esm/components/effect-fade/effect-fade.js","../node_modules/swiper/esm/components/effect-cube/effect-cube.js","../node_modules/swiper/esm/components/effect-flip/effect-flip.js","../node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js","../node_modules/swiper/esm/components/thumbs/thumbs.js","../node_modules/swiper/swiper.esm.js","plugins/swiper.js","modules/cookies.js","plugins/cookie-policy-notify.js","components/preloader.js","../node_modules/parcel-bundler/src/builtins/bundle-url.js","../node_modules/parcel-bundler/src/builtins/bundle-loader.js","main.js","_news-card.css","pagination.css","buttons-group.css","typographer.css","card.css","_header.css","_tabs.css","../node_modules/parcel-bundler/src/builtins/loaders/browser/css-loader.js","../node_modules/parcel-bundler/src/builtins/loaders/browser/js-loader.js"],"names":["renderPage","pages","name","getPageName","page","Error","root","document","querySelector","dataset","route","_default","exports","default","App","constructor","plugins","Set","components","Map","filters","usePlugin","plugin","mutable","config","app","add","useFilter","filter","set","registerComponent","component","init","querySelectorAll","forEach","element","componentName","ComponentClass","get","console","warn","log","Component","el","refs","item","key","ref","Filter","value","Function","prototype","Plugin","_app","_interopRequireDefault","require","_component","_filter","_plugin","e","__esModule","DOMUtils","rect","getBoundingClientRect","scrollLeft","window","pageXOffset","documentElement","scrollTop","pageYOffset","top","right","left","width","bottom","height","cy","cx","elem","style","getComputedStyle","getPropertyValue","outer","createElement","visibility","msOverflowStyle","body","appendChild","widthNoScroll","offsetWidth","overflow","inner","widthWithScroll","parentNode","removeChild","_domUtils","enterEvent","CustomEvent","leaveEvent","Animator","animationName","animation","enter","enterActive","enterTo","leave","leaveActive","leaveTo","classList","addEventListener","type","playEnterAnimation","playLeaveAnimation","remove","setTimeout","dispatchEvent","_animator","_base","_utilDomUtils","_moduleAnimator","OPEN_EVT","CLOSE_EVT","openEvent","closeEvent","Modal","backdrop","dialog","animate","addEventListeners","close","event","open","detail","payload","paddingRight","scrollbarWidth","parseInt","getStylePropertyValue","removeClass","removeEventListener","_modal","_componentModal","ModalPlugin","modal","modalElement","getCustomOpenEvent","JSON","parse","openMenuButton","closeMenuButton","menu","overlay","tooggleMenu","toggle","contains","_viewerjs","LIGHTBOX_CLASS","TOOLBAR_CONFIG","toolbar","prev","zoomOut","oneToOne","zoomIn","next","play","show","reset","rotateLeft","rotateRight","flipHorizontal","flipVertical","url","images","getAttribute","Viewer","IncorrectEmailAddressError","arguments","length","undefined","IncorrectCommentError","EmptyFieldsError","_incorrectEmailAddressError","_incorrectCommentError","_emptyFieldsError","LeadOrderDTO","_ref","comment","emailAddress","houseId","appealType","re","trim","test","_leadModal","EmailModal","data","form","cancelBtn","errorEmail","errorText","target","preventDefault","sendEmail","disabled","confirmModal","getElementById","updateInvalidState","fetch","method","stringify","headers","then","catch","error","milliseconds","Promise","resolve","sleep","EmailConfirmModal","ATTR_NAME","widgetOpenButtons","button","houseAddressString","dispatchWidget","service","rkDispatchWidget","prefillAddress","setService","setCurrentStep","isObject","obj","Object","extend","src","keys","ssrDocument","activeElement","blur","nodeName","createEvent","initEvent","children","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","Image","Date","screen","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","_ssrWindow","_inheritsLoose","subClass","superClass","create","__proto__","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","toString","call","_construct","Parent","args","Class","a","push","apply","instance","bind","_isNativeFunction","fn","indexOf","_wrapNativeSuper","_cache","TypeError","has","Wrapper","enumerable","writable","configurable","_assertThisInitialized","self","ReferenceError","makeReactive","proto","defineProperty","Dom7","_Array","items","_this","concat","Array","arrayFlat","arr","res","isArray","arrayFilter","arrayUnique","uniqueArray","i","toCamelCase","string","toLowerCase","replace","match","group","toUpperCase","qsa","selector","context","$","html","toCreate","tempParent","innerHTML","nodeType","addClass","_len","classes","_key","classNames","map","c","split","_el$classList","_len2","_key2","_el$classList2","toggleClass","_len3","_key3","className","hasClass","_len4","_key4","attr","attrs","attrName","removeAttr","removeAttribute","prop","props","propName","dom7ElementDataStorage","dataKey","removeData","attributes","_attr","parseFloat","val","multiple","values","selectedOptions","_i","_el","j","options","selected","transform","transition","duration","transitionDuration","on","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","events","_event","dom7LiveListeners","proxyListener","dom7Listeners","off","_len6","_key6","handlers","handler","splice","dom7proxy","once","dom","_len7","_key7","eventName","onceHandler","_len8","eventArgs","_key8","trigger","_len9","_key9","evt","bubbles","cancelable","dataIndex","transitionEnd","fireCallBack","animationEnd","innerWidth","css","outerWidth","includeMargins","_styles","styles","innerHeight","outerHeight","_styles2","offsetHeight","offset","box","clientTop","clientLeft","scrollY","scrollX","hide","display","_prop","each","index","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendTo","parent","prepend","insertBefore","prependTo","before","cloneNode","insertAfter","after","nextSibling","nextElementSibling","nextAll","nextEls","_next","previousElementSibling","prevAll","prevEls","_prev","siblings","_parent","closest","find","foundElements","found","detach","_len10","els","_key10","toAdd","empty","scrollTo","easing","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","getTime","done","progress","easeProgress","cos","PI","initialProps","initialParams","animateInstance","assign","params","elements","animating","que","easingProgress","stop","frameId","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","_el$prop","noTrigger","shortcut","click","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","_dom","Methods","methodName","deleteProps","object","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","join","MozTransform","OTransform","MsTransform","msTransform","m41","m42","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","bindModuleMethods","subKey","support","calcSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","getSupport","device","_getSupport","calcDevice","_temp","platform","ua","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","getDevice","overrides","browser","calcBrowser","isEdge","isSafari","isWebView","getBrowser","_utils","swiper","resizeHandler","destroyed","initialized","emit","orientationChangeHandler","destroy","_extends","source","hasOwnProperty","Observer","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","observe","childList","characterData","observers","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","disconnect","useParams","instanceParams","modules","moduleName","module","useModules","modulesParams","moduleParams","moduleEventName","priority","eventsListeners","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","slice","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","Number","isNaN","size","updateSlides","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","slidesForMargin","slideEl","slideIndex","cssMode","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","floor","ceil","slidesPerView","slidesPerColumnFill","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","boxSizing","_slide$","paddingTop","paddingBottom","_boxSizing","_slide$2","swiperSlideSize","centeredSlides","abs","slidesPerGroupSkip","effect","setWrapperSize","slidesGridItem","_i2","_slidesGridItem","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","_updateSize","_updateSlides","_updateAutoHeight","_updateSlidesOffset","_updateSlidesProgress","_updateProgress","_updateSlidesClasses","_updateActiveIndex","_updateClickedSlide","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","wrapperEl","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","preventInteractionOnTransition","newTranslate","_wrapperEl$scrollTo","isH","behavior","onTranslateToWrapperTransitionEnd","_getTranslate","_setTranslate","_minTranslate","_maxTranslate","_translateTo","transitionStart","direction","dir","_setTransition","_transitionStart","_transitionEnd","slideTo","initialSlide","allowSlideNext","allowSlidePrev","t","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","increment","loopPreventsSlide","loopFix","_clientLeft","slidePrev","normalize","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","threshold","currentSnap","slidesPerViewDynamic","slideToIndex","_slideTo","_slideToLoop","_slideNext","_slidePrev","_slideReset","_slideToClosest","_slideToClickedSlide","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","diff","loopDestroy","_loopCreate","_loopFix","_loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","_setGrabCursor","_unsetGrabCursor","appendSlide","update","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","_appendSlide","_prependSlide","_addSlide","_removeSlide","_removeAllSlides","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","pow","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","position","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","_onTouchStart","_onTouchMove","_onTouchEnd","_onResize","_onClick","_onScroll","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","start","move","end","passiveListeners","passive","cancel","updateOnWindowResize","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","containerModifierClass","emitContainerClasses","directionChanged","needsReLoop","changeDirection","getBreakpoints","points","point","minRatio","substr","sort","b","_points$i","_setBreakpoint","_getBreakpoint","addClasses","suffixes","suffix","removeClasses","_addClasses","_removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","onload","onerror","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","_loadImage","_preloadImages","wasLocked","lastSlidePosition","uniqueNavElements","wrapperClass","_emitClasses","_getDevice","_getBrowser","_resize","_observer","_modular","_eventsEmitter","_index","_index2","_index3","_index4","_index5","_index6","_index7","_index8","_index9","_index10","_index11","_index12","_defaults","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","prototypes","modular","eventsEmitter","manipulation","extendedDefaults","Swiper","moduleParamName","swiperParams","defaults","passedParams","swipers","containerEl","newParams","desktop","shadowRoot","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","getSlideClasses","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","Resize","Virtual","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","cache","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","enable","disable","isEventSupported","isSupported","implementation","hasFeature","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","eventsTarget","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","_newEvent","sign","ignoreWheelEvents","sensitivity","timeout","_recentWheelEvents","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","newEvent","raw","prevEvent","animateSlider","releaseScroll","thresholdDelta","thresholdTime","Navigation","_swiper$navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","toEdge","fromEdge","isHidden","_swiper$navigation3","Pagination","pagination","current","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","opacity","divider","moveDivider","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","dragStartPos","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","in","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","toggleGestures","slideSelector","enableGestures","gesturesEnabled","disableGestures","activeListenerWithCapture","touchStart","touchEnd","doubleTap","slideChange","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","background","$pictureEl","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","loadOnTransitionStart","scrollbarDragMove","Controller","LinearSpline","guess","i1","i3","binarySearch","array","interpolate","getInterpolateFunction","controller","spline","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","A11y","getRandomNumber","repeat","round","random","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","label","addElId","addElLive","live","disableEl","enableEl","onEnterKey","a11y","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","tagName","notificationClass","afterInit","paginationUpdate","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","urlOverride","pathArray","URL","part","setHistory","slugify","includes","currentState","state","HashNavigation","onHashCange","newHash","setHash","watchState","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onVisibilityChange","visibilityState","disableOnInteraction","beforeTransitionStart","sliderFirstMove","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","shadow","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","scale1","scale2","zFactor","Flip","flipEffect","limitRotation","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","center","rotate","depth","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","Thumbs","thumbsParams","thumbs","SwiperClass","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","initial","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","beforeDestroy","_coreClass","_virtual","_keyboard","_mousewheel","_navigation","_pagination","_scrollbar","_parallax","_zoom","_lazy","_controller","_a11y","_history","_hashNavigation","_autoplay","_effectFade","_effectCube","_effectFlip","_effectCoverflow","_thumbs","_swiper","_interopRequireWildcard","_getRequireWildcardCache","WeakMap","r","n","u","initSwiper","Cookie","cname","cvalue","exdays","d","setTime","expires","toUTCString","cookie","ca","decodeURIComponent","charAt","substring","_cookies","closeButton","getCookie","onCloseButtonClick","setCookie","bundleURL","getBundleURLCached","getBundleURL","err","stack","getBaseURL","loadBundlesLazy","bundles","code","LazyPromise","reject","loadBundles","all","loadBundle","bundleLoaders","registerBundleLoader","loader","register","bundle","lastIndexOf","bundleLoader","resolved","executor","promise","onSuccess","onError","_router","_pluginModal","_navbar","_lightbox","_emailModal","_emailConfirmModal","_dispatchWidget","_cookiePolicyNotify","_preloader","router","home","houses","news","newsArticle","aboutCompany","house","housePhotos","houseDocuments","houseAppeals","houseNews","contacts","placeholder","initNavbar","initWidget","initLightbox","initCookiePolicyNotify","initPreloader","link","rel","script","async","charset"],"mappings":"A+HAA,ALAA,AMAA,AJAA,AEAA,AHAA,MGCE,KJAA,CCAA,GCAA,EIAA,EDAA,IDAkB,CAClB,AHDa,CACb,ECDa,CACb,CIDa,CACb,EDAF,CAEA,EJFa,CACX,GGDgB,CJDc,AIE9B,CJDA,MEAoB,CIAD,AJCnB,CIAA,ELAgB,CAChB,IGAF,CAEA,ECDE,ILH4B,CAC5B,AMAgB,CAChB,ILAkB,CAClB,CCFwB,CACxB,IFDa,CACb,CKEE,ECFc,CAChB,EFEA,KHDF,CKDW,AFGP,AHAJ,CKFE,GJDF,CAEA,IFHwB,CACtB,MIIA,CACF,CAEA,MCLE,CACF,CAEA,CLJA,CAEA,EMDA,CAEA,AJDA,CEKE,KHJA,YCAF,ADCI,CKAF,AJCF,IGAE,SCDc,ALAG,CKCjB,ALAE,CDFF,CKEa,CACb,SLFE,AEEF,CEEF,CEFA,AFIA,CEFA,ALFE,CACF,CAEA,OIHwB,ALFP,CKGf,ALFE,UCKF,CDLc,AMId,CNHE,GIKF,ICJoB,CACpB,CHDE,GFAF,CACA,EMEF,CAEA,CFAI,OCJe,CACjB,QHF2B,CACzB,GDEsC,CACxC,GDFE,CMIF,EDHF,CAEA,MDCE,CACF,CAEA,EHLoB,CAClB,EDFA,CACF,AEFE,CFIF,AEFE,GIGE,KFGF,KHLkB,CAClB,CIAA,ICEA,CACF,CAEA,MDLe,CACb,ALAA,KEDE,CDAmB,CACrB,QICF,ACIE,AFFoC,CCAtC,ADCE,EJHF,CAEA,GCHkB,CAChB,UKImB,AJLnB,CIMA,AJLF,CAEA,EDFiB,CACf,OGGF,CAEA,ECHE,CCEgB,CAChB,ILLiB,CACjB,CDCA,KEAA,EGCF,CAEA,ACAiB,CACf,OFAA,AHLkB,CAClB,GCCE,KIGe,CACjB,ENJE,GIIA,GCDF,GJJsB,CCEtB,ADDA,CCGA,OFFA,AMGqB,CNFvB,AMGE,CNDF,YICE,CACF,CCFI,AJJuB,CACzB,GDIA,CMAsB,CACtB,KJFE,OGAmB,CACnB,ALAc,CAChB,ICLwB,CACxB,KKIyB,CACzB,GNDe,CACf,AEH2B,CACzB,CGAmB,CACnB,aLCe,CACjB,CCN6B,CAC7B,QKKF,CAEA,AJJE,CAEA,GGFgC,CAC9B,A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","file":"main.js","sourceRoot":"..\\..\\ClientApp","sourcesContent":["async function renderPage (pages) {\r\n const name = getPageName()\r\n\r\n if (!name) {\r\n return\r\n }\r\n\r\n const page = pages[name]\r\n\r\n if (!page) {\r\n throw new Error(`Страница с именем \"${name}\" не найдена.`)\r\n }\r\n\r\n await page\r\n}\r\n\r\nfunction getPageName () {\r\n const root = document.querySelector('[data-route]')\r\n if (!root) { return }\r\n return root.dataset.route\r\n}\r\n\r\nexport default renderPage\r\n","/**\r\n * @module common/classes/app\r\n */\r\n\r\n/**\r\n * @classdesc Класс приложения\r\n */\r\nclass App {\r\n constructor() {\r\n /**\r\n * @member {Set} module:common/classes/app~App#plugins\r\n */\r\n this.plugins = new Set();\r\n /**\r\n * @member {Map}\r\n */\r\n this.components = new Map();\r\n /**\r\n * @member {Map}\r\n */\r\n this.filters = new Map();\r\n }\r\n\r\n /**\r\n * @method\r\n * @param {module:common/classes/plugin~Plugin} plugin - Плагин для регистрации\r\n * @description Зарегистрировать плагин\r\n */\r\n usePlugin(plugin) {\r\n const mutable = plugin;\r\n mutable.config.app = this;\r\n this.plugins.add(mutable);\r\n }\r\n\r\n /**\r\n * @method\r\n * @param {String} name - Имя фильтра\r\n * @param {module:common/classes/filter~Filter} filter - Фильтр для регистрации\r\n */\r\n useFilter(name, filter) {\r\n this.filters.set(name, filter);\r\n }\r\n\r\n /**\r\n * @method\r\n * @param {String} name - Имя компоненты, которое будет использоваться при связке\r\n * @param {module:common/classes/component~Component} component - Компонент для регистрации\r\n * @description Зарегистрировать компоненту\r\n */\r\n registerComponent(name, component) {\r\n this.components.set(name, component);\r\n }\r\n\r\n /**\r\n * @method\r\n * @description Производит инициализацию плагинов и связку компонент внутри приложения\r\n */\r\n init() {\r\n const elements = [...document.querySelectorAll('[data-component]')];\r\n elements.forEach((element) => {\r\n const { component: componentName } = element.dataset;\r\n const ComponentClass = this.components.get(componentName);\r\n if (!ComponentClass) {\r\n console.warn(`Компонент с именем ${componentName} не зарегистрирован!`);\r\n return;\r\n }\r\n const component = new ComponentClass(element);\r\n console.log(componentName, 'зарегистрирован');\r\n });\r\n this.plugins.forEach((plugin) => {\r\n plugin.init();\r\n });\r\n }\r\n}\r\n\r\nexport default App;\r\n","/**\r\n * @module common/classes/component\r\n */\r\n\r\n/**\r\n * @classdesc Класс компоненты\r\n */\r\nclass Component {\r\n /**\r\n * Создаёт экземпляр компоненты и добавляет референсы\r\n * @param {HTMLElement} el - корневой элемент компоненты\r\n */\r\n constructor(el) {\r\n /**\r\n * @instance\r\n * @type {HTMLElement}\r\n * @description Корневой элемент компоненты\r\n */\r\n this.el = el;\r\n /**\r\n * @instance\r\n * @type {Map}\r\n * @description Референсы\r\n */\r\n this.refs = new Map();\r\n\r\n [...el.querySelectorAll('[data-ref]')].forEach((item) => {\r\n const key = item.dataset.ref;\r\n this.refs.set(key, item);\r\n });\r\n }\r\n}\r\n\r\nexport default Component;\r\n","/**\r\n * @module common/classes/filter\r\n */\r\n\r\n/**\r\n * @hideconstructor\r\n * @classdesc Класс фильтра\r\n */\r\nclass Filter {\r\n /**\r\n * @method\r\n * @abstract\r\n * @static\r\n * @description Трансформировать значение\r\n * @param {*} value - Значение для трансформации\r\n */\r\n static transform(value) {\r\n return Function.prototype(value);\r\n }\r\n}\r\n\r\nexport default Filter;\r\n","/**\r\n * @module common/classes/plugin\r\n */\r\n\r\n/**\r\n * @hideconstructor\r\n * @classdesc Класс плагина\r\n */\r\nclass Plugin {\r\n /**\r\n * @method\r\n * @abstract\r\n * @static\r\n * @description Инициализация модуля\r\n */\r\n static init() {\r\n return Function.prototype;\r\n }\r\n}\r\n/**\r\n * @member {*} module:common/classes/plugin~Plugin.config\r\n * @abstract\r\n * @description Конфигурация модуля\r\n */\r\nPlugin.config = {};\r\n\r\nexport default Plugin;\r\n","export { default as App } from \"./src/app\";\r\nexport { default as Component } from \"./src/component\";\r\nexport { default as Filter } from \"./src/filter\";\r\nexport { default as Plugin } from \"./src/plugin\";","/**\r\n * @module common/utils/dom/dom-utils\r\n */\r\n\r\n/**\r\n * @typedef {Object} ElementOffsets\r\n * @property {Number} top - Верхняя точка элемента\r\n * @property {Number} right - Правая точка элемента\r\n * @property {Number} bottom - Нижняя точка элемента\r\n * @property {Number} left - Левая точка элемента\r\n * @property {Number} cx - Центральная точка элемента по оси X\r\n * @property {Number} cy - Центральная точка элемента по оси Y\r\n */\r\n\r\n/**\r\n * @hideconstructor\r\n * @classdesc Содержит различные утилиты DOM\r\n */\r\nclass DOMUtils {\r\n /**\r\n * @method\r\n * @description Получает текущую позицию элемента во viewport-е\r\n * @param {HTMLElement} el - Элемент\r\n * @returns {module:common/utils/dom/dom-utils~ElementOffsets}\r\n */\r\n static getElementDocumentPosition(el) {\r\n const rect = el.getBoundingClientRect();\r\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\r\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n const offsets = {\r\n top: rect.top + scrollTop,\r\n right: rect.left + scrollLeft + rect.width,\r\n bottom: rect.top + scrollTop + rect.height,\r\n left: rect.left + scrollLeft,\r\n cy: rect.top + scrollTop + rect.height / 2,\r\n cx: rect.left + scrollLeft + rect.width / 2,\r\n };\r\n return offsets;\r\n }\r\n\r\n /**\r\n * @method\r\n * @description Получает значение указанного стиля элемента\r\n * @param {HTMLElement} elem - Элемент\r\n * @param {Style} style - Название стиля\r\n * @returns {String}\r\n */\r\n static getStylePropertyValue(elem, style) {\r\n return window.getComputedStyle(elem, null).getPropertyValue(style);\r\n }\r\n\r\n /**\r\n * @member {Number}\r\n * @readonly\r\n * @description Ширина скроллбара клиента\r\n */\r\n static get scrollbarWidth() {\r\n const outer = document.createElement('div');\r\n outer.style.visibility = 'hidden';\r\n outer.style.width = '100px';\r\n outer.style.msOverflowStyle = 'scrollbar';\r\n document.body.appendChild(outer);\r\n const widthNoScroll = outer.offsetWidth;\r\n outer.style.overflow = 'scroll';\r\n const inner = document.createElement('div');\r\n inner.style.width = '100%';\r\n outer.appendChild(inner);\r\n const widthWithScroll = inner.offsetWidth;\r\n outer.parentNode.removeChild(outer);\r\n return widthNoScroll - widthWithScroll;\r\n }\r\n}\r\n\r\nexport default DOMUtils;\r\n","export { default as DOMUtils } from \"./src/dom-utils\";","/**\r\n * @module modules/animator\r\n */\r\n\r\n/**\r\n * @typedef {Object} AnimatorAnimation\r\n * @property {String} enter - Класс, добавляющийся непосредственно перед отображением,\r\n * указывает начальную точку анимации входа\r\n * @property {String} enterActive - Класс, добавляющийся в следующем фрейме после отображения,\r\n * указывает анимирующееся свойство\r\n * @property {String} enterTo - Класс, добавляющийся в следующем фрейме,\r\n * указывает конечную точку анимации входа\r\n * @property {String} leave - Класс, добавляющийся непосредственно перед удалением,\r\n * указывает начальную точку анимации выхода\r\n * @property {String} leaveActive - Класс, добавляющийся в следующем фрейме после отображения,\r\n * указывает анимирующееся свойство\r\n * @property {String} leaveTo - Класс, добавляющийся в следующем фрейме,\r\n * указывает конечную точку анимации выхода\r\n */\r\n\r\n/**\r\n * @description Событие, означающее анимацию входа элемента\r\n * @event animatorEnter\r\n */\r\nconst enterEvent = new CustomEvent('Animator.enter');\r\n/**\r\n * @description Событие, означающее анимацию выхода элемента\r\n * @event animatorLeave\r\n */\r\nconst leaveEvent = new CustomEvent('Animator.leave');\r\n\r\n/**\r\n * @classdesc Класс для анимирования элементов\r\n * @hideconstructor\r\n */\r\nclass Animator {\r\n /**\r\n * @static\r\n * @method\r\n * @description Добавляет хуки анимации на элементе\r\n * @param {HTMLElement} el - Элемент, для которого добавляем анимацию\r\n * @param {String} animationName - Название анимации\r\n */\r\n static animate(el, animationName) {\r\n const animation = {\r\n enter: `${animationName}-enter`,\r\n enterActive: `${animationName}-enter-active`,\r\n enterTo: `${animationName}-enter-to`,\r\n leave: `${animationName}-leave`,\r\n leaveActive: `${animationName}-leave-active`,\r\n leaveTo: `${animationName}-leave-to`,\r\n };\r\n el.classList.add(animation.enter);\r\n el.addEventListener(\r\n Animator.enterEvent.type,\r\n Animator.playEnterAnimation(el, animation),\r\n );\r\n el.addEventListener(\r\n Animator.leaveEvent.type,\r\n Animator.playLeaveAnimation(el, animation),\r\n );\r\n }\r\n\r\n /**\r\n * @static\r\n * @method\r\n * @description Возвращает обработчик для анимации входа\r\n * @param {HTMLElement} el - Элемент, для которого генерируется обработчик\r\n * @param {module:modules/animator~AnimatorAnimation} animation - Анимация элемента\r\n * @listens module:modules/animator~event:animatorEnter\r\n * @returns {Function}\r\n */\r\n static playEnterAnimation(el, animation) {\r\n return () => {\r\n el.classList.remove(animation.leaveTo);\r\n el.classList.add(animation.enter);\r\n setTimeout(() => {\r\n el.classList.add(animation.enterActive);\r\n el.classList.add(animation.enterTo);\r\n }, 0);\r\n el.addEventListener('transitionend', () => {\r\n el.classList.remove(animation.enter);\r\n el.classList.remove(animation.enterActive);\r\n });\r\n };\r\n }\r\n\r\n /**\r\n * @static\r\n * @method\r\n * @description Возвращает обработчик для анимации выхода\r\n * @param {HTMLElement} el - Элемент, для которого генерируется обработчик\r\n * @param {module:modules/animator~AnimatorAnimation} animation - Анимация элемента\r\n * @listens module:modules/animator~event:animatorLeave\r\n * @returns {Function}\r\n */\r\n static playLeaveAnimation(el, animation) {\r\n return () => {\r\n el.classList.remove(animation.enterTo);\r\n el.classList.add(animation.leave);\r\n setTimeout(() => {\r\n el.classList.add(animation.leaveActive);\r\n el.classList.add(animation.leaveTo);\r\n }, 0);\r\n el.addEventListener('transitionend', () => {\r\n el.classList.remove(animation.leave);\r\n el.classList.remove(animation.leaveActive);\r\n });\r\n };\r\n }\r\n\r\n /**\r\n * @static\r\n * @member {CustomEvent}\r\n * @readonly\r\n * @description Событие для анимации входа\r\n */\r\n static get enterEvent() {\r\n return enterEvent;\r\n }\r\n\r\n /**\r\n * @static\r\n * @member {CustomEvent}\r\n * @readonly\r\n * @description Событие для анимации выхода\r\n */\r\n static get leaveEvent() {\r\n return leaveEvent;\r\n }\r\n\r\n /**\r\n * @static\r\n * @method\r\n * @param {HTMLElement} el - Элемент, для которого необходимо проиграть анимацию\r\n * @fires module:modules/animator~event:animatorEnter\r\n */\r\n static enter(el) {\r\n el.dispatchEvent(Animator.enterEvent);\r\n }\r\n\r\n /**\r\n *\r\n * @param {HTMLElement} el - Элемент, для которого необходимо проиграть анимацию\r\n * @fires module:modules/animator~event:animatorLeave\r\n */\r\n static leave(el) {\r\n el.dispatchEvent(Animator.leaveEvent);\r\n }\r\n}\r\n\r\nexport default Animator;\r\n","export { default as Animator } from \"./src/animator\";","/**\r\n * @module components/modal\r\n */\r\nimport { Component } from '@roskvartal-landings/base';\r\nimport { DOMUtils } from '@roskvartal-landings/util-dom-utils';\r\nimport { Animator } from '@roskvartal-landings/module-animator';\r\n\r\nconst OPEN_EVT = 'modal-open';\r\nconst CLOSE_EVT = 'modal-close';\r\n\r\n/**\r\n * @description Событие, вызывающееся при открытии модального окна\r\n * @event modal-open\r\n */\r\nconst openEvent = new CustomEvent(OPEN_EVT);\r\n/**\r\n * @description Событие, вызывающееся при закрытии модального окна\r\n * @event modal-close\r\n */\r\nconst closeEvent = new CustomEvent(CLOSE_EVT);\r\n\r\n/**\r\n * @extends module:common/classes/component~Component\r\n * @inheritdoc\r\n * @classdesc Компонент модального окна\r\n */\r\nclass Modal extends Component {\r\n /**\r\n * @param {HTMLElement} el - Корневой элемент компоненты\r\n */\r\n constructor(el) {\r\n super(el);\r\n /**\r\n * @member {HTMLElement}\r\n * @description Подложка под модалку\r\n */\r\n this.backdrop = this.refs.get('backdrop');\r\n /**\r\n * @member {HTMLElement}\r\n * @description Диалог\r\n */\r\n this.dialog = this.refs.get('dialog');\r\n Animator.animate(this.backdrop, 'u-fade-half');\r\n Animator.animate(this.dialog, 'u-modal');\r\n this.addEventListeners();\r\n }\r\n\r\n /**\r\n * @method\r\n * @description Добавиляет слушатели событий открытия/закрытия\r\n */\r\n addEventListeners() {\r\n this.backdrop.addEventListener('click', () => {\r\n this.close();\r\n });\r\n this.el.addEventListener('modal-open', (event) => {\r\n this.open(event.detail);\r\n });\r\n this.el.addEventListener('modal-close', (event) => {\r\n this.close(event.detail);\r\n });\r\n this.refs.get('close-btn').addEventListener('click', () => {\r\n this.close();\r\n });\r\n }\r\n\r\n /**\r\n * @method\r\n * @param {Object} payload - Объект настроек\r\n * @description Открыть модальное окно\r\n */\r\n open(payload) {\r\n this.payload = payload;\r\n document.body.classList.add('u-overflow-hidden');\r\n document.body.style.paddingRight = `${DOMUtils.scrollbarWidth}px`;\r\n [...document.querySelectorAll('[data-modal-padded]')].forEach(item => {\r\n item.style.paddingRight = `${parseInt(DOMUtils.getStylePropertyValue(item, 'padding-right')) + DOMUtils.scrollbarWidth}px`;\r\n });\r\n this.el.classList.add('is-opened');\r\n Animator.enter(this.dialog);\r\n Animator.enter(this.backdrop);\r\n }\r\n\r\n /**\r\n * @method\r\n * @param {Object} payload - Объект настроек\r\n * @description Закрыть модальное окно\r\n */\r\n close(payload) {\r\n this.payload = payload;\r\n document.body.classList.remove('u-overflow-hidden');\r\n document.body.style.paddingRight = '0px';\r\n [...document.querySelectorAll('[data-modal-padded]')].forEach(item => {\r\n item.style.paddingRight = `${parseInt(DOMUtils.getStylePropertyValue(item, 'padding-right')) - DOMUtils.scrollbarWidth}px`;\r\n });\r\n Animator.leave(this.dialog);\r\n Animator.leave(this.backdrop);\r\n const removeClass = () => {\r\n this.el.classList.remove('is-opened');\r\n this.el.removeEventListener('transitionend', removeClass);\r\n };\r\n this.el.addEventListener('transitionend', removeClass);\r\n }\r\n\r\n /**\r\n * @member {CustomEvent}\r\n * @static\r\n * @method\r\n * @description Событие открытия модального окна с передачей настроек\r\n */\r\n static getCustomOpenEvent(payload) {\r\n return new CustomEvent(OPEN_EVT, { detail: payload });\r\n }\r\n\r\n /**\r\n * @member {CustomEvent}\r\n * @static\r\n * @method\r\n * @description Событие закрытия модального окна с передачей настроек\r\n */\r\n static getCustomCloseEvent(payload) {\r\n return new CustomEvent(CLOSE_EVT, { detail: payload });\r\n }\r\n\r\n /**\r\n * @member {CustomEvent}\r\n * @readonly\r\n * @description Событие открытия модального окна\r\n */\r\n static get openEvent() {\r\n return openEvent;\r\n }\r\n\r\n /**\r\n * @member {CustomEvent}\r\n * @readonly\r\n * @description Событие закрытия модального окна\r\n */\r\n static get closeEvent() {\r\n return closeEvent;\r\n }\r\n}\r\n\r\nexport default Modal;\r\n","export { default as Modal } from \"./src/modal\";","/**\r\n * @module plugins/modal\r\n */\r\nimport { Plugin } from '@roskvartal-landings/base';\r\nimport { Modal } from '@roskvartal-landings/component-modal';\r\n\r\n/**\r\n * @inheritdoc\r\n * @description Плагин для модальных окон\r\n * @hideconstructor\r\n * @example\r\n * \r\n * \r\n */\r\nclass ModalPlugin extends Plugin {\r\n /**\r\n * @description Добавляет обработчик события click для каждого элемента\r\n * с атрибутом data-modal, вызывающий событие\r\n * {@link module:components/modal~Modal.openEvent}\r\n */\r\n static init() {\r\n const elements = [...document.querySelectorAll('[data-modal]')];\r\n elements.forEach((element) => {\r\n const { modal, payload } = element.dataset;\r\n const modalElement = document.querySelector(modal);\r\n element.addEventListener('click', () => {\r\n try {\r\n modalElement.dispatchEvent(Modal.getCustomOpenEvent(JSON.parse(payload)));\r\n }\r\n catch (e) {\r\n modalElement.dispatchEvent(Modal.openEvent);\r\n }\r\n });\r\n });\r\n }\r\n}\r\nModalPlugin.config = {};\r\n\r\nexport default ModalPlugin;\r\n","export { default as ModalPlugin } from \"./src/modal\";","function init () {\r\n const openMenuButton = document.querySelector('.nav-btn__btn--open')\r\n const closeMenuButton = document.querySelector('.nav-btn__btn--close')\r\n const menu = document.querySelector('.header__menu')\r\n const overlay = document.querySelector('.header__menu-overlay')\r\n\r\n if (!openMenuButton) {\r\n return\r\n }\r\n\r\n openMenuButton.addEventListener('click', tooggleMenu)\r\n\r\n overlay.addEventListener('click', tooggleMenu)\r\n\r\n document.addEventListener('keydown', (event) => {\r\n if (event.key === 'Escape' && menu.classList.contains('header__menu--visible')) {\r\n tooggleMenu()\r\n }\r\n })\r\n\r\n function tooggleMenu () {\r\n menu.classList.toggle('header__menu--visible')\r\n overlay.classList.toggle('header__menu-overlay--visible')\r\n closeMenuButton.classList.toggle('nav-btn__btn--hidden')\r\n openMenuButton.classList.toggle('nav-btn__btn--hidden')\r\n }\r\n}\r\n\r\nexport default init\r\n","/*!\n * Viewer.js v1.11.7\n * https://fengyuanchen.github.io/viewerjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2024-11-24T04:32:19.116Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Viewer = factory());\n})(this, (function () { 'use strict';\n\n function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }\n function _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n }\n function _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n }\n\n var DEFAULTS = {\n /**\n * Enable a modal backdrop, specify `static` for a backdrop\n * which doesn't close the modal on click.\n * @type {boolean}\n */\n backdrop: true,\n /**\n * Show the button on the top-right of the viewer.\n * @type {boolean}\n */\n button: true,\n /**\n * Show the navbar.\n * @type {boolean | number}\n */\n navbar: true,\n /**\n * Specify the visibility and the content of the title.\n * @type {boolean | number | Function | Array}\n */\n title: true,\n /**\n * Show the toolbar.\n * @type {boolean | number | Object}\n */\n toolbar: true,\n /**\n * Custom class name(s) to add to the viewer's root element.\n * @type {string}\n */\n className: '',\n /**\n * Define where to put the viewer in modal mode.\n * @type {string | Element}\n */\n container: 'body',\n /**\n * Filter the images for viewing. Return true if the image is viewable.\n * @type {Function}\n */\n filter: null,\n /**\n * Enable to request fullscreen when play.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions}\n * @type {boolean|FullscreenOptions}\n */\n fullscreen: true,\n /**\n * Define the extra attributes to inherit from the original image.\n * @type {Array}\n */\n inheritedAttributes: ['crossOrigin', 'decoding', 'isMap', 'loading', 'referrerPolicy', 'sizes', 'srcset', 'useMap'],\n /**\n * Define the initial coverage of the viewing image.\n * @type {number}\n */\n initialCoverage: 0.9,\n /**\n * Define the initial index of the image for viewing.\n * @type {number}\n */\n initialViewIndex: 0,\n /**\n * Enable inline mode.\n * @type {boolean}\n */\n inline: false,\n /**\n * The amount of time to delay between automatically cycling an image when playing.\n * @type {number}\n */\n interval: 5000,\n /**\n * Enable keyboard support.\n * @type {boolean}\n */\n keyboard: true,\n /**\n * Focus the viewer when initialized.\n * @type {boolean}\n */\n focus: true,\n /**\n * Indicate if show a loading spinner when load image or not.\n * @type {boolean}\n */\n loading: true,\n /**\n * Indicate if enable loop viewing or not.\n * @type {boolean}\n */\n loop: true,\n /**\n * Min width of the viewer in inline mode.\n * @type {number}\n */\n minWidth: 200,\n /**\n * Min height of the viewer in inline mode.\n * @type {number}\n */\n minHeight: 100,\n /**\n * Enable to move the image.\n * @type {boolean}\n */\n movable: true,\n /**\n * Enable to rotate the image.\n * @type {boolean}\n */\n rotatable: true,\n /**\n * Enable to scale the image.\n * @type {boolean}\n */\n scalable: true,\n /**\n * Enable to zoom the image.\n * @type {boolean}\n */\n zoomable: true,\n /**\n * Enable to zoom the current image by dragging on the touch screen.\n * @type {boolean}\n */\n zoomOnTouch: true,\n /**\n * Enable to zoom the image by wheeling mouse.\n * @type {boolean}\n */\n zoomOnWheel: true,\n /**\n * Enable to slide to the next or previous image by swiping on the touch screen.\n * @type {boolean}\n */\n slideOnTouch: true,\n /**\n * Indicate if toggle the image size between its natural size\n * and initial size when double click on the image or not.\n * @type {boolean}\n */\n toggleOnDblclick: true,\n /**\n * Show the tooltip with image ratio (percentage) when zoom in or zoom out.\n * @type {boolean}\n */\n tooltip: true,\n /**\n * Enable CSS3 Transition for some special elements.\n * @type {boolean}\n */\n transition: true,\n /**\n * Define the CSS `z-index` value of viewer in modal mode.\n * @type {number}\n */\n zIndex: 2015,\n /**\n * Define the CSS `z-index` value of viewer in inline mode.\n * @type {number}\n */\n zIndexInline: 0,\n /**\n * Define the ratio when zoom the image by wheeling mouse.\n * @type {number}\n */\n zoomRatio: 0.1,\n /**\n * Define the min ratio of the image when zoom out.\n * @type {number}\n */\n minZoomRatio: 0.01,\n /**\n * Define the max ratio of the image when zoom in.\n * @type {number}\n */\n maxZoomRatio: 100,\n /**\n * Define where to get the original image URL for viewing.\n * @type {string | Function}\n */\n url: 'src',\n /**\n * Event shortcuts.\n * @type {Function}\n */\n ready: null,\n show: null,\n shown: null,\n hide: null,\n hidden: null,\n view: null,\n viewed: null,\n move: null,\n moved: null,\n rotate: null,\n rotated: null,\n scale: null,\n scaled: null,\n zoom: null,\n zoomed: null,\n play: null,\n stop: null\n };\n\n var TEMPLATE = '
' + '
' + '
' + '
' + '
' + '
' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ';\n\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var WINDOW = IS_BROWSER ? window : {};\n var IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false;\n var HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\n var NAMESPACE = 'viewer';\n\n // Actions\n var ACTION_MOVE = 'move';\n var ACTION_SWITCH = 'switch';\n var ACTION_ZOOM = 'zoom';\n\n // Classes\n var CLASS_ACTIVE = \"\".concat(NAMESPACE, \"-active\");\n var CLASS_CLOSE = \"\".concat(NAMESPACE, \"-close\");\n var CLASS_FADE = \"\".concat(NAMESPACE, \"-fade\");\n var CLASS_FIXED = \"\".concat(NAMESPACE, \"-fixed\");\n var CLASS_FULLSCREEN = \"\".concat(NAMESPACE, \"-fullscreen\");\n var CLASS_FULLSCREEN_EXIT = \"\".concat(NAMESPACE, \"-fullscreen-exit\");\n var CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\n var CLASS_HIDE_MD_DOWN = \"\".concat(NAMESPACE, \"-hide-md-down\");\n var CLASS_HIDE_SM_DOWN = \"\".concat(NAMESPACE, \"-hide-sm-down\");\n var CLASS_HIDE_XS_DOWN = \"\".concat(NAMESPACE, \"-hide-xs-down\");\n var CLASS_IN = \"\".concat(NAMESPACE, \"-in\");\n var CLASS_INVISIBLE = \"\".concat(NAMESPACE, \"-invisible\");\n var CLASS_LOADING = \"\".concat(NAMESPACE, \"-loading\");\n var CLASS_MOVE = \"\".concat(NAMESPACE, \"-move\");\n var CLASS_OPEN = \"\".concat(NAMESPACE, \"-open\");\n var CLASS_SHOW = \"\".concat(NAMESPACE, \"-show\");\n var CLASS_TRANSITION = \"\".concat(NAMESPACE, \"-transition\");\n\n // Native events\n var EVENT_CLICK = 'click';\n var EVENT_DBLCLICK = 'dblclick';\n var EVENT_DRAG_START = 'dragstart';\n var EVENT_FOCUSIN = 'focusin';\n var EVENT_KEY_DOWN = 'keydown';\n var EVENT_LOAD = 'load';\n var EVENT_ERROR = 'error';\n var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\n var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\n var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\n var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\n var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\n var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\n var EVENT_RESIZE = 'resize';\n var EVENT_TRANSITION_END = 'transitionend';\n var EVENT_WHEEL = 'wheel';\n\n // Custom events\n var EVENT_READY = 'ready';\n var EVENT_SHOW = 'show';\n var EVENT_SHOWN = 'shown';\n var EVENT_HIDE = 'hide';\n var EVENT_HIDDEN = 'hidden';\n var EVENT_VIEW = 'view';\n var EVENT_VIEWED = 'viewed';\n var EVENT_MOVE = 'move';\n var EVENT_MOVED = 'moved';\n var EVENT_ROTATE = 'rotate';\n var EVENT_ROTATED = 'rotated';\n var EVENT_SCALE = 'scale';\n var EVENT_SCALED = 'scaled';\n var EVENT_ZOOM = 'zoom';\n var EVENT_ZOOMED = 'zoomed';\n var EVENT_PLAY = 'play';\n var EVENT_STOP = 'stop';\n\n // Data keys\n var DATA_ACTION = \"\".concat(NAMESPACE, \"Action\");\n\n // RegExps\n var REGEXP_SPACES = /\\s\\s*/;\n\n // Misc\n var BUTTONS = ['zoom-in', 'zoom-out', 'one-to-one', 'reset', 'prev', 'play', 'next', 'rotate-left', 'rotate-right', 'flip-horizontal', 'flip-vertical'];\n\n /**\n * Check if the given value is a string.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a string, else `false`.\n */\n function isString(value) {\n return typeof value === 'string';\n }\n\n /**\n * Check if the given value is not a number.\n */\n var isNaN = Number.isNaN || WINDOW.isNaN;\n\n /**\n * Check if the given value is a number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\n function isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n }\n\n /**\n * Check if the given value is undefined.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n\n /**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\n function isObject(value) {\n return _typeof(value) === 'object' && value !== null;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n /**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\n function isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n try {\n var _constructor = value.constructor;\n var prototype = _constructor.prototype;\n return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Check if the given value is a function.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\n function isFunction(value) {\n return typeof value === 'function';\n }\n\n /**\n * Iterate the given data.\n * @param {*} data - The data to iterate.\n * @param {Function} callback - The process function for each element.\n * @returns {*} The original data.\n */\n function forEach(data, callback) {\n if (data && isFunction(callback)) {\n if (Array.isArray(data) || isNumber(data.length) /* array-like */) {\n var length = data.length;\n var i;\n for (i = 0; i < length; i += 1) {\n if (callback.call(data, data[i], i, data) === false) {\n break;\n }\n }\n } else if (isObject(data)) {\n Object.keys(data).forEach(function (key) {\n callback.call(data, data[key], key, data);\n });\n }\n }\n return data;\n }\n\n /**\n * Extend the given object.\n * @param {*} obj - The object to be extended.\n * @param {*} args - The rest objects which will be merged to the first object.\n * @returns {Object} The extended object.\n */\n var assign = Object.assign || function assign(obj) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (isObject(obj) && args.length > 0) {\n args.forEach(function (arg) {\n if (isObject(arg)) {\n Object.keys(arg).forEach(function (key) {\n obj[key] = arg[key];\n });\n }\n });\n }\n return obj;\n };\n var REGEXP_SUFFIX = /^(?:width|height|left|top|marginLeft|marginTop)$/;\n\n /**\n * Apply styles to the given element.\n * @param {Element} element - The target element.\n * @param {Object} styles - The styles for applying.\n */\n function setStyle(element, styles) {\n var style = element.style;\n forEach(styles, function (value, property) {\n if (REGEXP_SUFFIX.test(property) && isNumber(value)) {\n value += 'px';\n }\n style[property] = value;\n });\n }\n\n /**\n * Escape a string for using in HTML.\n * @param {String} value - The string to escape.\n * @returns {String} Returns the escaped string.\n */\n function escapeHTMLEntities(value) {\n return isString(value) ? value.replace(/&(?!amp;|quot;|#39;|lt;|gt;)/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>') : value;\n }\n\n /**\n * Check if the given element has a special class.\n * @param {Element} element - The element to check.\n * @param {string} value - The class to search.\n * @returns {boolean} Returns `true` if the special class was found.\n */\n function hasClass(element, value) {\n if (!element || !value) {\n return false;\n }\n return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1;\n }\n\n /**\n * Add classes to the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be added.\n */\n function addClass(element, value) {\n if (!element || !value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n addClass(elem, value);\n });\n return;\n }\n if (element.classList) {\n element.classList.add(value);\n return;\n }\n var className = element.className.trim();\n if (!className) {\n element.className = value;\n } else if (className.indexOf(value) < 0) {\n element.className = \"\".concat(className, \" \").concat(value);\n }\n }\n\n /**\n * Remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be removed.\n */\n function removeClass(element, value) {\n if (!element || !value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n removeClass(elem, value);\n });\n return;\n }\n if (element.classList) {\n element.classList.remove(value);\n return;\n }\n if (element.className.indexOf(value) >= 0) {\n element.className = element.className.replace(value, '');\n }\n }\n\n /**\n * Add or remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be toggled.\n * @param {boolean} added - Add only.\n */\n function toggleClass(element, value, added) {\n if (!value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n toggleClass(elem, value, added);\n });\n return;\n }\n\n // IE10-11 doesn't support the second parameter of `classList.toggle`\n if (added) {\n addClass(element, value);\n } else {\n removeClass(element, value);\n }\n }\n var REGEXP_HYPHENATE = /([a-z\\d])([A-Z])/g;\n\n /**\n * Transform the given string from camelCase to kebab-case\n * @param {string} value - The value to transform.\n * @returns {string} The transformed value.\n */\n function hyphenate(value) {\n return value.replace(REGEXP_HYPHENATE, '$1-$2').toLowerCase();\n }\n\n /**\n * Get data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to get.\n * @returns {string} The data value.\n */\n function getData(element, name) {\n if (isObject(element[name])) {\n return element[name];\n }\n if (element.dataset) {\n return element.dataset[name];\n }\n return element.getAttribute(\"data-\".concat(hyphenate(name)));\n }\n\n /**\n * Set data to the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to set.\n * @param {string} data - The data value.\n */\n function setData(element, name, data) {\n if (isObject(data)) {\n element[name] = data;\n } else if (element.dataset) {\n element.dataset[name] = data;\n } else {\n element.setAttribute(\"data-\".concat(hyphenate(name)), data);\n }\n }\n var onceSupported = function () {\n var supported = false;\n if (IS_BROWSER) {\n var once = false;\n var listener = function listener() {};\n var options = Object.defineProperty({}, 'once', {\n get: function get() {\n supported = true;\n return once;\n },\n /**\n * This setter can fix a `TypeError` in strict mode\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only}\n * @param {boolean} value - The value to set\n */\n set: function set(value) {\n once = value;\n }\n });\n WINDOW.addEventListener('test', listener, options);\n WINDOW.removeEventListener('test', listener, options);\n }\n return supported;\n }();\n\n /**\n * Remove event listener from the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n function removeListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (!onceSupported) {\n var listeners = element.listeners;\n if (listeners && listeners[event] && listeners[event][listener]) {\n handler = listeners[event][listener];\n delete listeners[event][listener];\n if (Object.keys(listeners[event]).length === 0) {\n delete listeners[event];\n }\n if (Object.keys(listeners).length === 0) {\n delete element.listeners;\n }\n }\n }\n element.removeEventListener(event, handler, options);\n });\n }\n\n /**\n * Add event listener to the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n function addListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (options.once && !onceSupported) {\n var _element$listeners = element.listeners,\n listeners = _element$listeners === void 0 ? {} : _element$listeners;\n _handler = function handler() {\n delete listeners[event][listener];\n element.removeEventListener(event, _handler, options);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n listener.apply(element, args);\n };\n if (!listeners[event]) {\n listeners[event] = {};\n }\n if (listeners[event][listener]) {\n element.removeEventListener(event, listeners[event][listener], options);\n }\n listeners[event][listener] = _handler;\n element.listeners = listeners;\n }\n element.addEventListener(event, _handler, options);\n });\n }\n\n /**\n * Dispatch event on the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Object} data - The additional event data.\n * @param {Object} options - The additional event options.\n * @returns {boolean} Indicate if the event is default prevented or not.\n */\n function dispatchEvent(element, type, data, options) {\n var event;\n\n // Event and CustomEvent on IE9-11 are global objects, not constructors\n if (isFunction(Event) && isFunction(CustomEvent)) {\n event = new CustomEvent(type, _objectSpread2({\n bubbles: true,\n cancelable: true,\n detail: data\n }, options));\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(type, true, true, data);\n }\n return element.dispatchEvent(event);\n }\n\n /**\n * Get the offset base on the document.\n * @param {Element} element - The target element.\n * @returns {Object} The offset data.\n */\n function getOffset(element) {\n var box = element.getBoundingClientRect();\n return {\n left: box.left + (window.pageXOffset - document.documentElement.clientLeft),\n top: box.top + (window.pageYOffset - document.documentElement.clientTop)\n };\n }\n\n /**\n * Get transforms base on the given object.\n * @param {Object} obj - The target object.\n * @returns {string} A string contains transform values.\n */\n function getTransforms(_ref) {\n var rotate = _ref.rotate,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n var values = [];\n if (isNumber(translateX) && translateX !== 0) {\n values.push(\"translateX(\".concat(translateX, \"px)\"));\n }\n if (isNumber(translateY) && translateY !== 0) {\n values.push(\"translateY(\".concat(translateY, \"px)\"));\n }\n\n // Rotate should come first before scale to match orientation transform\n if (isNumber(rotate) && rotate !== 0) {\n values.push(\"rotate(\".concat(rotate, \"deg)\"));\n }\n if (isNumber(scaleX) && scaleX !== 1) {\n values.push(\"scaleX(\".concat(scaleX, \")\"));\n }\n if (isNumber(scaleY) && scaleY !== 1) {\n values.push(\"scaleY(\".concat(scaleY, \")\"));\n }\n var transform = values.length ? values.join(' ') : 'none';\n return {\n WebkitTransform: transform,\n msTransform: transform,\n transform: transform\n };\n }\n\n /**\n * Get an image name from an image url.\n * @param {string} url - The target url.\n * @example\n * // picture.jpg\n * getImageNameFromURL('https://domain.com/path/to/picture.jpg?size=1280×960')\n * @returns {string} A string contains the image name.\n */\n function getImageNameFromURL(url) {\n return isString(url) ? decodeURIComponent(url.replace(/^.*\\//, '').replace(/[?&#].*$/, '')) : '';\n }\n var IS_SAFARI = WINDOW.navigator && /Version\\/\\d+(\\.\\d+)+?\\s+Safari/i.test(WINDOW.navigator.userAgent);\n\n /**\n * Get an image's natural sizes.\n * @param {string} image - The target image.\n * @param {Object} options - The viewer options.\n * @param {Function} callback - The callback function.\n * @returns {HTMLImageElement} The new image.\n */\n function getImageNaturalSizes(image, options, callback) {\n var newImage = document.createElement('img');\n\n // Modern browsers (except Safari)\n if (image.naturalWidth && !IS_SAFARI) {\n callback(image.naturalWidth, image.naturalHeight);\n return newImage;\n }\n var body = document.body || document.documentElement;\n newImage.onload = function () {\n callback(newImage.width, newImage.height);\n if (!IS_SAFARI) {\n body.removeChild(newImage);\n }\n };\n forEach(options.inheritedAttributes, function (name) {\n var value = image.getAttribute(name);\n if (value !== null) {\n newImage.setAttribute(name, value);\n }\n });\n newImage.src = image.src;\n\n // iOS Safari will convert the image automatically\n // with its orientation once append it into DOM\n if (!IS_SAFARI) {\n newImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;';\n body.appendChild(newImage);\n }\n return newImage;\n }\n\n /**\n * Get the related class name of a responsive type number.\n * @param {string} type - The responsive type.\n * @returns {string} The related class name.\n */\n function getResponsiveClass(type) {\n switch (type) {\n case 2:\n return CLASS_HIDE_XS_DOWN;\n case 3:\n return CLASS_HIDE_SM_DOWN;\n case 4:\n return CLASS_HIDE_MD_DOWN;\n default:\n return '';\n }\n }\n\n /**\n * Get the max ratio of a group of pointers.\n * @param {string} pointers - The target pointers.\n * @returns {number} The result ratio.\n */\n function getMaxZoomRatio(pointers) {\n var pointers2 = _objectSpread2({}, pointers);\n var ratios = [];\n forEach(pointers, function (pointer, pointerId) {\n delete pointers2[pointerId];\n forEach(pointers2, function (pointer2) {\n var x1 = Math.abs(pointer.startX - pointer2.startX);\n var y1 = Math.abs(pointer.startY - pointer2.startY);\n var x2 = Math.abs(pointer.endX - pointer2.endX);\n var y2 = Math.abs(pointer.endY - pointer2.endY);\n var z1 = Math.sqrt(x1 * x1 + y1 * y1);\n var z2 = Math.sqrt(x2 * x2 + y2 * y2);\n var ratio = (z2 - z1) / z1;\n ratios.push(ratio);\n });\n });\n ratios.sort(function (a, b) {\n return Math.abs(a) < Math.abs(b);\n });\n return ratios[0];\n }\n\n /**\n * Get a pointer from an event object.\n * @param {Object} event - The target event object.\n * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not.\n * @returns {Object} The result pointer contains start and/or end point coordinates.\n */\n function getPointer(_ref2, endOnly) {\n var pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n var end = {\n endX: pageX,\n endY: pageY\n };\n return endOnly ? end : _objectSpread2({\n timeStamp: Date.now(),\n startX: pageX,\n startY: pageY\n }, end);\n }\n\n /**\n * Get the center point coordinate of a group of pointers.\n * @param {Object} pointers - The target pointers.\n * @returns {Object} The center point coordinate.\n */\n function getPointersCenter(pointers) {\n var pageX = 0;\n var pageY = 0;\n var count = 0;\n forEach(pointers, function (_ref3) {\n var startX = _ref3.startX,\n startY = _ref3.startY;\n pageX += startX;\n pageY += startY;\n count += 1;\n });\n pageX /= count;\n pageY /= count;\n return {\n pageX: pageX,\n pageY: pageY\n };\n }\n\n var render = {\n render: function render() {\n this.initContainer();\n this.initViewer();\n this.initList();\n this.renderViewer();\n },\n initBody: function initBody() {\n var ownerDocument = this.element.ownerDocument;\n var body = ownerDocument.body || ownerDocument.documentElement;\n this.body = body;\n this.scrollbarWidth = window.innerWidth - ownerDocument.documentElement.clientWidth;\n this.initialBodyPaddingRight = body.style.paddingRight;\n this.initialBodyComputedPaddingRight = window.getComputedStyle(body).paddingRight;\n },\n initContainer: function initContainer() {\n this.containerData = {\n width: window.innerWidth,\n height: window.innerHeight\n };\n },\n initViewer: function initViewer() {\n var options = this.options,\n parent = this.parent;\n var viewerData;\n if (options.inline) {\n viewerData = {\n width: Math.max(parent.offsetWidth, options.minWidth),\n height: Math.max(parent.offsetHeight, options.minHeight)\n };\n this.parentData = viewerData;\n }\n if (this.fulled || !viewerData) {\n viewerData = this.containerData;\n }\n this.viewerData = assign({}, viewerData);\n },\n renderViewer: function renderViewer() {\n if (this.options.inline && !this.fulled) {\n setStyle(this.viewer, this.viewerData);\n }\n },\n initList: function initList() {\n var _this = this;\n var element = this.element,\n options = this.options,\n list = this.list;\n var items = [];\n\n // initList may be called in this.update, so should keep idempotent\n list.innerHTML = '';\n forEach(this.images, function (image, index) {\n var src = image.src;\n var alt = image.alt || getImageNameFromURL(src);\n var url = _this.getImageURL(image);\n if (src || url) {\n var item = document.createElement('li');\n var img = document.createElement('img');\n forEach(options.inheritedAttributes, function (name) {\n var value = image.getAttribute(name);\n if (value !== null) {\n img.setAttribute(name, value);\n }\n });\n if (options.navbar) {\n img.src = src || url;\n }\n img.alt = alt;\n img.setAttribute('data-original-url', url || src);\n item.setAttribute('data-index', index);\n item.setAttribute('data-viewer-action', 'view');\n item.setAttribute('role', 'button');\n if (options.keyboard) {\n item.setAttribute('tabindex', 0);\n }\n item.appendChild(img);\n list.appendChild(item);\n items.push(item);\n }\n });\n this.items = items;\n forEach(items, function (item) {\n var image = item.firstElementChild;\n var onLoad;\n var onError;\n setData(image, 'filled', true);\n if (options.loading) {\n addClass(item, CLASS_LOADING);\n }\n addListener(image, EVENT_LOAD, onLoad = function onLoad(event) {\n removeListener(image, EVENT_ERROR, onError);\n if (options.loading) {\n removeClass(item, CLASS_LOADING);\n }\n _this.loadImage(event);\n }, {\n once: true\n });\n addListener(image, EVENT_ERROR, onError = function onError() {\n removeListener(image, EVENT_LOAD, onLoad);\n if (options.loading) {\n removeClass(item, CLASS_LOADING);\n }\n }, {\n once: true\n });\n });\n if (options.transition) {\n addListener(element, EVENT_VIEWED, function () {\n addClass(list, CLASS_TRANSITION);\n }, {\n once: true\n });\n }\n },\n renderList: function renderList() {\n var index = this.index;\n var item = this.items[index];\n if (!item) {\n return;\n }\n var next = item.nextElementSibling;\n var gutter = parseInt(window.getComputedStyle(next || item).marginLeft, 10);\n var offsetWidth = item.offsetWidth;\n var outerWidth = offsetWidth + gutter;\n\n // Place the active item in the center of the screen\n setStyle(this.list, assign({\n width: outerWidth * this.length - gutter\n }, getTransforms({\n translateX: (this.viewerData.width - offsetWidth) / 2 - outerWidth * index\n })));\n },\n resetList: function resetList() {\n var list = this.list;\n list.innerHTML = '';\n removeClass(list, CLASS_TRANSITION);\n setStyle(list, getTransforms({\n translateX: 0\n }));\n },\n initImage: function initImage(done) {\n var _this2 = this;\n var options = this.options,\n image = this.image,\n viewerData = this.viewerData;\n var footerHeight = this.footer.offsetHeight;\n var viewerWidth = viewerData.width;\n var viewerHeight = Math.max(viewerData.height - footerHeight, footerHeight);\n var oldImageData = this.imageData || {};\n var sizingImage;\n this.imageInitializing = {\n abort: function abort() {\n sizingImage.onload = null;\n }\n };\n sizingImage = getImageNaturalSizes(image, options, function (naturalWidth, naturalHeight) {\n var aspectRatio = naturalWidth / naturalHeight;\n var initialCoverage = Math.max(0, Math.min(1, options.initialCoverage));\n var width = viewerWidth;\n var height = viewerHeight;\n _this2.imageInitializing = false;\n if (viewerHeight * aspectRatio > viewerWidth) {\n height = viewerWidth / aspectRatio;\n } else {\n width = viewerHeight * aspectRatio;\n }\n initialCoverage = isNumber(initialCoverage) ? initialCoverage : 0.9;\n width = Math.min(width * initialCoverage, naturalWidth);\n height = Math.min(height * initialCoverage, naturalHeight);\n var left = (viewerWidth - width) / 2;\n var top = (viewerHeight - height) / 2;\n var imageData = {\n left: left,\n top: top,\n x: left,\n y: top,\n width: width,\n height: height,\n oldRatio: 1,\n ratio: width / naturalWidth,\n aspectRatio: aspectRatio,\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight\n };\n var initialImageData = assign({}, imageData);\n if (options.rotatable) {\n imageData.rotate = oldImageData.rotate || 0;\n initialImageData.rotate = 0;\n }\n if (options.scalable) {\n imageData.scaleX = oldImageData.scaleX || 1;\n imageData.scaleY = oldImageData.scaleY || 1;\n initialImageData.scaleX = 1;\n initialImageData.scaleY = 1;\n }\n _this2.imageData = imageData;\n _this2.initialImageData = initialImageData;\n if (done) {\n done();\n }\n });\n },\n renderImage: function renderImage(done) {\n var _this3 = this;\n var image = this.image,\n imageData = this.imageData;\n setStyle(image, assign({\n width: imageData.width,\n height: imageData.height,\n // XXX: Not to use translateX/Y to avoid image shaking when zooming\n marginLeft: imageData.x,\n marginTop: imageData.y\n }, getTransforms(imageData)));\n if (done) {\n if ((this.viewing || this.moving || this.rotating || this.scaling || this.zooming) && this.options.transition && hasClass(image, CLASS_TRANSITION)) {\n var onTransitionEnd = function onTransitionEnd() {\n _this3.imageRendering = false;\n done();\n };\n this.imageRendering = {\n abort: function abort() {\n removeListener(image, EVENT_TRANSITION_END, onTransitionEnd);\n }\n };\n addListener(image, EVENT_TRANSITION_END, onTransitionEnd, {\n once: true\n });\n } else {\n done();\n }\n }\n },\n resetImage: function resetImage() {\n var image = this.image;\n if (image) {\n if (this.viewing) {\n this.viewing.abort();\n }\n image.parentNode.removeChild(image);\n this.image = null;\n this.title.innerHTML = '';\n }\n }\n };\n\n var events = {\n bind: function bind() {\n var options = this.options,\n viewer = this.viewer,\n canvas = this.canvas;\n var document = this.element.ownerDocument;\n addListener(viewer, EVENT_CLICK, this.onClick = this.click.bind(this));\n addListener(viewer, EVENT_DRAG_START, this.onDragStart = this.dragstart.bind(this));\n addListener(canvas, EVENT_POINTER_DOWN, this.onPointerDown = this.pointerdown.bind(this));\n addListener(document, EVENT_POINTER_MOVE, this.onPointerMove = this.pointermove.bind(this));\n addListener(document, EVENT_POINTER_UP, this.onPointerUp = this.pointerup.bind(this));\n addListener(document, EVENT_KEY_DOWN, this.onKeyDown = this.keydown.bind(this));\n addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this));\n if (options.zoomable && options.zoomOnWheel) {\n addListener(viewer, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {\n passive: false,\n capture: true\n });\n }\n if (options.toggleOnDblclick) {\n addListener(canvas, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this));\n }\n },\n unbind: function unbind() {\n var options = this.options,\n viewer = this.viewer,\n canvas = this.canvas;\n var document = this.element.ownerDocument;\n removeListener(viewer, EVENT_CLICK, this.onClick);\n removeListener(viewer, EVENT_DRAG_START, this.onDragStart);\n removeListener(canvas, EVENT_POINTER_DOWN, this.onPointerDown);\n removeListener(document, EVENT_POINTER_MOVE, this.onPointerMove);\n removeListener(document, EVENT_POINTER_UP, this.onPointerUp);\n removeListener(document, EVENT_KEY_DOWN, this.onKeyDown);\n removeListener(window, EVENT_RESIZE, this.onResize);\n if (options.zoomable && options.zoomOnWheel) {\n removeListener(viewer, EVENT_WHEEL, this.onWheel, {\n passive: false,\n capture: true\n });\n }\n if (options.toggleOnDblclick) {\n removeListener(canvas, EVENT_DBLCLICK, this.onDblclick);\n }\n }\n };\n\n var handlers = {\n click: function click(event) {\n var options = this.options,\n imageData = this.imageData;\n var target = event.target;\n var action = getData(target, DATA_ACTION);\n if (!action && target.localName === 'img' && target.parentElement.localName === 'li') {\n target = target.parentElement;\n action = getData(target, DATA_ACTION);\n }\n\n // Cancel the emulated click when the native click event was triggered.\n if (IS_TOUCH_DEVICE && event.isTrusted && target === this.canvas) {\n clearTimeout(this.clickCanvasTimeout);\n }\n switch (action) {\n case 'mix':\n if (this.played) {\n this.stop();\n } else if (options.inline) {\n if (this.fulled) {\n this.exit();\n } else {\n this.full();\n }\n } else {\n this.hide();\n }\n break;\n case 'hide':\n if (!this.pointerMoved) {\n this.hide();\n }\n break;\n case 'view':\n this.view(getData(target, 'index'));\n break;\n case 'zoom-in':\n this.zoom(0.1, true);\n break;\n case 'zoom-out':\n this.zoom(-0.1, true);\n break;\n case 'one-to-one':\n this.toggle();\n break;\n case 'reset':\n this.reset();\n break;\n case 'prev':\n this.prev(options.loop);\n break;\n case 'play':\n this.play(options.fullscreen);\n break;\n case 'next':\n this.next(options.loop);\n break;\n case 'rotate-left':\n this.rotate(-90);\n break;\n case 'rotate-right':\n this.rotate(90);\n break;\n case 'flip-horizontal':\n this.scaleX(-imageData.scaleX || -1);\n break;\n case 'flip-vertical':\n this.scaleY(-imageData.scaleY || -1);\n break;\n default:\n if (this.played) {\n this.stop();\n }\n }\n },\n dblclick: function dblclick(event) {\n event.preventDefault();\n if (this.viewed && event.target === this.image) {\n // Cancel the emulated double click when the native dblclick event was triggered.\n if (IS_TOUCH_DEVICE && event.isTrusted) {\n clearTimeout(this.doubleClickImageTimeout);\n }\n\n // XXX: No pageX/Y properties in custom event, fallback to the original event.\n this.toggle(event.isTrusted ? event : event.detail && event.detail.originalEvent);\n }\n },\n load: function load() {\n var _this = this;\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = false;\n }\n var element = this.element,\n options = this.options,\n image = this.image,\n index = this.index,\n viewerData = this.viewerData;\n removeClass(image, CLASS_INVISIBLE);\n if (options.loading) {\n removeClass(this.canvas, CLASS_LOADING);\n }\n image.style.cssText = 'height:0;' + \"margin-left:\".concat(viewerData.width / 2, \"px;\") + \"margin-top:\".concat(viewerData.height / 2, \"px;\") + 'max-width:none!important;' + 'position:relative;' + 'width:0;';\n this.initImage(function () {\n toggleClass(image, CLASS_MOVE, options.movable);\n toggleClass(image, CLASS_TRANSITION, options.transition);\n _this.renderImage(function () {\n _this.viewed = true;\n _this.viewing = false;\n if (isFunction(options.viewed)) {\n addListener(element, EVENT_VIEWED, options.viewed, {\n once: true\n });\n }\n dispatchEvent(element, EVENT_VIEWED, {\n originalImage: _this.images[index],\n index: index,\n image: image\n }, {\n cancelable: false\n });\n });\n });\n },\n loadImage: function loadImage(event) {\n var image = event.target;\n var parent = image.parentNode;\n var parentWidth = parent.offsetWidth || 30;\n var parentHeight = parent.offsetHeight || 50;\n var filled = !!getData(image, 'filled');\n getImageNaturalSizes(image, this.options, function (naturalWidth, naturalHeight) {\n var aspectRatio = naturalWidth / naturalHeight;\n var width = parentWidth;\n var height = parentHeight;\n if (parentHeight * aspectRatio > parentWidth) {\n if (filled) {\n width = parentHeight * aspectRatio;\n } else {\n height = parentWidth / aspectRatio;\n }\n } else if (filled) {\n height = parentWidth / aspectRatio;\n } else {\n width = parentHeight * aspectRatio;\n }\n setStyle(image, assign({\n width: width,\n height: height\n }, getTransforms({\n translateX: (parentWidth - width) / 2,\n translateY: (parentHeight - height) / 2\n })));\n });\n },\n keydown: function keydown(event) {\n var options = this.options;\n if (!options.keyboard) {\n return;\n }\n var keyCode = event.keyCode || event.which || event.charCode;\n switch (keyCode) {\n // Enter\n case 13:\n if (this.viewer.contains(event.target)) {\n this.click(event);\n }\n break;\n }\n if (!this.fulled) {\n return;\n }\n switch (keyCode) {\n // Escape\n case 27:\n if (this.played) {\n this.stop();\n } else if (options.inline) {\n if (this.fulled) {\n this.exit();\n }\n } else {\n this.hide();\n }\n break;\n\n // Space\n case 32:\n if (this.played) {\n this.stop();\n }\n break;\n\n // ArrowLeft\n case 37:\n if (this.played && this.playing) {\n this.playing.prev();\n } else {\n this.prev(options.loop);\n }\n break;\n\n // ArrowUp\n case 38:\n // Prevent scroll on Firefox\n event.preventDefault();\n\n // Zoom in\n this.zoom(options.zoomRatio, true);\n break;\n\n // ArrowRight\n case 39:\n if (this.played && this.playing) {\n this.playing.next();\n } else {\n this.next(options.loop);\n }\n break;\n\n // ArrowDown\n case 40:\n // Prevent scroll on Firefox\n event.preventDefault();\n\n // Zoom out\n this.zoom(-options.zoomRatio, true);\n break;\n\n // Ctrl + 0\n case 48:\n // Fall through\n\n // Ctrl + 1\n // eslint-disable-next-line no-fallthrough\n case 49:\n if (event.ctrlKey) {\n event.preventDefault();\n this.toggle();\n }\n break;\n }\n },\n dragstart: function dragstart(event) {\n if (event.target.localName === 'img') {\n event.preventDefault();\n }\n },\n pointerdown: function pointerdown(event) {\n var options = this.options,\n pointers = this.pointers;\n var buttons = event.buttons,\n button = event.button;\n this.pointerMoved = false;\n if (!this.viewed || this.showing || this.viewing || this.hiding\n\n // Handle mouse event and pointer event and ignore touch event\n || (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && (\n // No primary button (Usually the left button)\n isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0\n\n // Open context menu\n || event.ctrlKey)) {\n return;\n }\n\n // Prevent default behaviours as page zooming in touch devices.\n event.preventDefault();\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n pointers[touch.identifier] = getPointer(touch);\n });\n } else {\n pointers[event.pointerId || 0] = getPointer(event);\n }\n var action = options.movable ? ACTION_MOVE : false;\n if (options.zoomOnTouch && options.zoomable && Object.keys(pointers).length > 1) {\n action = ACTION_ZOOM;\n } else if (options.slideOnTouch && (event.pointerType === 'touch' || event.type === 'touchstart') && this.isSwitchable()) {\n action = ACTION_SWITCH;\n }\n if (options.transition && (action === ACTION_MOVE || action === ACTION_ZOOM)) {\n removeClass(this.image, CLASS_TRANSITION);\n }\n this.action = action;\n },\n pointermove: function pointermove(event) {\n var pointers = this.pointers,\n action = this.action;\n if (!this.viewed || !action) {\n return;\n }\n event.preventDefault();\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n assign(pointers[touch.identifier] || {}, getPointer(touch, true));\n });\n } else {\n assign(pointers[event.pointerId || 0] || {}, getPointer(event, true));\n }\n this.change(event);\n },\n pointerup: function pointerup(event) {\n var _this2 = this;\n var options = this.options,\n action = this.action,\n pointers = this.pointers;\n var pointer;\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n pointer = pointers[touch.identifier];\n delete pointers[touch.identifier];\n });\n } else {\n pointer = pointers[event.pointerId || 0];\n delete pointers[event.pointerId || 0];\n }\n if (!action) {\n return;\n }\n event.preventDefault();\n if (options.transition && (action === ACTION_MOVE || action === ACTION_ZOOM)) {\n addClass(this.image, CLASS_TRANSITION);\n }\n this.action = false;\n\n // Emulate click and double click in touch devices to support backdrop and image zooming (#210).\n if (IS_TOUCH_DEVICE && action !== ACTION_ZOOM && pointer && Date.now() - pointer.timeStamp < 500) {\n clearTimeout(this.clickCanvasTimeout);\n clearTimeout(this.doubleClickImageTimeout);\n if (options.toggleOnDblclick && this.viewed && event.target === this.image) {\n if (this.imageClicked) {\n this.imageClicked = false;\n\n // This timeout will be cleared later when a native dblclick event is triggering\n this.doubleClickImageTimeout = setTimeout(function () {\n dispatchEvent(_this2.image, EVENT_DBLCLICK, {\n originalEvent: event\n });\n }, 50);\n } else {\n this.imageClicked = true;\n\n // The default timing of a double click in Windows is 500 ms\n this.doubleClickImageTimeout = setTimeout(function () {\n _this2.imageClicked = false;\n }, 500);\n }\n } else {\n this.imageClicked = false;\n if (options.backdrop && options.backdrop !== 'static' && event.target === this.canvas) {\n // This timeout will be cleared later when a native click event is triggering\n this.clickCanvasTimeout = setTimeout(function () {\n dispatchEvent(_this2.canvas, EVENT_CLICK, {\n originalEvent: event\n });\n }, 50);\n }\n }\n }\n },\n resize: function resize() {\n var _this3 = this;\n if (!this.isShown || this.hiding) {\n return;\n }\n if (this.fulled) {\n this.close();\n this.initBody();\n this.open();\n }\n this.initContainer();\n this.initViewer();\n this.renderViewer();\n this.renderList();\n if (this.viewed) {\n this.initImage(function () {\n _this3.renderImage();\n });\n }\n if (this.played) {\n if (this.options.fullscreen && this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {\n this.stop();\n return;\n }\n forEach(this.player.getElementsByTagName('img'), function (image) {\n addListener(image, EVENT_LOAD, _this3.loadImage.bind(_this3), {\n once: true\n });\n dispatchEvent(image, EVENT_LOAD);\n });\n }\n },\n wheel: function wheel(event) {\n var _this4 = this;\n if (!this.viewed) {\n return;\n }\n event.preventDefault();\n\n // Limit wheel speed to prevent zoom too fast\n if (this.wheeling) {\n return;\n }\n this.wheeling = true;\n setTimeout(function () {\n _this4.wheeling = false;\n }, 50);\n var ratio = Number(this.options.zoomRatio) || 0.1;\n var delta = 1;\n if (event.deltaY) {\n delta = event.deltaY > 0 ? 1 : -1;\n } else if (event.wheelDelta) {\n delta = -event.wheelDelta / 120;\n } else if (event.detail) {\n delta = event.detail > 0 ? 1 : -1;\n }\n this.zoom(-delta * ratio, true, null, event);\n }\n };\n\n var methods = {\n /** Show the viewer (only available in modal mode)\n * @param {boolean} [immediate=false] - Indicates if show the viewer immediately or not.\n * @returns {Viewer} this\n */\n show: function show() {\n var immediate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var element = this.element,\n options = this.options;\n if (options.inline || this.showing || this.isShown || this.showing) {\n return this;\n }\n if (!this.ready) {\n this.build();\n if (this.ready) {\n this.show(immediate);\n }\n return this;\n }\n if (isFunction(options.show)) {\n addListener(element, EVENT_SHOW, options.show, {\n once: true\n });\n }\n if (dispatchEvent(element, EVENT_SHOW) === false || !this.ready) {\n return this;\n }\n if (this.hiding) {\n this.transitioning.abort();\n }\n this.showing = true;\n this.open();\n var viewer = this.viewer;\n removeClass(viewer, CLASS_HIDE);\n viewer.setAttribute('role', 'dialog');\n viewer.setAttribute('aria-labelledby', this.title.id);\n viewer.setAttribute('aria-modal', true);\n viewer.removeAttribute('aria-hidden');\n if (options.transition && !immediate) {\n var shown = this.shown.bind(this);\n this.transitioning = {\n abort: function abort() {\n removeListener(viewer, EVENT_TRANSITION_END, shown);\n removeClass(viewer, CLASS_IN);\n }\n };\n addClass(viewer, CLASS_TRANSITION);\n\n // Force reflow to enable CSS3 transition\n viewer.initialOffsetWidth = viewer.offsetWidth;\n addListener(viewer, EVENT_TRANSITION_END, shown, {\n once: true\n });\n addClass(viewer, CLASS_IN);\n } else {\n addClass(viewer, CLASS_IN);\n this.shown();\n }\n return this;\n },\n /**\n * Hide the viewer (only available in modal mode)\n * @param {boolean} [immediate=false] - Indicates if hide the viewer immediately or not.\n * @returns {Viewer} this\n */\n hide: function hide() {\n var _this = this;\n var immediate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var element = this.element,\n options = this.options;\n if (options.inline || this.hiding || !(this.isShown || this.showing)) {\n return this;\n }\n if (isFunction(options.hide)) {\n addListener(element, EVENT_HIDE, options.hide, {\n once: true\n });\n }\n if (dispatchEvent(element, EVENT_HIDE) === false) {\n return this;\n }\n if (this.showing) {\n this.transitioning.abort();\n }\n this.hiding = true;\n if (this.played) {\n this.stop();\n } else if (this.viewing) {\n this.viewing.abort();\n }\n var viewer = this.viewer,\n image = this.image;\n var hideImmediately = function hideImmediately() {\n removeClass(viewer, CLASS_IN);\n _this.hidden();\n };\n if (options.transition && !immediate) {\n var _onViewerTransitionEnd = function onViewerTransitionEnd(event) {\n // Ignore all propagating `transitionend` events (#275).\n if (event && event.target === viewer) {\n removeListener(viewer, EVENT_TRANSITION_END, _onViewerTransitionEnd);\n _this.hidden();\n }\n };\n var onImageTransitionEnd = function onImageTransitionEnd() {\n // In case of show the viewer by `viewer.show(true)` previously (#407).\n if (hasClass(viewer, CLASS_TRANSITION)) {\n addListener(viewer, EVENT_TRANSITION_END, _onViewerTransitionEnd);\n removeClass(viewer, CLASS_IN);\n } else {\n hideImmediately();\n }\n };\n this.transitioning = {\n abort: function abort() {\n if (_this.viewed && hasClass(image, CLASS_TRANSITION)) {\n removeListener(image, EVENT_TRANSITION_END, onImageTransitionEnd);\n } else if (hasClass(viewer, CLASS_TRANSITION)) {\n removeListener(viewer, EVENT_TRANSITION_END, _onViewerTransitionEnd);\n }\n }\n };\n\n // In case of hiding the viewer when holding on the image (#255),\n // note that the `CLASS_TRANSITION` class will be removed on pointer down.\n if (this.viewed && hasClass(image, CLASS_TRANSITION)) {\n addListener(image, EVENT_TRANSITION_END, onImageTransitionEnd, {\n once: true\n });\n this.zoomTo(0, false, null, null, true);\n } else {\n onImageTransitionEnd();\n }\n } else {\n hideImmediately();\n }\n return this;\n },\n /**\n * View one of the images with image's index\n * @param {number} index - The index of the image to view.\n * @returns {Viewer} this\n */\n view: function view() {\n var _this2 = this;\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.initialViewIndex;\n index = Number(index) || 0;\n if (this.hiding || this.played || index < 0 || index >= this.length || this.viewed && index === this.index) {\n return this;\n }\n if (!this.isShown) {\n this.index = index;\n return this.show();\n }\n if (this.viewing) {\n this.viewing.abort();\n }\n var element = this.element,\n options = this.options,\n title = this.title,\n canvas = this.canvas;\n var item = this.items[index];\n var img = item.querySelector('img');\n var url = getData(img, 'originalUrl');\n var alt = img.getAttribute('alt');\n var image = document.createElement('img');\n forEach(options.inheritedAttributes, function (name) {\n var value = img.getAttribute(name);\n if (value !== null) {\n image.setAttribute(name, value);\n }\n });\n image.src = url;\n image.alt = alt;\n if (isFunction(options.view)) {\n addListener(element, EVENT_VIEW, options.view, {\n once: true\n });\n }\n if (dispatchEvent(element, EVENT_VIEW, {\n originalImage: this.images[index],\n index: index,\n image: image\n }) === false || !this.isShown || this.hiding || this.played) {\n return this;\n }\n var activeItem = this.items[this.index];\n if (activeItem) {\n removeClass(activeItem, CLASS_ACTIVE);\n activeItem.removeAttribute('aria-selected');\n }\n addClass(item, CLASS_ACTIVE);\n item.setAttribute('aria-selected', true);\n if (options.focus) {\n item.focus();\n }\n this.image = image;\n this.viewed = false;\n this.index = index;\n this.imageData = {};\n addClass(image, CLASS_INVISIBLE);\n if (options.loading) {\n addClass(canvas, CLASS_LOADING);\n }\n canvas.innerHTML = '';\n canvas.appendChild(image);\n\n // Center current item\n this.renderList();\n\n // Clear title\n title.innerHTML = '';\n\n // Generate title after viewed\n var onViewed = function onViewed() {\n var imageData = _this2.imageData;\n var render = Array.isArray(options.title) ? options.title[1] : options.title;\n title.innerHTML = escapeHTMLEntities(isFunction(render) ? render.call(_this2, image, imageData) : \"\".concat(alt, \" (\").concat(imageData.naturalWidth, \" \\xD7 \").concat(imageData.naturalHeight, \")\"));\n };\n var onLoad;\n var onError;\n addListener(element, EVENT_VIEWED, onViewed, {\n once: true\n });\n this.viewing = {\n abort: function abort() {\n removeListener(element, EVENT_VIEWED, onViewed);\n if (image.complete) {\n if (_this2.imageRendering) {\n _this2.imageRendering.abort();\n } else if (_this2.imageInitializing) {\n _this2.imageInitializing.abort();\n }\n } else {\n // Cancel download to save bandwidth.\n image.src = '';\n removeListener(image, EVENT_LOAD, onLoad);\n if (_this2.timeout) {\n clearTimeout(_this2.timeout);\n }\n }\n }\n };\n if (image.complete) {\n this.load();\n } else {\n addListener(image, EVENT_LOAD, onLoad = function onLoad() {\n removeListener(image, EVENT_ERROR, onError);\n _this2.load();\n }, {\n once: true\n });\n addListener(image, EVENT_ERROR, onError = function onError() {\n removeListener(image, EVENT_LOAD, onLoad);\n if (_this2.timeout) {\n clearTimeout(_this2.timeout);\n _this2.timeout = false;\n }\n removeClass(image, CLASS_INVISIBLE);\n if (options.loading) {\n removeClass(_this2.canvas, CLASS_LOADING);\n }\n }, {\n once: true\n });\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n\n // Make the image visible if it fails to load within 1s\n this.timeout = setTimeout(function () {\n removeClass(image, CLASS_INVISIBLE);\n _this2.timeout = false;\n }, 1000);\n }\n return this;\n },\n /**\n * View the previous image\n * @param {boolean} [loop=false] - Indicate if view the last one\n * when it is the first one at present.\n * @returns {Viewer} this\n */\n prev: function prev() {\n var loop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var index = this.index - 1;\n if (index < 0) {\n index = loop ? this.length - 1 : 0;\n }\n this.view(index);\n return this;\n },\n /**\n * View the next image\n * @param {boolean} [loop=false] - Indicate if view the first one\n * when it is the last one at present.\n * @returns {Viewer} this\n */\n next: function next() {\n var loop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var maxIndex = this.length - 1;\n var index = this.index + 1;\n if (index > maxIndex) {\n index = loop ? 0 : maxIndex;\n }\n this.view(index);\n return this;\n },\n /**\n * Move the image with relative offsets.\n * @param {number} x - The moving distance in the horizontal direction.\n * @param {number} [y=x] The moving distance in the vertical direction.\n * @returns {Viewer} this\n */\n move: function move(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n var imageData = this.imageData;\n this.moveTo(isUndefined(x) ? x : imageData.x + Number(x), isUndefined(y) ? y : imageData.y + Number(y));\n return this;\n },\n /**\n * Move the image to an absolute point.\n * @param {number} x - The new position in the horizontal direction.\n * @param {number} [y=x] - The new position in the vertical direction.\n * @param {Event} [_originalEvent=null] - The original event if any.\n * @returns {Viewer} this\n */\n moveTo: function moveTo(x) {\n var _this3 = this;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n var _originalEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var element = this.element,\n options = this.options,\n imageData = this.imageData;\n x = Number(x);\n y = Number(y);\n if (this.viewed && !this.played && options.movable) {\n var oldX = imageData.x;\n var oldY = imageData.y;\n var changed = false;\n if (isNumber(x)) {\n changed = true;\n } else {\n x = oldX;\n }\n if (isNumber(y)) {\n changed = true;\n } else {\n y = oldY;\n }\n if (changed) {\n if (isFunction(options.move)) {\n addListener(element, EVENT_MOVE, options.move, {\n once: true\n });\n }\n if (dispatchEvent(element, EVENT_MOVE, {\n x: x,\n y: y,\n oldX: oldX,\n oldY: oldY,\n originalEvent: _originalEvent\n }) === false) {\n return this;\n }\n imageData.x = x;\n imageData.y = y;\n imageData.left = x;\n imageData.top = y;\n this.moving = true;\n this.renderImage(function () {\n _this3.moving = false;\n if (isFunction(options.moved)) {\n addListener(element, EVENT_MOVED, options.moved, {\n once: true\n });\n }\n dispatchEvent(element, EVENT_MOVED, {\n x: x,\n y: y,\n oldX: oldX,\n oldY: oldY,\n originalEvent: _originalEvent\n }, {\n cancelable: false\n });\n });\n }\n }\n return this;\n },\n /**\n * Rotate the image with a relative degree.\n * @param {number} degree - The rotate degree.\n * @returns {Viewer} this\n */\n rotate: function rotate(degree) {\n this.rotateTo((this.imageData.rotate || 0) + Number(degree));\n return this;\n },\n /**\n * Rotate the image to an absolute degree.\n * @param {number} degree - The rotate degree.\n * @returns {Viewer} this\n */\n rotateTo: function rotateTo(degree) {\n var _this4 = this;\n var element = this.element,\n options = this.options,\n imageData = this.imageData;\n degree = Number(degree);\n if (isNumber(degree) && this.viewed && !this.played && options.rotatable) {\n var oldDegree = imageData.rotate;\n if (isFunction(options.rotate)) {\n addListener(element, EVENT_ROTATE, options.rotate, {\n once: true\n });\n }\n if (dispatchEvent(element, EVENT_ROTATE, {\n degree: degree,\n oldDegree: oldDegree\n }) === false) {\n return this;\n }\n imageData.rotate = degree;\n this.rotating = true;\n this.renderImage(function () {\n _this4.rotating = false;\n if (isFunction(options.rotated)) {\n addListener(element, EVENT_ROTATED, options.rotated, {\n once: true\n });\n }\n dispatchEvent(element, EVENT_ROTATED, {\n degree: degree,\n oldDegree: oldDegree\n }, {\n cancelable: false\n });\n });\n }\n return this;\n },\n /**\n * Scale the image on the x-axis.\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @returns {Viewer} this\n */\n scaleX: function scaleX(_scaleX) {\n this.scale(_scaleX, this.imageData.scaleY);\n return this;\n },\n /**\n * Scale the image on the y-axis.\n * @param {number} scaleY - The scale ratio on the y-axis.\n * @returns {Viewer} this\n */\n scaleY: function scaleY(_scaleY) {\n this.scale(this.imageData.scaleX, _scaleY);\n return this;\n },\n /**\n * Scale the image.\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis.\n * @returns {Viewer} this\n */\n scale: function scale(scaleX) {\n var _this5 = this;\n var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n var element = this.element,\n options = this.options,\n imageData = this.imageData;\n scaleX = Number(scaleX);\n scaleY = Number(scaleY);\n if (this.viewed && !this.played && options.scalable) {\n var oldScaleX = imageData.scaleX;\n var oldScaleY = imageData.scaleY;\n var changed = false;\n if (isNumber(scaleX)) {\n changed = true;\n } else {\n scaleX = oldScaleX;\n }\n if (isNumber(scaleY)) {\n changed = true;\n } else {\n scaleY = oldScaleY;\n }\n if (changed) {\n if (isFunction(options.scale)) {\n addListener(element, EVENT_SCALE, options.scale, {\n once: true\n });\n }\n if (dispatchEvent(element, EVENT_SCALE, {\n scaleX: scaleX,\n scaleY: scaleY,\n oldScaleX: oldScaleX,\n oldScaleY: oldScaleY\n }) === false) {\n return this;\n }\n imageData.scaleX = scaleX;\n imageData.scaleY = scaleY;\n this.scaling = true;\n this.renderImage(function () {\n _this5.scaling = false;\n if (isFunction(options.scaled)) {\n addListener(element, EVENT_SCALED, options.scaled, {\n once: true\n });\n }\n dispatchEvent(element, EVENT_SCALED, {\n scaleX: scaleX,\n scaleY: scaleY,\n oldScaleX: oldScaleX,\n oldScaleY: oldScaleY\n }, {\n cancelable: false\n });\n });\n }\n }\n return this;\n },\n /**\n * Zoom the image with a relative ratio.\n * @param {number} ratio - The target ratio.\n * @param {boolean} [showTooltip=false] - Indicates whether to show the tooltip.\n * @param {Object} [pivot] - The pivot point coordinate for zooming.\n * @param {Event} [_originalEvent=null] - The original event if any.\n * @returns {Viewer} this\n */\n zoom: function zoom(ratio) {\n var showTooltip = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var pivot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var _originalEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var imageData = this.imageData;\n ratio = Number(ratio);\n if (ratio < 0) {\n ratio = 1 / (1 - ratio);\n } else {\n ratio = 1 + ratio;\n }\n this.zoomTo(imageData.width * ratio / imageData.naturalWidth, showTooltip, pivot, _originalEvent);\n return this;\n },\n /**\n * Zoom the image to an absolute ratio.\n * @param {number} ratio - The target ratio.\n * @param {boolean} [showTooltip] - Indicates whether to show the tooltip.\n * @param {Object} [pivot] - The pivot point coordinate for zooming.\n * @param {Event} [_originalEvent=null] - The original event if any.\n * @param {Event} [_zoomable=false] - Indicates if the current zoom is available or not.\n * @returns {Viewer} this\n */\n zoomTo: function zoomTo(ratio) {\n var _this6 = this;\n var showTooltip = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var pivot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var _originalEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var _zoomable = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var element = this.element,\n options = this.options,\n pointers = this.pointers,\n imageData = this.imageData;\n var x = imageData.x,\n y = imageData.y,\n width = imageData.width,\n height = imageData.height,\n naturalWidth = imageData.naturalWidth,\n naturalHeight = imageData.naturalHeight;\n ratio = Math.max(0, ratio);\n if (isNumber(ratio) && this.viewed && !this.played && (_zoomable || options.zoomable)) {\n if (!_zoomable) {\n var minZoomRatio = Math.max(0.01, options.minZoomRatio);\n var maxZoomRatio = Math.min(100, options.maxZoomRatio);\n ratio = Math.min(Math.max(ratio, minZoomRatio), maxZoomRatio);\n }\n if (_originalEvent) {\n switch (_originalEvent.type) {\n case 'wheel':\n if (options.zoomRatio >= 0.055 && ratio > 0.95 && ratio < 1.05) {\n ratio = 1;\n }\n break;\n case 'pointermove':\n case 'touchmove':\n case 'mousemove':\n if (ratio > 0.99 && ratio < 1.01) {\n ratio = 1;\n }\n break;\n }\n }\n var newWidth = naturalWidth * ratio;\n var newHeight = naturalHeight * ratio;\n var offsetWidth = newWidth - width;\n var offsetHeight = newHeight - height;\n var oldRatio = imageData.ratio;\n if (isFunction(options.zoom)) {\n addListener(element, EVENT_ZOOM, options.zoom, {\n once: true\n });\n }\n if (dispatchEvent(element, EVENT_ZOOM, {\n ratio: ratio,\n oldRatio: oldRatio,\n originalEvent: _originalEvent\n }) === false) {\n return this;\n }\n this.zooming = true;\n if (_originalEvent) {\n var offset = getOffset(this.viewer);\n var center = pointers && Object.keys(pointers).length > 0 ? getPointersCenter(pointers) : {\n pageX: _originalEvent.pageX,\n pageY: _originalEvent.pageY\n };\n\n // Zoom from the triggering point of the event\n imageData.x -= offsetWidth * ((center.pageX - offset.left - x) / width);\n imageData.y -= offsetHeight * ((center.pageY - offset.top - y) / height);\n } else if (isPlainObject(pivot) && isNumber(pivot.x) && isNumber(pivot.y)) {\n imageData.x -= offsetWidth * ((pivot.x - x) / width);\n imageData.y -= offsetHeight * ((pivot.y - y) / height);\n } else {\n // Zoom from the center of the image\n imageData.x -= offsetWidth / 2;\n imageData.y -= offsetHeight / 2;\n }\n imageData.left = imageData.x;\n imageData.top = imageData.y;\n imageData.width = newWidth;\n imageData.height = newHeight;\n imageData.oldRatio = oldRatio;\n imageData.ratio = ratio;\n this.renderImage(function () {\n _this6.zooming = false;\n if (isFunction(options.zoomed)) {\n addListener(element, EVENT_ZOOMED, options.zoomed, {\n once: true\n });\n }\n dispatchEvent(element, EVENT_ZOOMED, {\n ratio: ratio,\n oldRatio: oldRatio,\n originalEvent: _originalEvent\n }, {\n cancelable: false\n });\n });\n if (showTooltip) {\n this.tooltip();\n }\n }\n return this;\n },\n /**\n * Play the images\n * @param {boolean|FullscreenOptions} [fullscreen=false] - Indicate if request fullscreen or not.\n * @returns {Viewer} this\n */\n play: function play() {\n var _this7 = this;\n var fullscreen = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!this.isShown || this.played) {\n return this;\n }\n var element = this.element,\n options = this.options;\n if (isFunction(options.play)) {\n addListener(element, EVENT_PLAY, options.play, {\n once: true\n });\n }\n if (dispatchEvent(element, EVENT_PLAY) === false) {\n return this;\n }\n var player = this.player;\n var onLoad = this.loadImage.bind(this);\n var list = [];\n var total = 0;\n var index = 0;\n this.played = true;\n this.onLoadWhenPlay = onLoad;\n if (fullscreen) {\n this.requestFullscreen(fullscreen);\n }\n addClass(player, CLASS_SHOW);\n forEach(this.items, function (item, i) {\n var img = item.querySelector('img');\n var image = document.createElement('img');\n image.src = getData(img, 'originalUrl');\n image.alt = img.getAttribute('alt');\n image.referrerPolicy = img.referrerPolicy;\n total += 1;\n addClass(image, CLASS_FADE);\n toggleClass(image, CLASS_TRANSITION, options.transition);\n if (hasClass(item, CLASS_ACTIVE)) {\n addClass(image, CLASS_IN);\n index = i;\n }\n list.push(image);\n addListener(image, EVENT_LOAD, onLoad, {\n once: true\n });\n player.appendChild(image);\n });\n if (isNumber(options.interval) && options.interval > 0) {\n var _prev = function prev() {\n clearTimeout(_this7.playing.timeout);\n removeClass(list[index], CLASS_IN);\n index -= 1;\n index = index >= 0 ? index : total - 1;\n addClass(list[index], CLASS_IN);\n _this7.playing.timeout = setTimeout(_prev, options.interval);\n };\n var _next = function next() {\n clearTimeout(_this7.playing.timeout);\n removeClass(list[index], CLASS_IN);\n index += 1;\n index = index < total ? index : 0;\n addClass(list[index], CLASS_IN);\n _this7.playing.timeout = setTimeout(_next, options.interval);\n };\n if (total > 1) {\n this.playing = {\n prev: _prev,\n next: _next,\n timeout: setTimeout(_next, options.interval)\n };\n }\n }\n return this;\n },\n // Stop play\n stop: function stop() {\n var _this8 = this;\n if (!this.played) {\n return this;\n }\n var element = this.element,\n options = this.options;\n if (isFunction(options.stop)) {\n addListener(element, EVENT_STOP, options.stop, {\n once: true\n });\n }\n if (dispatchEvent(element, EVENT_STOP) === false) {\n return this;\n }\n var player = this.player;\n clearTimeout(this.playing.timeout);\n this.playing = false;\n this.played = false;\n forEach(player.getElementsByTagName('img'), function (image) {\n removeListener(image, EVENT_LOAD, _this8.onLoadWhenPlay);\n });\n removeClass(player, CLASS_SHOW);\n player.innerHTML = '';\n this.exitFullscreen();\n return this;\n },\n // Enter modal mode (only available in inline mode)\n full: function full() {\n var _this9 = this;\n var options = this.options,\n viewer = this.viewer,\n image = this.image,\n list = this.list;\n if (!this.isShown || this.played || this.fulled || !options.inline) {\n return this;\n }\n this.fulled = true;\n this.open();\n addClass(this.button, CLASS_FULLSCREEN_EXIT);\n if (options.transition) {\n removeClass(list, CLASS_TRANSITION);\n if (this.viewed) {\n removeClass(image, CLASS_TRANSITION);\n }\n }\n addClass(viewer, CLASS_FIXED);\n viewer.setAttribute('role', 'dialog');\n viewer.setAttribute('aria-labelledby', this.title.id);\n viewer.setAttribute('aria-modal', true);\n viewer.removeAttribute('style');\n setStyle(viewer, {\n zIndex: options.zIndex\n });\n if (options.focus) {\n this.enforceFocus();\n }\n this.initContainer();\n this.viewerData = assign({}, this.containerData);\n this.renderList();\n if (this.viewed) {\n this.initImage(function () {\n _this9.renderImage(function () {\n if (options.transition) {\n setTimeout(function () {\n addClass(image, CLASS_TRANSITION);\n addClass(list, CLASS_TRANSITION);\n }, 0);\n }\n });\n });\n }\n return this;\n },\n // Exit modal mode (only available in inline mode)\n exit: function exit() {\n var _this10 = this;\n var options = this.options,\n viewer = this.viewer,\n image = this.image,\n list = this.list;\n if (!this.isShown || this.played || !this.fulled || !options.inline) {\n return this;\n }\n this.fulled = false;\n this.close();\n removeClass(this.button, CLASS_FULLSCREEN_EXIT);\n if (options.transition) {\n removeClass(list, CLASS_TRANSITION);\n if (this.viewed) {\n removeClass(image, CLASS_TRANSITION);\n }\n }\n if (options.focus) {\n this.clearEnforceFocus();\n }\n viewer.removeAttribute('role');\n viewer.removeAttribute('aria-labelledby');\n viewer.removeAttribute('aria-modal');\n removeClass(viewer, CLASS_FIXED);\n setStyle(viewer, {\n zIndex: options.zIndexInline\n });\n this.viewerData = assign({}, this.parentData);\n this.renderViewer();\n this.renderList();\n if (this.viewed) {\n this.initImage(function () {\n _this10.renderImage(function () {\n if (options.transition) {\n setTimeout(function () {\n addClass(image, CLASS_TRANSITION);\n addClass(list, CLASS_TRANSITION);\n }, 0);\n }\n });\n });\n }\n return this;\n },\n // Show the current ratio of the image with percentage\n tooltip: function tooltip() {\n var _this11 = this;\n var options = this.options,\n tooltipBox = this.tooltipBox,\n imageData = this.imageData;\n if (!this.viewed || this.played || !options.tooltip) {\n return this;\n }\n tooltipBox.textContent = \"\".concat(Math.round(imageData.ratio * 100), \"%\");\n if (!this.tooltipping) {\n if (options.transition) {\n if (this.fading) {\n dispatchEvent(tooltipBox, EVENT_TRANSITION_END);\n }\n addClass(tooltipBox, CLASS_SHOW);\n addClass(tooltipBox, CLASS_FADE);\n addClass(tooltipBox, CLASS_TRANSITION);\n tooltipBox.removeAttribute('aria-hidden');\n\n // Force reflow to enable CSS3 transition\n tooltipBox.initialOffsetWidth = tooltipBox.offsetWidth;\n addClass(tooltipBox, CLASS_IN);\n } else {\n addClass(tooltipBox, CLASS_SHOW);\n tooltipBox.removeAttribute('aria-hidden');\n }\n } else {\n clearTimeout(this.tooltipping);\n }\n this.tooltipping = setTimeout(function () {\n if (options.transition) {\n addListener(tooltipBox, EVENT_TRANSITION_END, function () {\n removeClass(tooltipBox, CLASS_SHOW);\n removeClass(tooltipBox, CLASS_FADE);\n removeClass(tooltipBox, CLASS_TRANSITION);\n tooltipBox.setAttribute('aria-hidden', true);\n _this11.fading = false;\n }, {\n once: true\n });\n removeClass(tooltipBox, CLASS_IN);\n _this11.fading = true;\n } else {\n removeClass(tooltipBox, CLASS_SHOW);\n tooltipBox.setAttribute('aria-hidden', true);\n }\n _this11.tooltipping = false;\n }, 1000);\n return this;\n },\n /**\n * Toggle the image size between its current size and natural size\n * @param {Event} [_originalEvent=null] - The original event if any.\n * @returns {Viewer} this\n */\n toggle: function toggle() {\n var _originalEvent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n if (this.imageData.ratio === 1) {\n this.zoomTo(this.imageData.oldRatio, true, null, _originalEvent);\n } else {\n this.zoomTo(1, true, null, _originalEvent);\n }\n return this;\n },\n // Reset the image to its initial state\n reset: function reset() {\n if (this.viewed && !this.played) {\n this.imageData = assign({}, this.initialImageData);\n this.renderImage();\n }\n return this;\n },\n // Update viewer when images changed\n update: function update() {\n var _this12 = this;\n var element = this.element,\n options = this.options,\n isImg = this.isImg;\n\n // Destroy viewer if the target image was deleted\n if (isImg && !element.parentNode) {\n return this.destroy();\n }\n var images = [];\n forEach(isImg ? [element] : element.querySelectorAll('img'), function (image) {\n if (isFunction(options.filter)) {\n if (options.filter.call(_this12, image)) {\n images.push(image);\n }\n } else if (_this12.getImageURL(image)) {\n images.push(image);\n }\n });\n if (!images.length) {\n return this;\n }\n this.images = images;\n this.length = images.length;\n if (this.ready) {\n var changedIndexes = [];\n forEach(this.items, function (item, i) {\n var img = item.querySelector('img');\n var image = images[i];\n if (image && img) {\n if (image.src !== img.src\n\n // Title changed (#408)\n || image.alt !== img.alt) {\n changedIndexes.push(i);\n }\n } else {\n changedIndexes.push(i);\n }\n });\n setStyle(this.list, {\n width: 'auto'\n });\n this.initList();\n if (this.isShown) {\n if (this.length) {\n if (this.viewed) {\n var changedIndex = changedIndexes.indexOf(this.index);\n if (changedIndex >= 0) {\n this.viewed = false;\n this.view(Math.max(Math.min(this.index - changedIndex, this.length - 1), 0));\n } else {\n var activeItem = this.items[this.index];\n\n // Reactivate the current viewing item after reset the list.\n addClass(activeItem, CLASS_ACTIVE);\n activeItem.setAttribute('aria-selected', true);\n }\n }\n } else {\n this.image = null;\n this.viewed = false;\n this.index = 0;\n this.imageData = {};\n this.canvas.innerHTML = '';\n this.title.innerHTML = '';\n }\n }\n } else {\n this.build();\n }\n return this;\n },\n // Destroy the viewer\n destroy: function destroy() {\n var element = this.element,\n options = this.options;\n if (!element[NAMESPACE]) {\n return this;\n }\n this.destroyed = true;\n if (this.ready) {\n if (this.played) {\n this.stop();\n }\n if (options.inline) {\n if (this.fulled) {\n this.exit();\n }\n this.unbind();\n } else if (this.isShown) {\n if (this.viewing) {\n if (this.imageRendering) {\n this.imageRendering.abort();\n } else if (this.imageInitializing) {\n this.imageInitializing.abort();\n }\n }\n if (this.hiding) {\n this.transitioning.abort();\n }\n this.hidden();\n } else if (this.showing) {\n this.transitioning.abort();\n this.hidden();\n }\n this.ready = false;\n this.viewer.parentNode.removeChild(this.viewer);\n } else if (options.inline) {\n if (this.delaying) {\n this.delaying.abort();\n } else if (this.initializing) {\n this.initializing.abort();\n }\n }\n if (!options.inline) {\n removeListener(element, EVENT_CLICK, this.onStart);\n }\n element[NAMESPACE] = undefined;\n return this;\n }\n };\n\n var others = {\n getImageURL: function getImageURL(image) {\n var url = this.options.url;\n if (isString(url)) {\n url = image.getAttribute(url);\n } else if (isFunction(url)) {\n url = url.call(this, image);\n } else {\n url = '';\n }\n return url;\n },\n enforceFocus: function enforceFocus() {\n var _this = this;\n this.clearEnforceFocus();\n addListener(document, EVENT_FOCUSIN, this.onFocusin = function (event) {\n var viewer = _this.viewer;\n var target = event.target;\n if (target === document || target === viewer || viewer.contains(target)) {\n return;\n }\n while (target) {\n // Avoid conflicts with other modals (#474, #540)\n if (target.getAttribute('tabindex') !== null || target.getAttribute('aria-modal') === 'true') {\n return;\n }\n target = target.parentElement;\n }\n viewer.focus();\n });\n },\n clearEnforceFocus: function clearEnforceFocus() {\n if (this.onFocusin) {\n removeListener(document, EVENT_FOCUSIN, this.onFocusin);\n this.onFocusin = null;\n }\n },\n open: function open() {\n var body = this.body;\n addClass(body, CLASS_OPEN);\n if (this.scrollbarWidth > 0) {\n body.style.paddingRight = \"\".concat(this.scrollbarWidth + (parseFloat(this.initialBodyComputedPaddingRight) || 0), \"px\");\n }\n },\n close: function close() {\n var body = this.body;\n removeClass(body, CLASS_OPEN);\n if (this.scrollbarWidth > 0) {\n body.style.paddingRight = this.initialBodyPaddingRight;\n }\n },\n shown: function shown() {\n var element = this.element,\n options = this.options,\n viewer = this.viewer;\n this.fulled = true;\n this.isShown = true;\n this.render();\n this.bind();\n this.showing = false;\n if (options.focus) {\n viewer.focus();\n this.enforceFocus();\n }\n if (isFunction(options.shown)) {\n addListener(element, EVENT_SHOWN, options.shown, {\n once: true\n });\n }\n if (dispatchEvent(element, EVENT_SHOWN) === false) {\n return;\n }\n if (this.ready && this.isShown && !this.hiding) {\n this.view(this.index);\n }\n },\n hidden: function hidden() {\n var element = this.element,\n options = this.options,\n viewer = this.viewer;\n if (options.fucus) {\n this.clearEnforceFocus();\n }\n this.close();\n this.unbind();\n addClass(viewer, CLASS_HIDE);\n viewer.removeAttribute('role');\n viewer.removeAttribute('aria-labelledby');\n viewer.removeAttribute('aria-modal');\n viewer.setAttribute('aria-hidden', true);\n this.resetList();\n this.resetImage();\n this.fulled = false;\n this.viewed = false;\n this.isShown = false;\n this.hiding = false;\n if (!this.destroyed) {\n if (isFunction(options.hidden)) {\n addListener(element, EVENT_HIDDEN, options.hidden, {\n once: true\n });\n }\n dispatchEvent(element, EVENT_HIDDEN, null, {\n cancelable: false\n });\n }\n },\n requestFullscreen: function requestFullscreen(options) {\n var document = this.element.ownerDocument;\n if (this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {\n var documentElement = document.documentElement;\n\n // Element.requestFullscreen()\n if (documentElement.requestFullscreen) {\n // Avoid TypeError when convert `options` to dictionary\n if (isPlainObject(options)) {\n documentElement.requestFullscreen(options);\n } else {\n documentElement.requestFullscreen();\n }\n } else if (documentElement.webkitRequestFullscreen) {\n documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);\n } else if (documentElement.mozRequestFullScreen) {\n documentElement.mozRequestFullScreen();\n } else if (documentElement.msRequestFullscreen) {\n documentElement.msRequestFullscreen();\n }\n }\n },\n exitFullscreen: function exitFullscreen() {\n var document = this.element.ownerDocument;\n if (this.fulled && (document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {\n // Document.exitFullscreen()\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n }\n },\n change: function change(event) {\n var options = this.options,\n pointers = this.pointers;\n var pointer = pointers[Object.keys(pointers)[0]];\n\n // In the case of the `pointers` object is empty (#421)\n if (!pointer) {\n return;\n }\n var offsetX = pointer.endX - pointer.startX;\n var offsetY = pointer.endY - pointer.startY;\n switch (this.action) {\n // Move the current image\n case ACTION_MOVE:\n if (offsetX !== 0 || offsetY !== 0) {\n this.pointerMoved = true;\n this.move(offsetX, offsetY, event);\n }\n break;\n\n // Zoom the current image\n case ACTION_ZOOM:\n this.zoom(getMaxZoomRatio(pointers), false, null, event);\n break;\n case ACTION_SWITCH:\n {\n this.action = 'switched';\n var absoluteOffsetX = Math.abs(offsetX);\n if (absoluteOffsetX > 1 && absoluteOffsetX > Math.abs(offsetY)) {\n // Empty `pointers` as `touchend` event will not be fired after swiped in iOS browsers.\n this.pointers = {};\n if (offsetX > 1) {\n this.prev(options.loop);\n } else if (offsetX < -1) {\n this.next(options.loop);\n }\n }\n break;\n }\n }\n\n // Override\n forEach(pointers, function (p) {\n p.startX = p.endX;\n p.startY = p.endY;\n });\n },\n isSwitchable: function isSwitchable() {\n var imageData = this.imageData,\n viewerData = this.viewerData;\n return this.length > 1 && imageData.x >= 0 && imageData.y >= 0 && imageData.width <= viewerData.width && imageData.height <= viewerData.height;\n }\n };\n\n var AnotherViewer = WINDOW.Viewer;\n var getUniqueID = function (id) {\n return function () {\n id += 1;\n return id;\n };\n }(-1);\n var Viewer = /*#__PURE__*/function () {\n /**\n * Create a new Viewer.\n * @param {Element} element - The target element for viewing.\n * @param {Object} [options={}] - The configuration options.\n */\n function Viewer(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Viewer);\n if (!element || element.nodeType !== 1) {\n throw new Error('The first argument is required and must be an element.');\n }\n this.element = element;\n this.options = assign({}, DEFAULTS, isPlainObject(options) && options);\n this.action = false;\n this.fading = false;\n this.fulled = false;\n this.hiding = false;\n this.imageClicked = false;\n this.imageData = {};\n this.index = this.options.initialViewIndex;\n this.isImg = false;\n this.isShown = false;\n this.length = 0;\n this.moving = false;\n this.played = false;\n this.playing = false;\n this.pointers = {};\n this.ready = false;\n this.rotating = false;\n this.scaling = false;\n this.showing = false;\n this.timeout = false;\n this.tooltipping = false;\n this.viewed = false;\n this.viewing = false;\n this.wheeling = false;\n this.zooming = false;\n this.pointerMoved = false;\n this.id = getUniqueID();\n this.init();\n }\n return _createClass(Viewer, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n var element = this.element,\n options = this.options;\n if (element[NAMESPACE]) {\n return;\n }\n element[NAMESPACE] = this;\n\n // The `focus` option requires the `keyboard` option set to `true`.\n if (options.focus && !options.keyboard) {\n options.focus = false;\n }\n var isImg = element.localName === 'img';\n var images = [];\n forEach(isImg ? [element] : element.querySelectorAll('img'), function (image) {\n if (isFunction(options.filter)) {\n if (options.filter.call(_this, image)) {\n images.push(image);\n }\n } else if (_this.getImageURL(image)) {\n images.push(image);\n }\n });\n this.isImg = isImg;\n this.length = images.length;\n this.images = images;\n this.initBody();\n\n // Override `transition` option if it is not supported\n if (isUndefined(document.createElement(NAMESPACE).style.transition)) {\n options.transition = false;\n }\n if (options.inline) {\n var count = 0;\n var progress = function progress() {\n count += 1;\n if (count === _this.length) {\n var timeout;\n _this.initializing = false;\n _this.delaying = {\n abort: function abort() {\n clearTimeout(timeout);\n }\n };\n\n // build asynchronously to keep `this.viewer` is accessible in `ready` event handler.\n timeout = setTimeout(function () {\n _this.delaying = false;\n _this.build();\n }, 0);\n }\n };\n this.initializing = {\n abort: function abort() {\n forEach(images, function (image) {\n if (!image.complete) {\n removeListener(image, EVENT_LOAD, progress);\n removeListener(image, EVENT_ERROR, progress);\n }\n });\n }\n };\n forEach(images, function (image) {\n if (image.complete) {\n progress();\n } else {\n var onLoad;\n var onError;\n addListener(image, EVENT_LOAD, onLoad = function onLoad() {\n removeListener(image, EVENT_ERROR, onError);\n progress();\n }, {\n once: true\n });\n addListener(image, EVENT_ERROR, onError = function onError() {\n removeListener(image, EVENT_LOAD, onLoad);\n progress();\n }, {\n once: true\n });\n }\n });\n } else {\n addListener(element, EVENT_CLICK, this.onStart = function (_ref) {\n var target = _ref.target;\n if (target.localName === 'img' && (!isFunction(options.filter) || options.filter.call(_this, target))) {\n _this.view(_this.images.indexOf(target));\n }\n });\n }\n }\n }, {\n key: \"build\",\n value: function build() {\n if (this.ready) {\n return;\n }\n var element = this.element,\n options = this.options;\n var parent = element.parentNode;\n var template = document.createElement('div');\n template.innerHTML = TEMPLATE;\n var viewer = template.querySelector(\".\".concat(NAMESPACE, \"-container\"));\n var title = viewer.querySelector(\".\".concat(NAMESPACE, \"-title\"));\n var toolbar = viewer.querySelector(\".\".concat(NAMESPACE, \"-toolbar\"));\n var navbar = viewer.querySelector(\".\".concat(NAMESPACE, \"-navbar\"));\n var button = viewer.querySelector(\".\".concat(NAMESPACE, \"-button\"));\n var canvas = viewer.querySelector(\".\".concat(NAMESPACE, \"-canvas\"));\n this.parent = parent;\n this.viewer = viewer;\n this.title = title;\n this.toolbar = toolbar;\n this.navbar = navbar;\n this.button = button;\n this.canvas = canvas;\n this.footer = viewer.querySelector(\".\".concat(NAMESPACE, \"-footer\"));\n this.tooltipBox = viewer.querySelector(\".\".concat(NAMESPACE, \"-tooltip\"));\n this.player = viewer.querySelector(\".\".concat(NAMESPACE, \"-player\"));\n this.list = viewer.querySelector(\".\".concat(NAMESPACE, \"-list\"));\n viewer.id = \"\".concat(NAMESPACE).concat(this.id);\n title.id = \"\".concat(NAMESPACE, \"Title\").concat(this.id);\n addClass(title, !options.title ? CLASS_HIDE : getResponsiveClass(Array.isArray(options.title) ? options.title[0] : options.title));\n addClass(navbar, !options.navbar ? CLASS_HIDE : getResponsiveClass(options.navbar));\n toggleClass(button, CLASS_HIDE, !options.button);\n if (options.keyboard) {\n button.setAttribute('tabindex', 0);\n }\n if (options.backdrop) {\n addClass(viewer, \"\".concat(NAMESPACE, \"-backdrop\"));\n if (!options.inline && options.backdrop !== 'static') {\n setData(canvas, DATA_ACTION, 'hide');\n }\n }\n if (isString(options.className) && options.className) {\n // In case there are multiple class names\n options.className.split(REGEXP_SPACES).forEach(function (className) {\n addClass(viewer, className);\n });\n }\n if (options.toolbar) {\n var list = document.createElement('ul');\n var custom = isPlainObject(options.toolbar);\n var zoomButtons = BUTTONS.slice(0, 3);\n var rotateButtons = BUTTONS.slice(7, 9);\n var scaleButtons = BUTTONS.slice(9);\n if (!custom) {\n addClass(toolbar, getResponsiveClass(options.toolbar));\n }\n forEach(custom ? options.toolbar : BUTTONS, function (value, index) {\n var deep = custom && isPlainObject(value);\n var name = custom ? hyphenate(index) : value;\n var show = deep && !isUndefined(value.show) ? value.show : value;\n if (!show || !options.zoomable && zoomButtons.indexOf(name) !== -1 || !options.rotatable && rotateButtons.indexOf(name) !== -1 || !options.scalable && scaleButtons.indexOf(name) !== -1) {\n return;\n }\n var size = deep && !isUndefined(value.size) ? value.size : value;\n var click = deep && !isUndefined(value.click) ? value.click : value;\n var item = document.createElement('li');\n if (options.keyboard) {\n item.setAttribute('tabindex', 0);\n }\n item.setAttribute('role', 'button');\n addClass(item, \"\".concat(NAMESPACE, \"-\").concat(name));\n if (!isFunction(click)) {\n setData(item, DATA_ACTION, name);\n }\n if (isNumber(show)) {\n addClass(item, getResponsiveClass(show));\n }\n if (['small', 'large'].indexOf(size) !== -1) {\n addClass(item, \"\".concat(NAMESPACE, \"-\").concat(size));\n } else if (name === 'play') {\n addClass(item, \"\".concat(NAMESPACE, \"-large\"));\n }\n if (isFunction(click)) {\n addListener(item, EVENT_CLICK, click);\n }\n list.appendChild(item);\n });\n toolbar.appendChild(list);\n } else {\n addClass(toolbar, CLASS_HIDE);\n }\n if (!options.rotatable) {\n var rotates = toolbar.querySelectorAll('li[class*=\"rotate\"]');\n addClass(rotates, CLASS_INVISIBLE);\n forEach(rotates, function (rotate) {\n toolbar.appendChild(rotate);\n });\n }\n if (options.inline) {\n addClass(button, CLASS_FULLSCREEN);\n setStyle(viewer, {\n zIndex: options.zIndexInline\n });\n if (window.getComputedStyle(parent).position === 'static') {\n setStyle(parent, {\n position: 'relative'\n });\n }\n parent.insertBefore(viewer, element.nextSibling);\n } else {\n addClass(button, CLASS_CLOSE);\n addClass(viewer, CLASS_FIXED);\n addClass(viewer, CLASS_FADE);\n addClass(viewer, CLASS_HIDE);\n setStyle(viewer, {\n zIndex: options.zIndex\n });\n var container = options.container;\n if (isString(container)) {\n container = element.ownerDocument.querySelector(container);\n }\n if (!container) {\n container = this.body;\n }\n container.appendChild(viewer);\n }\n if (options.inline) {\n this.render();\n this.bind();\n this.isShown = true;\n }\n this.ready = true;\n if (isFunction(options.ready)) {\n addListener(element, EVENT_READY, options.ready, {\n once: true\n });\n }\n if (dispatchEvent(element, EVENT_READY) === false) {\n this.ready = false;\n return;\n }\n if (this.ready && options.inline) {\n this.view(this.index);\n }\n }\n\n /**\n * Get the no conflict viewer class.\n * @returns {Viewer} The viewer class.\n */\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Viewer = AnotherViewer;\n return Viewer;\n }\n\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n assign(DEFAULTS, isPlainObject(options) && options);\n }\n }]);\n }();\n assign(Viewer.prototype, render, events, handlers, methods, others);\n\n return Viewer;\n\n}));\n","import Viewer from 'viewerjs'\r\nimport 'viewerjs/dist/viewer.min.css'\r\n\r\nconst LIGHTBOX_CLASS = '.image-gallery'\r\nconst TOOLBAR_CONFIG = {\r\n toolbar: {\r\n prev: 2,\r\n zoomOut: 2,\r\n oneToOne: 2,\r\n zoomIn: 2,\r\n next: 2,\r\n play: {\r\n show: false\r\n },\r\n reset: false,\r\n rotateLeft: false,\r\n rotateRight: false,\r\n flipHorizontal: false,\r\n flipVertical: false\r\n },\r\n url (images) {\r\n return images.getAttribute('data-src')\r\n }\r\n}\r\n\r\nexport default function init () {\r\n const images = document.querySelector(LIGHTBOX_CLASS)\r\n if (!images) {\r\n return\r\n }\r\n return new Viewer(images, TOOLBAR_CONFIG)\r\n}\r\n","class IncorrectEmailAddressError extends Error {\r\n constructor (\r\n message = 'Не верный формат электронной почты',\r\n filename,\r\n lineNumber\r\n ) {\r\n super(message, filename, lineNumber)\r\n }\r\n}\r\n\r\nexport default IncorrectEmailAddressError\r\n","class IncorrectCommentError extends Error {\r\n constructor (\r\n message = 'Текст сообщения слишком короткий',\r\n filename,\r\n lineNumber\r\n ) {\r\n super(message, filename, lineNumber)\r\n }\r\n}\r\n\r\nexport default IncorrectCommentError\r\n","class EmptyFieldsError extends Error {\r\n constructor (\r\n message = 'Не верный формат электронной почты и Текст сообщения слишком короткий',\r\n filename,\r\n lineNumber\r\n ) {\r\n super(message, filename, lineNumber)\r\n }\r\n}\r\n\r\nexport default EmptyFieldsError\r\n","import IncorrectEmailAddressError from '../errors/incorrect-email-address-error'\r\nimport IncorrectCommentError from '../errors/incorrect-comment-error'\r\nimport EmptyFieldsError from '../errors/empty-fields-error'\r\n\r\nclass LeadOrderDTO {\r\n constructor ({ comment, emailAddress, houseId, appealType }) {\r\n /* eslint-disable no-useless-escape */\r\n this.re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n\r\n if ((!comment || !comment.trim()) && !this.re.test(emailAddress)) {\r\n throw new EmptyFieldsError()\r\n }\r\n\r\n if (!comment || !comment.trim()) {\r\n throw new IncorrectCommentError()\r\n }\r\n\r\n if (!this.re.test(emailAddress)) {\r\n throw new IncorrectEmailAddressError()\r\n }\r\n\r\n this.emailAddress = emailAddress\r\n this.comment = comment\r\n this.houseId = houseId\r\n this.appealType = appealType\r\n }\r\n}\r\n\r\nexport default LeadOrderDTO\r\n","import { Modal } from '@roskvartal-landings/component-modal'\r\nimport LeadOrderDTO from '../dto/lead-modal'\r\nimport IncorrectEmailAddressError from '../errors/incorrect-email-address-error'\r\nimport IncorrectCommentError from '../errors/incorrect-comment-error'\r\nimport EmptyFieldsError from '../errors/empty-fields-error'\r\n\r\nclass EmailModal extends Modal {\r\n constructor (el) {\r\n super(el)\r\n\r\n this.data = {\r\n comment: null,\r\n emailAddress: null\r\n }\r\n\r\n this.init()\r\n }\r\n\r\n init () {\r\n const emailAddress = this.refs.get('email-address')\r\n const comment = this.refs.get('comment')\r\n const form = this.refs.get('form')\r\n const cancelBtn = this.refs.get('cancel-btn')\r\n const errorEmail = this.refs.get('error-email')\r\n const errorText = this.refs.get('error-text')\r\n\r\n this.data.emailAddress = emailAddress.querySelector('input').value\r\n this.data.comment = comment.querySelector('textarea').value\r\n\r\n this.el.addEventListener('modal-open', (e) => {\r\n if (e.detail) {\r\n this.data.houseId = e.detail.houseId\r\n this.data.appealType = e.detail.appealType\r\n }\r\n })\r\n\r\n emailAddress.addEventListener('input', (e) => {\r\n this.data.emailAddress = e.target.value\r\n\r\n emailAddress.querySelector('input').classList.remove('is-invalid')\r\n errorEmail.classList.remove('active-text')\r\n })\r\n\r\n comment.addEventListener('input', (e) => {\r\n this.data.comment = e.target.value\r\n\r\n comment.querySelector('textarea').classList.remove('is-invalid')\r\n errorText.classList.remove('active-text')\r\n })\r\n\r\n form.addEventListener('submit', (e) => {\r\n e.preventDefault()\r\n this.sendEmail()\r\n })\r\n\r\n cancelBtn.addEventListener('click', () => {\r\n this.close()\r\n })\r\n }\r\n\r\n sendEmail () {\r\n const sleep = (milliseconds) => {\r\n return new Promise(resolve => setTimeout(resolve, milliseconds))\r\n }\r\n\r\n this.refs.get('send-button').disabled = true\r\n\r\n let payload\r\n const confirmModal = document.getElementById('emailConfirmModal')\r\n\r\n try {\r\n payload = new LeadOrderDTO(this.data)\r\n } catch (e) {\r\n this.refs.get('send-button').disabled = false\r\n this.updateInvalidState(e)\r\n return\r\n }\r\n\r\n fetch('/contacts/sendContactUsEmail', {\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n .then(() => this.close()).then(() => confirmModal.dispatchEvent(Modal.openEvent)).catch((error) => {\r\n console.log(error)\r\n })\r\n\r\n sleep(2000)\r\n .then(() => {\r\n this.refs.get('send-button').disabled = false\r\n })\r\n }\r\n\r\n updateInvalidState (error) {\r\n switch (error.constructor) {\r\n case IncorrectEmailAddressError:\r\n this.refs\r\n .get('email-address')\r\n .querySelector('input')\r\n .classList.add('is-invalid')\r\n this.refs\r\n .get('error-email')\r\n .classList.add('active-text')\r\n break\r\n case IncorrectCommentError:\r\n this.refs\r\n .get('comment')\r\n .querySelector('textarea')\r\n .classList.add('is-invalid')\r\n this.refs\r\n .get('error-text')\r\n .classList.add('active-text')\r\n break\r\n case EmptyFieldsError:\r\n this.refs\r\n .get('email-address')\r\n .querySelector('input')\r\n .classList.add('is-invalid')\r\n this.refs\r\n .get('error-email')\r\n .classList.add('active-text')\r\n this.refs\r\n .get('comment')\r\n .querySelector('textarea')\r\n .classList.add('is-invalid')\r\n this.refs\r\n .get('error-text')\r\n .classList.add('active-text')\r\n break\r\n }\r\n }\r\n}\r\n\r\nexport default EmailModal\r\n","import { Modal } from '@roskvartal-landings/component-modal'\r\n\r\nclass EmailConfirmModal extends Modal {\r\n constructor (el) {\r\n super(el)\r\n this.init()\r\n }\r\n\r\n init () {\r\n this.refs.get('cancel-btn').addEventListener('click', () => {\r\n this.close()\r\n })\r\n }\r\n}\r\n\r\nexport default EmailConfirmModal\r\n","const ATTR_NAME = 'data-dispatch-widget'\r\n\r\nfunction init () {\r\n const widgetOpenButtons = document.querySelectorAll(\r\n `[${ATTR_NAME}]`\r\n )\r\n\r\n for (const button of widgetOpenButtons) {\r\n const {\r\n dataset: {\r\n houseId,\r\n houseAddressString,\r\n dispatchWidget: service\r\n }\r\n } = button\r\n\r\n button.addEventListener('click', () => {\r\n window.rkDispatchWidget\r\n .prefillAddress(houseId, houseAddressString)\r\n .setService(service)\r\n .setCurrentStep('AddressStep')\r\n .open()\r\n })\r\n }\r\n}\r\n\r\nexport default init\r\n","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\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 if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (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\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\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 var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar 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: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = Methods[methodName];\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\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\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods };","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\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 } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow(); // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (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 (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\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 swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends(_extends({}, Observer), {}, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (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: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.width !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { getWindow } from 'ssr-window';\nimport { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n var window = getWindow();\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = window.getComputedStyle(slide[0], null);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n } else {\n var height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n\n var _boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (_boxSizing && _boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n var _slide$2 = slide[0],\n clientHeight = _slide$2.clientHeight,\n offsetHeight = _slide$2.offsetHeight;\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom + (offsetHeight - clientHeight);\n }\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\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\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\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\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({\n marginLeft: spaceBetween + \"px\"\n });else slides.filter(slidesForMargin).css({\n marginRight: spaceBetween + \"px\"\n });\n } else slides.filter(slidesForMargin).css({\n marginBottom: spaceBetween + \"px\"\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n } // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var 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 } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\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}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\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\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function slideTo(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\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\n if (!swiper.animating) {\n swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\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 var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\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 var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\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 $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\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 = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.screen.width - edgeSwipeThreshold)) {\n return;\n }\n\n extend(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\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && 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\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\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\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\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\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\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\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\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 } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(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 var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 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 swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoints(breakpoints) {\n var window = getWindow(); // Get breakpoint for window width\n\n if (!breakpoints) return undefined;\n var breakpoint = false;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = window.innerHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","export default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device;\n var suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n\n if (rtl) {\n suffixes.push('rtl');\n }\n\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n\n if (device.android) {\n suffixes.push('android');\n }\n\n if (device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n nested: false,\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 // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\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 // Breakpoints\n breakpoints: undefined,\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\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: false,\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: 0,\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 watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\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 // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el; // Swiper Instance\n\n var swiper = this;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Find el\n\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper; // Find Wrapper\n\n var $wrapperEl;\n\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n $wrapperEl.children = function (options) {\n return $el.children(options);\n };\n } else {\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n } // Extend Swiper\n\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\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 // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\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 formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\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 }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n swiper.emit('_slideClass', slideEl, classNames);\n });\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var 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\n for (var _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 for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (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\n _proto.init = function init() {\n var swiper = this;\n if (swiper.initialized) return;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Virtual = {\n update: function update(force) {\n var swiper = this;\n var _swiper$params = swiper.params,\n slidesPerView = _swiper$params.slidesPerView,\n slidesPerGroup = _swiper$params.slidesPerGroup,\n centeredSlides = _swiper$params.centeredSlides;\n var _swiper$params$virtua = swiper.params.virtual,\n addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\n addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\n var _swiper$virtual = swiper.virtual,\n previousFrom = _swiper$virtual.from,\n previousTo = _swiper$virtual.to,\n slides = _swiper$virtual.slides,\n previousSlidesGrid = _swiper$virtual.slidesGrid,\n renderSlide = _swiper$virtual.renderSlide,\n previousOffset = _swiper$virtual.offset;\n swiper.updateActiveIndex();\n var activeIndex = swiper.activeIndex || 0;\n var offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n var slidesAfter;\n var slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n extend(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, offset + \"px\");\n }\n\n swiper.updateProgress();\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: function getSlides() {\n var slidesToRender = [];\n\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n\n return;\n }\n\n var prependIndexes = [];\n var appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\").remove();\n }\n }\n }\n\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (_i >= from && _i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(_i);\n } else {\n if (_i > previousTo) appendIndexes.push(_i);\n if (_i < previousFrom) prependIndexes.push(_i);\n }\n }\n }\n\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) {\n return b - a;\n }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, offset + \"px\");\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\n var params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(\"
    \" + slide + \"
    \");\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide: function appendSlide(slides) {\n var swiper = this;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slides) {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n var $cachedEl = cache[cachedIndex];\n var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide: function removeSlide(slidesIndexes) {\n var swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n var activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides: function removeAllSlides() {\n var swiper = this;\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n }\n};\nexport default {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n virtual: _extends(_extends({}, Virtual), {}, {\n slides: swiper.params.virtual.slides,\n cache: {}\n })\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"virtual\");\n var overwriteParams = {\n watchSlidesProgress: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n var window = getWindow();\n var document = getDocument();\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\" + swiper.params.slideClass).length > 0 && swiper.$el.parents(\".\" + swiper.params.slideActiveClass).length === 0) {\n return undefined;\n }\n\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n var document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n var document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n keyboard: _extends({\n enabled: false\n }, Keyboard)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n var document = getDocument();\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n var window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (_recentWheelEvents.length >= 15) {\n _recentWheelEvents.shift(); // only store the last N events\n\n }\n\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = _recentWheelEvents[0];\n\n _recentWheelEvents.push(_newEvent);\n\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n _recentWheelEvents.splice(0);\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.mousewheel.timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n var window = getWindow();\n\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Navigation = {\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n click: function click(swiper, e) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if (swiper.params.navigation.hideOnClick && !$(e.target).is($prevEl) && !$(e.target).is($nextEl)) {\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(\".\" + params.currentClass).text(params.formatFractionCurrent(current + 1));\n $el.find(\".\" + params.totalClass).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(\".\" + params.progressbarFillClass).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(\".\" + params.bulletClass);\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', \".\" + params.bulletClass, function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', \".\" + params.bulletClass);\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n click: function click(swiper, e) {\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(e.target).hasClass(swiper.params.pagination.bulletClass)) {\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, nextTick, bindModuleMethods } from '../../utils/utils';\nvar Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n var dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(\"translate3d(\" + newPos + \"px, 0, 0)\");\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n $dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\n $dragEl[0].style.height = newSize + \"px\";\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition: function getPointerPosition(e) {\n var swiper = this;\n\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el,\n dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n dragStartPos = scrollbar.dragStartPos;\n var positionRatio;\n positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n clearTimeout(swiper.scrollbar.dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n swiper.emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (!support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (!support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n var params = swiper.params.scrollbar;\n var $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find(\".\" + swiper.params.scrollbar.dragClass);\n\n if ($dragEl.length === 0) {\n $dragEl = $(\"
    \");\n $el.append($dragEl);\n }\n\n extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n }\n};\nexport default {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n scrollbar: _extends({\n isTouched: false,\n timeout: null,\n dragTimeout: null\n }, Scrollbar)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update(swiper) {\n swiper.scrollbar.updateSize();\n },\n resize: function resize(swiper) {\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate(swiper) {\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate(swiper) {\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n swiper.scrollbar.setTransition(duration);\n },\n destroy: function destroy(swiper) {\n swiper.scrollbar.destroy();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\n var rtl = swiper.rtl;\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = parseInt(x, 10) * progress * rtlFactor + \"%\";\n } else {\n x = x * progress * rtlFactor + \"px\";\n }\n\n if (y.indexOf('%') >= 0) {\n y = parseInt(y, 10) * progress + \"%\";\n } else {\n y = y * progress + \"px\";\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px)\");\n } else {\n var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\");\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides,\n progress = swiper.progress,\n snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each(function (slideEl, slideIndex) {\n var slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition(duration) {\n if (duration === void 0) {\n duration = this.params.speed;\n }\n\n var swiper = this;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n }\n};\nexport default {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n parallax: _extends({}, Parallax)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init: function init(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, getTranslate } from '../../utils/utils';\nvar Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n return distance;\n },\n // Events\n onGestureStart: function onGestureStart(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(\".\" + swiper.params.slideClass);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') zoom.onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);\n }\n\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var device = swiper.device;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var device = swiper.device;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n } // Define if we need image drag\n\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle: function toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function _in(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n gesture.$slideEl.addClass(\"\" + params.zoomedSlideClass);\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\");\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n out: function out() {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(\"\" + params.zoomedSlideClass);\n gesture.$slideEl = undefined;\n },\n toggleGestures: function toggleGestures(method) {\n var swiper = this;\n var zoom = swiper.zoom;\n var selector = zoom.slideSelector,\n passive = zoom.passiveListener;\n swiper.$wrapperEl[method]('gesturestart', selector, zoom.onGestureStart, passive);\n swiper.$wrapperEl[method]('gesturechange', selector, zoom.onGestureChange, passive);\n swiper.$wrapperEl[method]('gestureend', selector, zoom.onGestureEnd, passive);\n },\n enableGestures: function enableGestures() {\n if (this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = true;\n this.zoom.toggleGestures('on');\n },\n disableGestures: function disableGestures() {\n if (!this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = false;\n this.zoom.toggleGestures('off');\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var support = swiper.support;\n var zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass;\n swiper.zoom.passiveListener = passiveListener;\n swiper.zoom.slideSelector = slideSelector; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) return;\n var support = swiper.support;\n swiper.zoom.enabled = false;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n }\n};\nexport default {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n zoom: _extends({\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n }\n }, Zoom)\n });\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function get() {\n return scale;\n },\n set: function set(value) {\n if (scale !== value) {\n var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy(swiper) {\n swiper.zoom.disable();\n },\n touchStart: function touchStart(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(swiper, e) {\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if (loadInDuplicate === void 0) {\n loadInDuplicate = true;\n }\n\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\") : swiper.slides.eq(index);\n var $images = $slideEl.find(\".\" + params.elementClass + \":not(.\" + params.loadedClass + \"):not(.\" + params.loadingClass + \")\");\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(function (imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n var $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', \"url(\\\"\" + background + \"\\\")\");\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(function (sourceEl) {\n var $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(\".\" + params.preloaderClass).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + swiper.params.slideDuplicateClass + \")\");\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children(\".\" + swiper.params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\");\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n swiperParams = swiper.params,\n slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n var slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(\".\" + swiperParams.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\").length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(\".\" + swiperParams.slideVisibleClass).each(function (slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (var _i = activeIndex + slidesPerView; _i < maxIndex; _i += 1) {\n if (slideExist(_i)) swiper.lazy.loadInSlide(_i);\n } // Prev Slides\n\n\n for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) {\n if (slideExist(_i2)) swiper.lazy.loadInSlide(_i2);\n }\n } else {\n var nextSlide = $wrapperEl.children(\".\" + swiperParams.slideNextClass);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n var prevSlide = $wrapperEl.children(\".\" + swiperParams.slidePrevClass);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n};\nexport default {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n lazy: _extends({\n initialImageLoaded: false\n }, Lazy)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll: function scroll(swiper) {\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize: function resize(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove: function scrollbarDragMove(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart(swiper) {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(_setTranslate, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n var Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var Swiper = swiper.constructor;\n var controlled = swiper.controller.control;\n var i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(function () {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n controller: _extends({\n control: swiper.params.controller.control\n }, Controller)\n });\n },\n on: {\n update: function update(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(swiper, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(swiper, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar A11y = {\n getRandomNumber: function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n var randomChar = function randomChar() {\n return Math.round(16 * Math.random()).toString(16);\n };\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n },\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElRoleDescription: function addElRoleDescription($el, description) {\n $el.attr('aria-role-description', description);\n return $el;\n },\n addElControls: function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n addElId: function addElId($el, id) {\n $el.attr('id', id);\n return $el;\n },\n addElLive: function addElLive($el, live) {\n $el.attr('aria-live', live);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey: function onEnterKey(e) {\n var swiper = this;\n var params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n var $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(\".\" + swiper.params.pagination.bulletClass)) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n if (swiper.params.loop || !swiper.navigation) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.a11y;\n swiper.$el.append(swiper.a11y.liveRegion); // Container\n\n var $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\n var live;\n swiper.a11y.addElId($wrapperEl, wrapperId);\n\n if (swiper.params.autoplay && swiper.params.autoplay.enabled) {\n live = 'off';\n } else {\n live = 'polite';\n }\n\n swiper.a11y.addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n swiper.a11y.addElRole($(swiper.slides), 'group');\n swiper.slides.each(function (slideEl) {\n var $slideEl = $(slideEl);\n swiper.a11y.addElLabel($slideEl, $slideEl.index() + 1 + \" / \" + swiper.slides.length);\n }); // Navigation\n\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n swiper.a11y.makeElFocusable($nextEl);\n\n if ($nextEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($nextEl, 'button');\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n swiper.a11y.addElControls($nextEl, wrapperId);\n }\n\n if ($prevEl && $prevEl.length) {\n swiper.a11y.makeElFocusable($prevEl);\n\n if ($prevEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($prevEl, 'button');\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n swiper.a11y.addElControls($prevEl, wrapperId);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', \".\" + swiper.params.pagination.bulletClass, swiper.a11y.onEnterKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', \".\" + swiper.params.pagination.bulletClass, swiper.a11y.onEnterKey);\n }\n }\n};\nexport default {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends(_extends({}, A11y), {}, {\n liveRegion: $(\"\")\n })\n });\n },\n on: {\n afterInit: function afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar History = {\n init: function init() {\n var swiper = this;\n var window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues(swiper.params.url);\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues(swiper.params.url);\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues: function getPathValues(urlOverride) {\n var window = getWindow();\n var location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n var pathArray = location.pathname.slice(1).split('/').filter(function (part) {\n return part !== '';\n });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return {\n key: key,\n value: value\n };\n },\n setHistory: function setHistory(key, index) {\n var swiper = this;\n var window = getWindow();\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n var location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n var slide = swiper.slides.eq(index);\n var value = History.slugify(slide.attr('data-history'));\n\n if (!location.pathname.includes(key)) {\n value = key + \"/\" + value;\n }\n\n var currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value: value\n }, null, value);\n } else {\n window.history.pushState({\n value: value\n }, null, value);\n }\n },\n slugify: function slugify(text) {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = History.slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n }\n};\nexport default {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n history: _extends({}, History)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar HashNavigation = {\n onHashCange: function onHashCange() {\n var swiper = this;\n var document = getDocument();\n swiper.emit('hashChange');\n var newHash = document.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-hash=\\\"\" + newHash + \"\\\"]\").index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n var window = getWindow();\n var document = getDocument();\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, \"#\" + swiper.slides.eq(swiper.activeIndex).attr('data-hash') || '');\n swiper.emit('hashSet');\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init: function init() {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n swiper.hashNavigation.initialized = true;\n var hash = document.location.hash.replace('#', '');\n\n if (hash) {\n var speed = 0;\n\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n }\n};\nexport default {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n hashNavigation: _extends({\n initialized: false\n }, HashNavigation)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends(_extends({}, Autoplay), {}, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl.css({\n opacity: slideOpacity\n }).transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n fadeEffect: _extends({}, Fade)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"fade\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides,\n swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n rtl = swiper.rtlTranslate,\n swiperSize = swiper.size,\n browser = swiper.browser;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
    ');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: swiperWidth + \"px\"\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
    ');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
    \");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
    \");\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-moz-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-ms-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n 'transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\"\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\"translate3d(0px, \" + (swiperWidth / 2 + params.shadowOffset) + \"px, \" + -swiperWidth / 2 + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + params.shadowScale + \")\");\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var offset = params.shadowOffset;\n $cubeShadowEl.transform(\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + (swiperHeight / 2 + offset) + \"px, \" + -swiperHeight / 2 / scale2 + \"px) rotateX(-90deg)\");\n }\n }\n\n var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\");\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n }\n};\nexport default {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n cubeEffect: _extends({}, Cube)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"cube\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n var offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -offset;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
    \");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
    \");\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n $slideEl.transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n activeIndex = swiper.activeIndex,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false; // eslint-disable-next-line\n\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return; // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n flipEffect: _extends({}, Flip)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"flip\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth; // Each slide offset from center\n\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n var translateZ = -translate * Math.abs(offsetMultiplier);\n var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) scale(\" + scale + \")\";\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(\"
    \");\n $slideEl.append($shadowBeforeEl);\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(\"
    \");\n $slideEl.append($shadowAfterEl);\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n};\nexport default {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n coverflowEffect: _extends({}, Coverflow)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"coverflow\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, isObject, bindModuleMethods } from '../../utils/utils';\nimport $ from '../../utils/dom';\nvar Thumbs = {\n init: function init() {\n var swiper = this;\n var thumbsParams = swiper.params.thumbs;\n if (swiper.thumbs.initialized) return false;\n swiper.thumbs.initialized = true;\n var SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false\n }));\n swiper.thumbs.swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n return true;\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n var slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n },\n update: function update(initial) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n var direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;else newThumbsIndex = prevThumbsIndex;\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\").addClass(thumbActiveClass);\n }\n } else {\n for (var _i = 0; _i < thumbsToActivate; _i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass);\n }\n }\n }\n};\nexport default {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n thumbs: _extends({\n swiper: null,\n initialized: false\n }, Thumbs)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n var thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update: function update(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize: function resize(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition: function setTransition(swiper, duration) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy(swiper) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n }\n }\n};","/**\n * Swiper 6.3.4\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2020 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: October 20, 2020\n */\n\nimport Swiper from './esm/components/core/core-class';\nexport { default as Swiper, default } from './esm/components/core/core-class';\nexport { default as Virtual } from './esm/components/virtual/virtual';\nexport { default as Keyboard } from './esm/components/keyboard/keyboard';\nexport { default as Mousewheel } from './esm/components/mousewheel/mousewheel';\nexport { default as Navigation } from './esm/components/navigation/navigation';\nexport { default as Pagination } from './esm/components/pagination/pagination';\nexport { default as Scrollbar } from './esm/components/scrollbar/scrollbar';\nexport { default as Parallax } from './esm/components/parallax/parallax';\nexport { default as Zoom } from './esm/components/zoom/zoom';\nexport { default as Lazy } from './esm/components/lazy/lazy';\nexport { default as Controller } from './esm/components/controller/controller';\nexport { default as A11y } from './esm/components/a11y/a11y';\nexport { default as History } from './esm/components/history/history';\nexport { default as HashNavigation } from './esm/components/hash-navigation/hash-navigation';\nexport { default as Autoplay } from './esm/components/autoplay/autoplay';\nexport { default as EffectFade } from './esm/components/effect-fade/effect-fade';\nexport { default as EffectCube } from './esm/components/effect-cube/effect-cube';\nexport { default as EffectFlip } from './esm/components/effect-flip/effect-flip';\nexport { default as EffectCoverflow } from './esm/components/effect-coverflow/effect-coverflow';\nexport { default as Thumbs } from './esm/components/thumbs/thumbs';\n\n// Swiper Class\nvar components = [];\nSwiper.use(components);\n","// core version + navigation + autoplay, pagination modules:\r\nimport Swiper, { Navigation, Pagination, Autoplay } from 'swiper'\r\n// import Swiper styles\r\nimport 'swiper/swiper-bundle.css'\r\n\r\n// configure Swiper to use modules\r\nSwiper.use([Navigation, Pagination, Autoplay])\r\n\r\nfunction initSwiper () {\r\n /* eslint-disable no-new */\r\n new Swiper('.header-slider', {\r\n // Optional parameters\r\n loop: false,\r\n autoplay: {\r\n delay: 5000,\r\n disableOnInteraction: false\r\n },\r\n pagination: {\r\n el: '.swiper-pagination',\r\n dynamicBullets: true,\r\n clickable: true\r\n },\r\n navigation: {\r\n nextEl: '.swiper-button-next',\r\n prevEl: '.swiper-button-prev'\r\n }\r\n })\r\n}\r\n\r\nexport default initSwiper\r\n","/**\r\n * @module modules/cookie\r\n */\r\n\r\n/**\r\n * @classdesc Модуль cookie\r\n */\r\n\r\nclass Cookie {\r\n static setCookie (cname, cvalue, exdays) {\r\n const d = new Date()\r\n d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000))\r\n const expires = 'expires=' + d.toUTCString()\r\n document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/'\r\n }\r\n\r\n static getCookie (cname) {\r\n const name = cname + '='\r\n const decodedCookie = decodeURIComponent(document.cookie)\r\n const ca = decodedCookie.split(';')\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i]\r\n while (c.charAt(0) === ' ') {\r\n c = c.substring(1)\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length)\r\n }\r\n }\r\n return ''\r\n }\r\n}\r\n\r\nexport default Cookie\r\n","import Cookie from '../modules/cookies'\r\n\r\nconst notify = document.querySelector(\r\n '.cookie-policy-notify'\r\n)\r\n\r\nconst closeButton = notify.querySelector(\r\n '.cookie-policy-notify__button'\r\n)\r\n\r\nfunction init () {\r\n if (Cookie.getCookie('.UseCookieAgree')) {\r\n return\r\n }\r\n\r\n notify.classList.remove('hidden')\r\n closeButton.addEventListener('click', onCloseButtonClick)\r\n}\r\n\r\nfunction onCloseButtonClick () {\r\n notify.classList.add('hidden')\r\n Cookie.setCookie('.UseCookieAgree', 1, 365)\r\n document.removeEventListener('click', onCloseButtonClick)\r\n}\r\n\r\nexport default init\r\n","function init () {\r\n window.onload = function () {\r\n const preloader = document.querySelector('[data-preloader]')\r\n preloader.style.display = 'none'\r\n document.body.style.overflow = 'auto'\r\n }\r\n}\r\n\r\nexport default init\r\n","var bundleURL = null;\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error;\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)?\\/[^/]+(?:\\?.*)?$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\n","var getBundleURL = require('./bundle-url').getBundleURL;\n\nfunction loadBundlesLazy(bundles) {\n if (!Array.isArray(bundles)) {\n bundles = [bundles]\n }\n\n var id = bundles[bundles.length - 1];\n\n try {\n return Promise.resolve(require(id));\n } catch (err) {\n if (err.code === 'MODULE_NOT_FOUND') {\n return new LazyPromise(function (resolve, reject) {\n loadBundles(bundles.slice(0, -1))\n .then(function () {\n return require(id);\n })\n .then(resolve, reject);\n });\n }\n\n throw err;\n }\n}\n\nfunction loadBundles(bundles) {\n return Promise.all(bundles.map(loadBundle));\n}\n\nvar bundleLoaders = {};\nfunction registerBundleLoader(type, loader) {\n bundleLoaders[type] = loader;\n}\n\nmodule.exports = exports = loadBundlesLazy;\nexports.load = loadBundles;\nexports.register = registerBundleLoader;\n\nvar bundles = {};\nfunction loadBundle(bundle) {\n var id;\n if (Array.isArray(bundle)) {\n id = bundle[1];\n bundle = bundle[0];\n }\n\n if (bundles[bundle]) {\n return bundles[bundle];\n }\n\n var type = (bundle.substring(bundle.lastIndexOf('.') + 1, bundle.length) || bundle).toLowerCase();\n var bundleLoader = bundleLoaders[type];\n if (bundleLoader) {\n return bundles[bundle] = bundleLoader(getBundleURL() + bundle)\n .then(function (resolved) {\n if (resolved) {\n module.bundle.register(id, resolved);\n }\n\n return resolved;\n }).catch(function(e) {\n delete bundles[bundle];\n \n throw e;\n });\n }\n}\n\nfunction LazyPromise(executor) {\n this.executor = executor;\n this.promise = null;\n}\n\nLazyPromise.prototype.then = function (onSuccess, onError) {\n if (this.promise === null) this.promise = new Promise(this.executor)\n return this.promise.then(onSuccess, onError)\n};\n\nLazyPromise.prototype.catch = function (onError) {\n if (this.promise === null) this.promise = new Promise(this.executor)\n return this.promise.catch(onError)\n};\n","import router from './utils/router'\r\nimport './main.css'\r\nimport { App } from '@roskvartal-landings/base'\r\nimport { ModalPlugin } from '@roskvartal-landings/plugin-modal'\r\nimport initNavbar from './components/navbar'\r\nimport initLightbox from './components/lightbox'\r\nimport EmailModal from './components/email-modal'\r\nimport EmailConfirmModal from './components/email-confirm-modal'\r\nimport initWidget from './utils/dispatch-widget'\r\nimport initSwiper from './plugins/swiper'\r\nimport initCookiePolicyNotify from './plugins/cookie-policy-notify'\r\nimport initPreloader from './components/preloader'\r\n\r\n/**\r\n * ['имя-пути': import('ресурс')]\r\n *\r\n * Если `имя-пути` соответствует атрибуту `[data-route]`\r\n * на странице, будет загружен соответствующий `русурс` (js-файл).\r\n */\r\n\r\nrouter({\r\n home: import('./pages/home'),\r\n houses: import('./pages/houses'),\r\n news: import('./pages/news'),\r\n newsArticle: import('./pages/news-article'),\r\n aboutCompany: import('./pages/about-company'),\r\n house: import('./pages/house'),\r\n housePhotos: import('./pages/house-photos'),\r\n houseDocuments: import('./pages/house-documents'),\r\n houseAppeals: import('./pages/house-appeals'),\r\n houseNews: import('./pages/house-news'),\r\n contacts: import('./pages/contacts'),\r\n page: import('./pages/page'),\r\n placeholder: import('./pages/placeholder')\r\n})\r\n\r\nconst app = new App()\r\n\r\napp.usePlugin(ModalPlugin)\r\napp.registerComponent('email-modal', EmailModal)\r\napp.registerComponent('email-confirm-modal', EmailConfirmModal)\r\napp.init()\r\n\r\ninitNavbar()\r\ninitWidget()\r\ninitLightbox()\r\ninitSwiper()\r\ninitCookiePolicyNotify()\r\ninitPreloader()\r\n",".news-card {\r\n background: var(--color-white);\r\n padding: 40px 10px 10px 10px;\r\n display: flex;\r\n flex-direction: column;\r\n position: relative;\r\n}\r\n\r\n@media screen and (min-width: 1320px) {\r\n .news-card {\r\n height: 300px;\r\n width: 383px;\r\n padding: 25px;\r\n }\r\n .news-card:not(:last-child) {\r\n margin-right: 13px;\r\n }\r\n}\r\n\r\n.news-card:not(:last-child) {\r\n margin-bottom: 10px;\r\n}\r\n\r\n@media screen and (min-width: 1320px) {\r\n .news-card:not(:last-child) {\r\n margin-bottom: 13px;\r\n }\r\n}\r\n\r\n.news-card__title {\r\n font-weight: 600;\r\n font-size: 20px;\r\n line-height: 25px;\r\n color: var(--color-teal-base);\r\n}\r\n\r\n.news-card__text {\r\n line-height: 20px;\r\n color: var(--color-mid-grey);\r\n padding-top: 12px;\r\n}\r\n\r\n.news-card__link:before {\r\n content: \"\";\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.news-card:hover .news-card__title {\r\n text-decoration: underline;\r\n}",".pagination {\r\n display: flex;\r\n width: 100%;\r\n margin-top: 54px;\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n}\r\n\r\n@media screen and (min-width: 1320px) {\r\n .pagination {\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n}\r\n\r\n.pagination__page {\r\n background: var(--color-extralight-grey);\r\n border-radius: 8px;\r\n padding: 12px 16px;\r\n text-decoration: none;\r\n font-weight: 600;\r\n font-size: 15px;\r\n line-height: 20px;\r\n text-align: center;\r\n letter-spacing: 0.03em;\r\n text-transform: uppercase;\r\n color: var(--color-grey); \r\n border: 2px solid transparent;\r\n min-width: 45px;\r\n}\r\n\r\n.pagination__page:not(:last-child) {\r\n margin-right: 10px;\r\n}\r\n\r\n.pagination__page--active {\r\n color: var(--color-orange-basic); \r\n border: 2px solid var(--color-orange-basic);\r\n}",".buttons-group {\r\n display: flex;\r\n align-items: stretch;\r\n justify-content: stretch;\r\n flex-direction: column;\r\n}\r\n\r\n.buttons-group--type--row {\r\nflex-direction: row;\r\n}\r\n\r\n@media (max-width: 1320px) {\r\n .buttons-group > *:not(:first-child) {\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n }\r\n \r\n .buttons-group > *:not(:last-child) {\r\n border-bottom-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n}\r\n\r\n@media (min-width: 1320px) {\r\n .buttons-group {\r\n flex-direction: row;\r\n }\r\n\r\n .buttons-group > *:not(:first-child) {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n \r\n .buttons-group > *:not(:last-child) {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n}\r\n\r\n.buttons-group__item--group-type--row {\r\n border-radius: 0;\r\n}\r\n\r\n.buttons-group__item--group-type--row:not(:first-child) {\r\n border-left: none;\r\n}\r\n\r\n.buttons-group__item--group-type--row:first-child {\r\n border-bottom-left-radius: 6px;\r\n border-top-left-radius: 6px;\r\n}\r\n\r\n.buttons-group__item--group-type--row:last-child {\r\n border-bottom-right-radius: 6px;\r\n border-top-right-radius: 6px;\r\n}",".typographer table {\r\n width: 100%;\r\n border: none;\r\n border-spacing: 0;\r\n}\r\n\r\n.typographer thead > tr:last-child > * {\r\n border-bottom: 1px solid var(--color-mid-grey);\r\n}\r\n\r\n.typographer tbody > tr:not(:last-child) > * {\r\n border-bottom: 1px solid var(--color-grey);\r\n}\r\n\r\n.typographer th {\r\n display: table-cell;\r\n font-weight: 500;\r\n font-size: 13px;\r\n line-height: 20px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n text-align: left;\r\n color: var(--color-mid-grey);\r\n}\r\n\r\n.typographer thead th {\r\n color: var(--color-grey);\r\n}\r\n\r\n.typographer td {\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 20px;\r\n color: var(--color-black);\r\n}\r\n",".card {\r\n border-radius: 6px;\r\n overflow: hidden;\r\n --padding-x: 10px;\r\n}\r\n\r\n@media (min-width: 1320px) {\r\n .card {\r\n --padding-x: 48px;\r\n }\r\n}\r\n\r\n.card__header {\r\n background-color: var(--color-extralight-grey);\r\n}\r\n\r\n@media (min-width: 1320px) {\r\n .card__header {\r\n padding: 32px var(--padding-x) 16px;\r\n }\r\n}\r\n\r\n.card__content {\r\n background-color: var(--color-white);\r\n padding: 28px var(--padding-x);\r\n}\r\n\r\n@media (min-width: 1320px) {\r\n .card__content {\r\n padding: 36px var(--padding-x);\r\n }\r\n}\r\n",".house-page-header {\r\n display: block;\r\n}\r\n\r\n@media (min-width: 1320px) {\r\n .house-page-header {\r\n background-color: var(--color-white);\r\n }\r\n}\r\n\r\n.house-page-header__content {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: stretch;\r\n padding-top: 24px;\r\n padding-bottom: 24px;\r\n}\r\n\r\n.house-page-header__content > * {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n}\r\n\r\n.house-page-header__content > * + * {\r\n margin-top: 20px;\r\n}\r\n\r\n@media (min-width: 1320px) {\r\n .house-page-header__content {\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding-top: 42px;\r\n padding-bottom: 42px;\r\n }\r\n\r\n .house-page-header__content > * {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n }\r\n \r\n .house-page-header__content > * + * {\r\n margin-top: 20px;\r\n } \r\n}\r\n\r\n.house-page-header__title {\r\n font-family: Montserrat, sans-serif;\r\n font-weight: 700;\r\n font-size: 26px;\r\n line-height: 29px;\r\n}\r\n\r\n@media (min-width: 1320px) {\r\n .house-page-header__title {\r\n font-size: 36px;\r\n line-height: 39px;\r\n /* or 108% */\r\n letter-spacing: -0.01em;\r\n max-width: 60%;\r\n }\r\n}\r\n",".house-page-tabs {\r\n display: flex;\r\n align-items: center;\r\n overflow-x: auto;\r\n list-style: none;\r\n margin: 0;\r\n padding: 20px var(--padding-x);\r\n}\r\n\r\n.house-page-tabs > * {\r\n margin-left: 0;\r\n margin-right: 0;\r\n}\r\n\r\n.house-page-tabs > * + * {\r\n margin-left: 22px;\r\n}\r\n\r\n@media (min-width: 1320px) {\r\n .house-page-tabs > * + * {\r\n margin-left: 50px;\r\n }\r\n}\r\n\r\n.house-page-tabs__tab {\r\n white-space: nowrap;\r\n font-weight: 600;\r\n font-size: 13px;\r\n line-height: 17px;\r\n text-decoration: none;\r\n letter-spacing: 0.03em;\r\n text-transform: uppercase;\r\n color: var(--color-orange-basic);\r\n}\r\n\r\n.house-page-tabs__tab--active {\r\n color: var(--color-black);\r\n pointer-events: none;\r\n}\r\n\r\n@media (min-width: 1320px) {\r\n .house-page-tabs__tab {\r\n font-size: 15px;\r\n line-height: 20px;\r\n }\r\n}\r\n","module.exports = function loadCSSBundle(bundle) {\n return new Promise(function (resolve, reject) {\n var link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = bundle;\n link.onerror = function (e) {\n link.onerror = link.onload = null;\n reject(e);\n };\n\n link.onload = function () {\n link.onerror = link.onload = null;\n resolve();\n };\n\n document.getElementsByTagName('head')[0].appendChild(link);\n });\n};\n","module.exports = function loadJSBundle(bundle) {\n return new Promise(function (resolve, reject) {\n var script = document.createElement('script');\n script.async = true;\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.src = bundle;\n script.onerror = function (e) {\n script.onerror = script.onload = null;\n reject(e);\n };\n\n script.onload = function () {\n script.onerror = script.onload = null;\n resolve();\n };\n\n document.getElementsByTagName('head')[0].appendChild(script);\n });\n};\n"]}