{"version":3,"sources":["webpack:///./src/assets/images/centaline/poster_2/img_07.jpg","webpack:///./node_modules/vant/es/utils/dom/node.js","webpack:///./src/components/SectionImg/index.vue?c0b3","webpack:///src/components/SectionImg/index.vue","webpack:///./src/components/SectionImg/index.vue?62c2","webpack:///./src/components/SectionImg/index.vue","webpack:///./src/pages/centaline/main.js","webpack:///./src/assets/images/centaline/poster_2/img_05.jpg","webpack:///./src/assets/images/centaline/poster_2/img_02.jpg","webpack:///./src/poster lazy ^\\.\\/.*$ namespace object","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./src/assets/images/centaline/poster_1/img_08.jpg","webpack:///./src/views/Hanlin/index.vue?a7ac","webpack:///src/views/Hanlin/index.vue","webpack:///./src/views/Hanlin/index.vue?2db3","webpack:///./src/views/Hanlin/index.vue","webpack:///./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","webpack:///./src/assets/404_images/404_cloud.png","webpack:///./src/assets/images/centaline/poster_2/img_03.jpg","webpack:///./src/poster/centaline/poster_2.js","webpack:///./src/pages/centaline/App.vue?f0c9","webpack:///./src/pages/centaline/App.vue","webpack:///./node_modules/qs/lib/stringify.js","webpack:///./src/assets/images/centaline/poster_2/img_08.jpg","webpack:///./node_modules/dom7/node_modules/ssr-window/dist/ssr-window.esm.js","webpack:///./node_modules/dom7/dist/dom7.modular.js","webpack:///./node_modules/ssr-window/dist/ssr-window.esm.js","webpack:///./node_modules/swiper/dist/js/swiper.esm.bundle.js","webpack:///./node_modules/qs/lib/index.js","webpack:///./src/assets/images/centaline/poster_1/img_04.jpg","webpack:///./src/components/SectionSwiper/index.vue?e31f","webpack:///src/components/SectionSwiper/index.vue","webpack:///./src/components/SectionSwiper/index.vue?cb3a","webpack:///./src/components/SectionSwiper/index.vue","webpack:///./src/components/SectionImg/index.vue?2239","webpack:///./src/assets/images/centaline/poster_2/img_12.jpg","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/vant/es/loading/index.js","webpack:///./src/assets/images/centaline/poster_1/img_14.jpg","webpack:///./src/assets/images/centaline/poster_1/swiper_arrow.png","webpack:///./src/assets/images/centaline/poster_2/img_09.jpg","webpack:///./src/assets/images/centaline/poster_1/img_09.jpg","webpack:///./src/assets/images/centaline/poster_2/img_04.jpg","webpack:///./src/assets/images/centaline/poster_1/img_05.jpg","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/vant/es/mixins/popup/context.js","webpack:///./node_modules/vant/es/utils/dom/event.js","webpack:///./node_modules/vant/es/overlay/index.js","webpack:///./node_modules/vant/es/mixins/popup/overlay.js","webpack:///./node_modules/vant/es/utils/dom/scroll.js","webpack:///./node_modules/vant/es/mixins/touch.js","webpack:///./node_modules/vant/es/mixins/portal.js","webpack:///./node_modules/vant/es/mixins/bind-event.js","webpack:///./node_modules/vant/es/mixins/close-on-popstate.js","webpack:///./node_modules/vant/es/mixins/popup/index.js","webpack:///./src/assets/images/centaline/poster_2/img_13.jpg","webpack:///./src/router/zhihu.js","webpack:///./src/assets/images/centaline/poster_2/img_10.jpg","webpack:///./node_modules/vue-awesome-swiper/dist/vue-awesome-swiper.js","webpack:///./src/assets/images/centaline/poster_1/img_03.jpg","webpack:///./src/pages/zhihu/main.js","webpack:///./src/components/SectionTel/index.vue?35db","webpack:///./src/components/SectionTel/index.vue?ce77","webpack:///./node_modules/vant/es/utils/constant.js","webpack:///./node_modules/vant/es/utils/router.js","webpack:///./node_modules/vant/es/button/index.js","webpack:///./node_modules/vant/es/utils/vnodes.js","webpack:///./node_modules/vant/es/mixins/relation.js","webpack:///./node_modules/vant/es/goods-action/index.js","webpack:///./node_modules/vant/es/dialog/index.js","webpack:///./node_modules/vant/es/goods-action-button/index.js","webpack:///./node_modules/vant/es/dialog/Dialog.js","webpack:///src/components/SectionTel/index.vue","webpack:///./src/components/SectionTel/index.vue?5f0d","webpack:///./src/components/SectionTel/index.vue","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./src/assets/images/centaline/poster_2/img_15.jpg","webpack:///./src/assets/images/centaline/poster_2/img_01.jpg","webpack:///./src/components/Bottom/index.vue?70ee","webpack:///./src/components/Bottom/index.vue","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./src/assets/images/centaline/poster_2/img_16.jpg","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./src/assets/images/centaline/poster_1/swiper_01.jpg","webpack:///./src/views/404/index.vue?4888","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./src/assets/images/logo.png","webpack:///./node_modules/qs/lib/parse.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/vant/es/utils/index.js","webpack:///./src/router/index.js","webpack:///./src/assets/404_images/404.png","webpack:///./src/assets/images/centaline/poster_1/img_07.jpg","webpack:///./src sync ^\\.\\/.*$","webpack:///./src/assets/images/centaline/poster_1/swiper_04.jpg","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/vant/es/info/index.js","webpack:///./node_modules/vant/es/icon/index.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./src/assets/images/centaline/poster_1/img_12.jpg","webpack:///./node_modules/qs/lib/formats.js","webpack:///./src/assets/images/centaline/poster_2/bg.jpg","webpack:///./src/assets/images/centaline/poster_1/img_02.jpg","webpack:///./node_modules/vant/es/utils/functional.js","webpack:///./src/assets/images/centaline/poster_1/img_11.jpg","webpack:///./src/components/SectionForm/index.vue?8d18","webpack:///./node_modules/vant/es/toast/lock-click.js","webpack:///./node_modules/vant/es/toast/Toast.js","webpack:///./node_modules/vant/es/toast/index.js","webpack:///./node_modules/vant/es/popup/index.js","webpack:///./node_modules/vant/es/notify/Notify.js","webpack:///./node_modules/vant/es/notify/index.js","webpack:///src/components/SectionForm/index.vue","webpack:///./src/components/SectionForm/index.vue?8352","webpack:///./src/components/SectionForm/index.vue","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./src/components/Bottom/index.vue?9f64","webpack:///./src/components/SectionForm/index.vue?4aad","webpack:///./src/assets/images/centaline/poster_2/img_18.jpg","webpack:///./node_modules/qs/lib/utils.js","webpack:///./node_modules/vant/es/utils/create/bem.js","webpack:///./node_modules/vant/es/utils/format/string.js","webpack:///./node_modules/vant/es/mixins/slots.js","webpack:///./node_modules/vant/es/utils/create/component.js","webpack:///./node_modules/vant/es/utils/deep-assign.js","webpack:///./node_modules/vant/es/locale/lang/zh-CN.js","webpack:///./node_modules/vant/es/locale/index.js","webpack:///./node_modules/vant/es/utils/create/i18n.js","webpack:///./node_modules/vant/es/utils/create/index.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./src/assets/images/centaline/poster_2/img_06.jpg","webpack:///./src/components/SectionSwiper/index.vue?03fa","webpack:///./src/assets/images/centaline/poster_1/swiper_03.jpg","webpack:///./src/assets/images/centaline/poster_2/img_11.jpg","webpack:///./src/pages/zhihu/App.vue?4123","webpack:///./src/pages/zhihu/App.vue","webpack:///./src/views/404/index.vue?a0b8","webpack:///./src/views/404/index.vue","webpack:///./src/assets/images/centaline/poster_2/img_17.jpg","webpack:///./src/assets/images/centaline/poster_1/img_06.jpg","webpack:///./src/poster/centaline/poster_1.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./src/assets/images/centaline/poster_2/img_14.jpg","webpack:///./node_modules/vant/es/utils/validate/number.js","webpack:///./node_modules/vant/es/utils/format/unit.js","webpack:///./src/assets/images/centaline/poster_1/swiper_02.jpg","webpack:///./src/assets/images/centaline/poster_1/img_01.jpg","webpack:///./src/assets/images/centaline/poster_1/img_10.jpg","webpack:///./src/assets/images/centaline/poster_1/swiper_bg.png","webpack:///./src/assets/images/centaline/poster_1/img_13.jpg"],"names":["module","exports","removeNode","el","parent","parentNode","removeChild","render","_vm","this","_h","$createElement","_c","_self","staticClass","_l","data","img","key","id","attrs","imgpath","filename","_e","class","logo","position","staticRenderFns","component","Vue","prototype","$axios","axios","$md5","md5","config","productionTip","router","h","App","$mount","map","webpackAsyncContext","req","Promise","resolve","then","__webpack_require__","o","e","Error","code","keys","Object","classof","regexpExec","R","S","exec","result","call","TypeError","fails","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","style","backgroundColor","bgColor","color","backgroundImage","setBgImg","swiperPath","dataSource","_extends","assign","a","b","c","arguments","length","d","hasOwnProperty","apply","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","reduce","indexOf","Array","concat","f","g","i","mergeFn","pathname","bgImg","posters","pic","tel","form","bg","radius","swiper","$route","path","script","utils","formats","arrayPrefixGenerators","brackets","prefix","indices","repeat","toISO","Date","toISOString","defaults","delimiter","encode","encoder","encodeValuesOnly","serializeDate","date","skipNulls","strictNullHandling","stringify","object","generateArrayPrefix","filter","sort","allowDots","formatter","obj","isBuffer","keyValue","String","objKeys","values","isArray","opts","options","undefined","format","formatters","arrayFormat","joined","join","addQueryPrefix","isObject","extend","target","src","forEach","doc","document","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","protocol","search","win","window","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","setTimeout","clearTimeout","matchMedia","Dom7","arr","self","$","selector","context","els","tempParent","html","trim","toCreate","innerHTML","push","match","split","nodeType","unique","uniqueArray","addClass","className","classes","j","classList","add","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","value","getAttribute","attrName","removeAttr","removeAttribute","dom7ElementDataStorage","dataKey","transform","elStyle","webkitTransform","transition","duration","webkitTransitionDuration","transitionDuration","on","args","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","parents","k","handleEvent","events","event","dom7LiveListeners","proxyListener","dom7Listeners","off","handlers","handler","dom7proxy","splice","trigger","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","callback","dom","fireCallBack","includeMargins","styles","offsetWidth","parseFloat","offsetHeight","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","prop","each","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","index","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","closest","find","foundElements","found","toAdd","fn","Class","Methods","outerWidth","outerHeight","offset","methodName","Utils","delay","now","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","replace","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","url","query","params","param","urlToParse","paramsPart","decodeURIComponent","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","testDiv","touch","Modernizr","maxTouchPoints","DocumentTouch","pointerEvents","pointerEnabled","PointerEvent","prefixedPointerEvents","msPointerEnabled","transforms3d","csstransforms3d","flexbox","observer","passiveListener","supportsPassive","defineProperty","gestures","isSafari","ua","toLowerCase","isIE","isEdge","isUiWebView","test","SwiperClass","eventsListeners","eventName","priority","method","onceHandler","f7proxy","eventHandler","slice","eventsArray","instanceParams","instance","modules","moduleName","modulesParams","moduleParams","modulePropName","moduleProp","bind","moduleEventName","create","components","use","name","proto","static","install","m","installModule","updateSize","width","height","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","size","updateSlides","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","slidesNumberEvenToRows","slideSize","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","Math","floor","ceil","slidesPerView","slidesPerColumnFill","max","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","swiperSlideSize","centeredSlides","abs","newSlidesGrid","effect","setWrapperSize","slidesGridItem","centerInsufficientSlides","allSlidesSize","slideSizeValue","allSlidesOffset","snap","snapIndex","emit","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","visibleSlides","slideProgress","minTranslate","slideBefore","slideAfter","isVisible","progress","updateProgress","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","update","getTranslate","virtualTranslate","currentTranslate","setTranslate","byController","x","y","z","newProgress","previousTranslate","transitionStart","runCallbacks","direction","autoHeight","dir","animating","slideTo","internal","slideIndex","preventInteractionOnTransition","initialSlide","allowSlideNext","allowSlidePrev","onSlideToWrapperTransitionEnd","destroyed","slideToLoop","newIndex","loopedSlides","slideNext","loopFix","_clientLeft","slidePrev","normalize","val","normalizedTranslate","normalizedSnapGrid","prevSnap","prevIndex","slideReset","slideToClosest","currentSnap","nextSnap","slidesPerViewDynamic","slideToIndex","nextTick","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","diff","slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","grabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","manipulation","device","ios","android","androidChrome","desktop","windows","iphone","ipod","ipad","cordova","phonegap","os","osVersion","webView","osVersionArr","metaViewport","minimalUi","pixelRatio","devicePixelRatio","onTouchStart","touchEventsData","touches","originalEvent","isTouchEvent","type","which","button","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","threshold","allowThresholdMove","preventDefault","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","time","onTouchEnd","touchEndTime","timeDiff","lastClickTime","clickTimeout","currentPos","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","freeModeMomentumBounceRatio","needsLoopFix","freeModeMomentumBounce","freeModeSticky","once","longSwipesMs","stopIndex","groupSize","ratio","longSwipes","longSwipesRatio","shortSwipes","onResize","breakpoints","setBreakpoint","newTranslate","min","autoplay","running","paused","run","preventClicks","preventClicksPropagation","stopImmediatePropagation","attachEvents","touchEvents","wrapperEl","onClick","touchEventsTarget","start","passiveListeners","passive","move","end","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","directionChanged","needsReLoop","changeDirection","points","point","breakpointsInverse","innerWidth","addClasses","classNames","suffixes","suffix","containerModifierClass","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","wasLocked","navigation","checkOverflow$1","init","uniqueNavElements","wrapperClass","prototypes","images","extendedDefaults","super","prototypeGroup","protoMethod","moduleParamName","swiperParams","useModulesParams","passedParams","swipers","containerEl","newParams","touchEventsTouch","touchEventsDesktop","useModules","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","slideEl","deleteInstance","cleanStyles","deleteProps","newDefaults","Device$1","Support$1","support","Browser$1","browser","Resize","resize","resizeHandler","orientationChangeHandler","Observer","func","MutationObserver","WebkitMutationObserver","ObserverFunc","mutations","observerUpdate","requestAnimationFrame","observe","attributes","childList","characterData","observers","observeParents","containerParents","attach","observeSlideChildren","disconnect","Observer$1","destroy","Virtual","force","addSlidesBefore","addSlidesAfter","from","previousFrom","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","slidesToRender","prependIndexes","appendIndexes","cache","$slideEl","numberOfNewSlides","newCache","cachedIndex","Virtual$1","overwriteParams","Keyboard","kc","keyCode","charCode","shiftKey","altKey","ctrlKey","metaKey","keyboard","onlyInViewport","inView","windowWidth","windowHeight","innerHeight","swiperOffset","swiperCoord","returnValue","handle","Keyboard$1","enable","disable","isEventSupported","isSupported","element","implementation","hasFeature","Mousewheel","lastScrollTime","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","mouseEntered","mousewheel","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","sensitivity","timeout","autoplayDisableOnInteraction","stop","getTime","eventsTarged","handleMouseEnter","handleMouseLeave","Mousewheel$1","Navigation","$nextEl","$prevEl","disabledClass","lockClass","nextEl","prevEl","onNextClick","onPrevClick","Navigation$1","hideOnClick","hiddenClass","isHidden","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","Pagination$1","number","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","clientX","clientY","dragStartPos","positionRatio","getPointerPosition","setDragPosition","dragTimeout","snapOnRelease","activeListener","onDragStart","onDragMove","onDragEnd","$swiperEl","dragClass","dragEl","draggable","enableDraggable","disableDraggable","Scrollbar$1","Parallax","p","currentOpacity","currentScale","parallax","setTransform","parallaxEl","$parallaxEl","parallaxDuration","Parallax$1","Zoom","x1","y1","x2","y2","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","getDistanceBetweenTouches","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","scaleMove","minRatio","changedTouches","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","out","in","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","onGestureStart","onGestureChange","onGestureEnd","Zoom$1","onTransitionEnd","Lazy","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","preloaderClass","slideOriginalIndex","originalSlide","loadInSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Lazy$1","loadOnTransitionStart","Controller","LinearSpline","binarySearch","guess","i1","i3","interpolate","controller","spline","controlled","control","multiplier","controlledTranslate","setControlledTranslate","by","getInterpolateFunction","inverse","setControlledTransition","Controller$1","a11y","role","label","$targetEl","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","click","message","notification","liveRegion","disableEl","enableEl","bulletEl","$bulletEl","makeElFocusable","addElRole","addElLabel","paginationBulletMessage","onEnterKey","A11y","notificationClass","updateNavigation","updatePagination","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","pathArray","part","slugify","includes","currentState","state","slideHistory","History$1","setHistory","HashNavigation","newHash","activeSlideHash","slideHash","watchState","onHashCange","HashNavigation$1","setHash","Autoplay","$activeSlideEl","reverseDirection","stopOnLastSlide","waitForTransition","Autoplay$1","disableOnInteraction","pause","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","EffectFade","Cube","swiperWidth","swiperHeight","cubeEffect","$cubeShadowEl","wrapperRotate","shadow","slideAngle","round","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","cos","scale1","scale2","zFactor","EffectCube","Flip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","EffectFlip","Coverflow","coverflowEffect","center","depth","slideOffset","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","ws","perspectiveOrigin","EffectCoverflow","Thumbs","thumbs","thumbsParams","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","initial","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","Thumbs$1","parse","swiperBg","ref","swiperOption","item","slot","swiperArrow","arrow","fixRegExpWellKnownSymbolLogic","anObject","toObject","toLength","toInteger","requireObjectCoercible","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","it","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","O","replacer","regexp","res","done","rx","functionalReplace","global","fullUnicode","unicode","results","matchStr","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","groups","replacerArgs","replacement","getSubstitution","str","tailPos","symbols","ch","charAt","n","_createNamespace","createComponent","bem","LoadingIcon","Spin","LoadingText","slots","default","textSize","fontSize","Loading","ctx","iconSize","vertical","Number","createMethod","CONVERT_TO_STRING","$this","pos","first","second","charCodeAt","codeAt","originalArray","C","lockCount","stack","vm","get","isStopPropagation","preventTouchMove","Overlay","customStyle","animationDuration","show","lockScroll","defaultConfig","mountOverlay","$emit","closeOnClickOverlay","onClickOverlay","close","updateOverlay","overlay","openOverlay","closeOverlay","removeOverlay","overflowScrollReg","getScroller","root","node","tagName","_window$getComputedSt","overflowY","_window$getComputedSt2","htmlOverflowY","MIN_DISTANCE","getDirection","TouchMixin","methods","touchStart","resetTouchStatus","touchMove","bindTouchEvent","getElement","PortalMixin","_temp","_ref","afterPortal","getContainer","Function","watch","mounted","portal","container","$refs","$parent","uid","BindEventMixin","unbind","activated","deactivated","beforeDestroy","CloseOnPopstateMixin","mixins","isBind","handlePopstate","closeOnPopstate","bindStatus","_this","$isServer","action","shouldReopen","popupMixinProps","overlayStyle","overlayClass","lazyRender","PopupMixin","inited","computed","shouldRender","skipToggleEvent","open","opened","removeLock","renderOverlay","addLock","scrollHeight","status","$nextTick","updateZIndex","VueRouter","routes","redirect","meta","title","CoreNames","ComponentEvents","ComponentPropNames","DEFAULT_CLASSES","freeze","SWIPER_EVENTS","__spreadArrays","s","il","r","jl","SlotNames","kebabcase","string","handleClickSlideEvent","_a","_b","eventPath","composedPath","slides_1","some","reallyIndex","dataset","swiperSlideIndex","reallyIndexValue","isInteger","ClickSlide","bindSwiperEvents","arguments$1","_i","kebabcaseName","INSTANCE_NAME_KEY","getDirective","globalOptions","getStandardisedOptionByAttrs","vnode","_d","getSwiperInstanceName","binding","arg","SwiperInstance","getSwiperInstance","instanceName","getSwipeOptions","getBooleanValueByInput","input","getEventEmiter","componentOptions","listeners","fns","emitEvent","inserted","swiperOptions","vueContext","Ready","componentUpdated","_f","_g","_j","_k","_m","autoUpdate","AutoUpdate","isLoop","autoDestroy","AutoDestroy","DeleteInstanceOnDestroy","CleanupStylesOnDestroy","getSwiperComponent","SwiperComponent","defaultOptions","required","swiperInstance","set","handleSwiperClick","autoReLoopSwiper","updateSwiper","destroySwiper","initSwiper","updated","$slots","ParallaxBg","PrevButton","NextButton","SwiperSlideComponent","getInstaller","installed","directive","SwiperDirective","exporter","version","VueAwesomeSwiper","Swiper","SwiperSlide","_v","$event","callTelephone","_s","WHITE","BORDER","BORDER_TOP","BORDER_LEFT","BORDER_SURROUND","isRedundantNavigation","err","route","promise","catch","functionalRoute","$router","routeProps","Button","tag","icon","plain","disabled","loading","hairline","loadingText","onTouchstart","border","borderColor","block","square","Content","content","loadingSize","loadingType","iconPrefix","nativeType","flattenVNodes","vnodes","traverse","componentInstance","$children","$vnode","sortChildren","ChildrenMixin","_parent","_inject","_computed","indexKey","inject","disableBindRelation","bindRelation","ParentMixin","provide","safeAreaInsetBottom","unfit","isFirst","$options","isLast","last","t","theme","beforeClose","messageAlign","cancelButtonText","cancelButtonColor","confirmButtonText","confirmButtonColor","showCancelButton","allowHtml","showConfirmButton","confirm","cancel","handleAction","onClose","onOpened","onClosed","genRoundButtons","_this2","genButtons","_this3","multiple","genContent","hasTitle","messageSlot","_bem","_domProps","domProps","Title","isolated","isInDocument","initInstance","$destroy","propsData","$on","reject","currentOptions","alert","setDefaultOptions","resetDefaultOptions","Component","$dialog","toPrimitive","definePropertyModule","createPropertyDescriptor","propertyKey","regexpFlags","stickyHelpers","nativeExec","RegExp","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","re","sticky","flags","source","charsAdded","strCopy","multiline","createProperty","arraySpeciesCreate","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","FORCED","forced","E","A","has","allowPrototypes","arrayLimit","decoder","decode","parameterLimit","plainObjects","parseValues","cleanStr","ignoreQueryPrefix","limit","Infinity","parts","bracketEqualsPos","parseObject","chain","leaf","cleanRoot","isNaN","parseArrays","parseKeys","givenKey","segment","isRegExp","tempObj","newObj","merge","compact","RE","inBrowser","isServer","noop","isDef","isFunction","webpackContext","webpackContextResolve","Info","dot","info","showInfo","isImage","LEGACY_MAP","medel","correctName","Icon","imageIcon","classPrefix","badge","that","ignoreCase","dotAll","DESCRIPTORS","FunctionPrototype","FunctionPrototypeToString","nameRE","NAME","configurable","error","percentTwenties","RFC1738","RFC3986","inheritKey","mapInheritKey","nativeOn","inherit","inheritListeners","_len","_key","mount","$props","borderRadius","focus","directives","rawName","expression","composing","btnColor","boxShadow","submit","lockClick","lock","forbidClick","closeOnClick","toggleClickable","onAfterEnter","onAfterLeave","genIcon","hasIcon","genMessage","mask","defaultOptionsMap","queue","parseOptions","createInstance","toast","transformOptions","clear","timer","all","shift","allowMultiple","$toast","closeable","closeIcon","closeIconPosition","beforeCreate","createEmitter","isCenter","transitionName","Notify","$notify","hexTable","toUpperCase","compactQueue","compacted","arrayToObject","mergeTarget","acc","refs","gen","mods","ret","createBEM","camelizeRE","camelize","_","SlotsMixin","$scopedSlots","scopedSlot","unifySlots","scopedSlots","transformFunctionComponent","pure","functional","model","sfc","assignKey","deepAssign","save","delete","telEmpty","nameEmpty","nameInvalid","confirmDelete","telInvalid","vanCalendar","startEnd","weekdays","monthTitle","year","month","rangePrompt","maxRange","vanContactCard","addText","vanContactList","vanPagination","vanPullRefresh","pulling","loosing","vanSubmitBar","vanCoupon","unlimited","discount","_discount","condition","_condition","vanCouponCell","tips","count","_count","vanCouponList","empty","exchange","placeholder","vanAddressEdit","area","postal","areaEmpty","addressEmpty","postalEmpty","defaultAddress","telPlaceholder","namePlaceholder","areaPlaceholder","vanAddressEditDetail","vanAddressList","defineReactive","util","messages","$vantMessages","$vantLang","lang","_this$add","createI18N","locale","createNamespace","redefine","createNonEnumerableProperty","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","sham","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","isNumeric","addUnit"],"mappings":"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","file":"js/hanlin.685b1119.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/img_07.c1eeda27.jpg\";","export function removeNode(el) {\n var parent = el.parentNode;\n\n if (parent) {\n parent.removeChild(el);\n }\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"section-img\"},_vm._l((_vm.data.img),function(img){return _c('div',{key:img.id,staticClass:\"img-wrap\"},[(img.logo)?_c('img',{attrs:{\"src\":require((\"@/\" + _vm.imgpath + \"/\" + _vm.filename + \"/\" + (img.pic)))}}):_vm._e(),(img.logo)?_c('a',{staticClass:\"logo\",class:img.logo.position ? img.logo.position : 'left',attrs:{\"href\":\"https://tj.centanet.com/\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/images/logo.png\")}})]):_c('img',{attrs:{\"src\":require((\"@/\" + _vm.imgpath + \"/\" + _vm.filename + \"/\" + img))}})])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=099cfd02&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=099cfd02&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"099cfd02\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from '@/router'\r\n\r\n//axios\r\nimport axios from 'axios';\r\nVue.prototype.$axios=axios;\r\n\r\n//md5\r\nimport md5 from 'js-md5'\r\nVue.prototype.$md5=md5;\r\n\r\nimport '@/style/index.scss';\r\n\r\nVue.config.productionTip = false\r\n\r\nnew Vue({\r\n router,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","module.exports = __webpack_public_path__ + \"img/img_05.2a8942c1.jpg\";","module.exports = __webpack_public_path__ + \"img/img_02.805003c0.jpg\";","var map = {\n\t\"./centaline/poster_1\": \"e5a9\",\n\t\"./centaline/poster_1.js\": \"e5a9\",\n\t\"./centaline/poster_2\": \"31bc\",\n\t\"./centaline/poster_2.js\": \"31bc\"\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"127a\";\nmodule.exports = webpackAsyncContext;","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","module.exports = __webpack_public_path__ + \"img/img_08.7743ec7d.jpg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrap\",style:({ backgroundColor: _vm.bgColor, color: _vm.color, backgroundImage: _vm.setBgImg })},[_vm._l((_vm.datas),function(data){return _c('div',{key:data.id},[(data.img)?_c('section-img',{attrs:{\"dataP\":data,\"filenameP\":_vm.filename,\"imgpathP\":_vm.imgpath}}):(data.swiper)?_c('section-swiper',{attrs:{\"dataP\":data,\"filenameP\":_vm.filename,\"imgpathP\":_vm.imgpath,\"swiperPathP\":_vm.swiperPath}}):(data.tel)?_c('section-tel',{attrs:{\"dataP\":data}}):(data.form)?_c('section-form',{attrs:{\"dataP\":data,\"dataSourceP\":_vm.dataSource}}):_vm._e()],1)}),_c('bottom')],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=25f020f2&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c 0 ? prefix + joined : '';\n};\n","module.exports = __webpack_public_path__ + \"img/img_08.e5c6a693.jpg\";","/**\n * SSR Window 2.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: May 12, 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 doc = typeof document !== 'undefined' ? document : {};\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};\nextend(doc, ssrDocument);\n\nvar win = typeof window !== 'undefined' ? window : {};\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};\nextend(win, ssrWindow);\n\nexport { doc as document, extend, win as window };\n","/**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\nimport { document, window } from 'ssr-window';\n\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\n\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === window || selector === document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\n\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\n\nfunction requestAnimationFrame(callback) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(callback);\n else if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\n return window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);\n else if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\n return window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\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 }\n\n // Set attrs\n for (let 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 // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\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 (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;\n else if (dataset[key] === 'true') dataset[key] = true;\n else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n const dom = this;\n if (typeof value === 'undefined') {\n if (dom[0]) {\n if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n values.push(dom[0].selectedOptions[i].value);\n }\n return values;\n }\n return dom[0].value;\n }\n return undefined;\n }\n\n for (let i = 0; i < dom.length; i += 1) {\n const el = dom[i];\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let 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 return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents = $(target).parents(); // eslint-disable-line\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n 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 const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\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 return this;\n}\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger(...args) {\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let evt;\n try {\n evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\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}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\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}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === document) return el === document;\n else if (selector === window) return el === window;\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append(...args) {\n let newChild;\n\n for (let k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let 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// eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\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 return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\n for (let 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 (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n const after = $(selector);\n for (let 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 (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\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 new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n for (let 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 return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add(...args) {\n const dom = this;\n let i;\n let j;\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.nodeType === 1) {\n for (let 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 el.textContent = '';\n }\n }\n return this;\n}\n\nfunction scrollTo(...args) {\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2));\n let done;\n if (animateTop) scrollTop = currentTop + (easeProgress * (newTop - currentTop));\n if (animateLeft) scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft));\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\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 if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing', // or 'linear'\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - (Math.cos(progress * Math.PI) / 2);\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n\n elements[index] = {\n container: el,\n };\n Object.keys(props).forEach((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,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue,\n };\n });\n });\n\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\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((element) => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach((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 const { initialValue, finalValue, unit } = el[prop];\n el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\n const currentValue = el[prop].currentValue;\n\n if (\n (finalValue > initialValue && currentValue >= finalValue) ||\n (finalValue < initialValue && currentValue <= finalValue)) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n },\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n for (let 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 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 const els = this;\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = ('resize scroll').split(' ');\nfunction eventShortcut(name, ...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\n\nfunction click(...args) {\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n return eventShortcut.bind(this)('scroll', ...args);\n}\n\nexport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, prop, data, removeData, dataset, val, transform, transition, on, off, once, trigger, transitionEnd, animationEnd, width, outerWidth, height, outerHeight, offset, hide, show, styles, css, toArray, each, forEach, filter, map, html, text, is, indexOf, index, eq, append, appendTo, prepend, prependTo, insertBefore, insertAfter, next, nextAll, prev, prevAll, siblings, parent, parents, closest, find, children, remove, detach, add, empty, scrollTo, scrollTop, scrollLeft, animate, stop, click, blur, focus, focusin, focusout, keyup, keydown, keypress, submit, change, mousedown, mousemove, mouseup, mouseenter, mouseleave, mouseout, mouseover, touchstart, touchend, touchmove, resize, scroll };\n","/**\n * SSR Window 1.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2018, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: July 18, 2018\n */\nvar doc = (typeof document === 'undefined') ? {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: '',\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {},\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n },\n };\n },\n location: { hash: '' },\n} : document; // eslint-disable-line\n\nvar win = (typeof window === 'undefined') ? {\n document: doc,\n navigator: {\n userAgent: '',\n },\n location: {},\n history: {},\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n },\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n} : window; // eslint-disable-line\n\nexport { win as window, doc as document };\n","/**\n * Swiper 4.5.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://www.idangero.us/swiper/\n *\n * Copyright 2014-2019 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: September 13, 2019\n */\n\nimport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, data, transform, transition as transition$1, on, off, trigger, transitionEnd as transitionEnd$1, outerWidth, outerHeight, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, remove, add, styles } from 'dom7/dist/dom7.modular';\nimport { window, document } from 'ssr-window';\n\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition: transition$1,\n on,\n off,\n trigger,\n transitionEnd: transitionEnd$1,\n outerWidth,\n outerHeight,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n remove,\n add,\n styles,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n $.fn[methodName] = $.fn[methodName] || Methods[methodName];\n});\n\nconst Utils = {\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n },\n now() {\n return Date.now();\n },\n getTranslate(el, axis = 'x') {\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map((a) => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\n\nconst Support = (function Support() {\n const testDiv = document.createElement('div');\n return {\n touch: (window.Modernizr && window.Modernizr.touch === true) || (function checkTouch() {\n return !!((window.navigator.maxTouchPoints > 0) || ('ontouchstart' in window) || (window.DocumentTouch && document instanceof window.DocumentTouch));\n }()),\n\n pointerEvents: !!(window.navigator.pointerEnabled || window.PointerEvent || ('maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints > 0)),\n prefixedPointerEvents: !!window.navigator.msPointerEnabled,\n\n transition: (function checkTransition() {\n const style = testDiv.style;\n return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style);\n }()),\n transforms3d: (window.Modernizr && window.Modernizr.csstransforms3d === true) || (function checkTransforms3d() {\n const style = testDiv.style;\n return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style);\n }()),\n\n flexbox: (function checkFlexbox() {\n const style = testDiv.style;\n const styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');\n for (let i = 0; i < styles.length; i += 1) {\n if (styles[i] in style) return true;\n }\n return false;\n }()),\n\n observer: (function checkObserver() {\n return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n }()),\n };\n}());\n\nconst Browser = (function Browser() {\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g),\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n };\n}());\n\nclass SwiperClass {\n constructor(params = {}) {\n const self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n handler.apply(self, args);\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach((m) => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nfunction updateSize () {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n\nfunction updateSlides () {\n const swiper = this;\n const params = swiper.params;\n\n const {\n $wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\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 if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (\n (params.slidesPerColumnFill === 'column')\n || (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1)\n ) {\n if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n const groupIndex = Math.floor(i / params.slidesPerGroup);\n row = Math.floor(i / params.slidesPerView) - groupIndex * params.slidesPerColumn;\n column = i - row * params.slidesPerView - groupIndex * params.slidesPerView;\n }\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .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 {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide\n .css(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`)\n )\n .attr('data-swiper-column', column)\n .attr('data-swiper-row', row);\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n const width = parseFloat(slideStyles.getPropertyValue('width'));\n const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box' && !Browser.isIE) {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n const height = parseFloat(slideStyles.getPropertyValue('height'));\n const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box' && !Browser.isIE) {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\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 if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\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) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (!Support.flexbox || params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\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({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.css({ marginLeft: `${spaceBetween}px` });\n else slides.css({ marginRight: `${spaceBetween}px` });\n } else slides.css({ marginBottom: `${spaceBetween}px` });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Utils.extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n\nfunction updateAutoHeight (speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\n\nfunction updateSlidesOffset () {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n\nfunction updateSlidesProgress (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\n || (slideAfter > 1 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\n\nfunction updateProgress (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress,\n isBeginning,\n isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses () {\n const swiper = this;\n\n const {\n slides, params, $wrapperEl, activeIndex, realIndex,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n}\n\nfunction updateActiveIndex (newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n snapIndex = Math.floor(activeIndex / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide (e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let 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 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 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n\nfunction getTranslate (axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const {\n params, rtlTranslate: rtl, translate, $wrapperEl,\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n\nfunction setTranslate (translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl, params, $wrapperEl, progress,\n } = swiper;\n let x = 0;\n let y = 0;\n const 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.virtualTranslate) {\n if (Support.transforms3d) $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n else $wrapperEl.transform(`translate(${x}px, ${y}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate () {\n return (-this.snapGrid[0]);\n}\n\nfunction maxTranslate () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n}\n\nvar translate = {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n};\n\nfunction setTransition (duration, byController) {\n const swiper = this;\n\n swiper.$wrapperEl.transition(duration);\n\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionStart (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n 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 swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n\nfunction transitionEnd (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex } = swiper;\n swiper.animating = false;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n 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 swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd,\n};\n\nfunction slideTo (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl,\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n let snapIndex = Math.floor(slideIndex / 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 const translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n\n if (speed === 0 || !Support.transition) {\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 if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[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 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nfunction slideToLoop (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params, animating, snapGrid, slidesGrid, rtlTranslate,\n } = swiper;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n const normalizedSlidesGrid = slidesGrid.map((val) => normalize(val));\n\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n const prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n let prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let index = swiper.activeIndex;\n const snapIndex = Math.floor(index / swiper.params.slidesPerGroup);\n\n if (snapIndex < swiper.snapGrid.length - 1) {\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if ((translate - currentSnap) > (nextSnap - currentSnap) / 2) {\n index = swiper.params.slidesPerGroup;\n }\n }\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide,\n};\n\nfunction loopCreate () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\n swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((index, el) => {\n const slide = $(el);\n if (index < swiper.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n\nfunction loopFix () {\n const swiper = this;\n const {\n params, activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtlTranslate: rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex >= slides.length - loopedSlides)) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n}\n\nfunction loopDestroy () {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n\nfunction setGrabCursor (moving) {\n const swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked)) return;\n const 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}\n\nfunction unsetGrabCursor () {\n const swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked)) return;\n swiper.el.style.cursor = '';\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor,\n};\n\nfunction appendSlide (slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\n\nfunction prependSlide (slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide (index, slides) {\n const swiper = this;\n const { $wrapperEl, params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide (slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let 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 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 && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides () {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nvar manipulation = {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides,\n};\n\nconst Device = (function Device() {\n const ua = window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n windows: false,\n iphone: false,\n ipod: false,\n ipad: false,\n cordova: window.cordova || window.phonegap,\n phonegap: window.cordova || window.phonegap,\n };\n\n const windows = ua.match(/(Windows Phone);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n const ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n\n\n // Windows\n if (windows) {\n device.os = 'windows';\n device.osVersion = windows[2];\n device.windows = true;\n }\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.iphone = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Desktop\n device.desktop = !(device.os || device.android || device.webView);\n\n // Webview\n device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);\n\n // Minimal UI\n if (device.os && device.os === 'ios') {\n const osVersionArr = device.osVersion.split('.');\n const metaViewport = document.querySelector('meta[name=\"viewport\"]');\n device.minimalUi = !device.webView\n && (ipod || iphone)\n && (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7)\n && metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0;\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Export object\n return device;\n}());\n\nfunction onTouchStart (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\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 if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$(e).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 const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= window.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($(e.target).is(data.formElements)) preventDefault = false;\n if (\n document.activeElement\n && $(document.activeElement).is(data.formElements)\n && document.activeElement !== e.target\n ) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type === 'mousemove') return;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\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 if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt((diffX ** 2) + (diffY ** 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n e.preventDefault();\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = (swiper.minTranslate() - 1) + ((-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) - ((swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger) return;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\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 data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n\n const {\n params, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid,\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = Utils.now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) > 300) {\n if (data.clickTimeout) clearTimeout(data.clickTimeout);\n data.clickTimeout = Utils.nextTick(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.emit('click', e);\n }, 300);\n }\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n if (data.clickTimeout) clearTimeout(data.clickTimeout);\n swiper.emit('doubleTap', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.nextTick(() => {\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 data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n } 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(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n\n swiper.setTransition(params.speed);\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\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 if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\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 return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {\n if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) {\n stopIndex = i;\n groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + params.slidesPerGroup);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + params.slidesPerGroup);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize () {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n if (params.freeMode) {\n const newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !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 }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick (e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction attachEvents() {\n const swiper = this;\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n {\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n const target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n const capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.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 const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);\n target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.addEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n}\n\nfunction detachEvents() {\n const swiper = this;\n\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n const target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n const capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.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 const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.removeEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n}\n\nvar events = {\n attachEvents,\n detachEvents,\n};\n\nfunction setBreakpoint () {\n const swiper = this;\n const {\n activeIndex, initialized, loopedSlides = 0, params,\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Set breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup'].forEach((param) => {\n const paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\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 const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\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}\n\nfunction getBreakpoint (breakpoints) {\n const swiper = this;\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n const points = [];\n Object.keys(breakpoints).forEach((point) => {\n points.push(point);\n });\n points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10));\n for (let i = 0; i < points.length; i += 1) {\n const point = points[i];\n if (swiper.params.breakpointsInverse) {\n if (point <= window.innerWidth) {\n breakpoint = point;\n }\n } else if (point >= window.innerWidth && !breakpoint) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = { setBreakpoint, getBreakpoint };\n\nfunction addClasses () {\n const swiper = this;\n const {\n classNames, params, rtl, $el,\n } = swiper;\n const suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (!Support.flexbox) {\n suffixes.push('no-flexbox');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n // WP8 Touch Events Fix\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n suffixes.push(`wp8-${params.direction}`);\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n}\n\nfunction removeClasses () {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n}\n\nvar classes = { addClasses, removeClasses };\n\nfunction loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) {\n let image;\n function onReady() {\n if (callback) callback();\n }\n if (!imageEl.complete || !checkForComplete) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n\nfunction preloadImages () {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n}\n\nvar images = {\n loadImage,\n preloadImages,\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const wasLocked = swiper.isLocked;\n\n swiper.isLocked = swiper.snapGrid.length === 1;\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n swiper.navigation.update();\n }\n}\n\nvar checkOverflow$1 = { checkOverflow };\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\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\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsInverse: false,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n centeredSlides: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\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: true,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // 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\n // Callbacks\n runCallbacksOnInit: true,\n};\n\n/* eslint no-param-reassign: \"off\" */\n\nconst prototypes = {\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper extends SwiperClass {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n\n super(params);\n\n Object.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n const swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((index, containerEl) => {\n const newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n const $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n\n // Extend Swiper\n Utils.extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n 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\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n } else if (Support.prefixedPointerEvents) {\n desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return 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',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n slidesPerViewDynamic() {\n const swiper = this;\n const {\n params, slides, slidesGrid, size: swiperSize, activeIndex,\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode) {\n setTranslate();\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 if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n\n swiper.$el\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection} wp8-${currentDirection}`)\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}wp8-${newDirection}`);\n }\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each((slideIndex, slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n\n return swiper;\n }\n\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\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 }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params, $el, $wrapperEl, slides,\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index')\n .removeAttr('data-swiper-column')\n .removeAttr('data-swiper-row');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static get Class() {\n return SwiperClass;\n }\n\n static get $() {\n return $;\n }\n}\n\nvar Device$1 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\n\nvar Support$1 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n\nvar Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\n\nvar Resize = {\n name: 'resize',\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy() {\n const swiper = this;\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n\nconst Observer = {\n func: window.MutationObserver || window.WebkitMutationObserver,\n attach(target, options = {}) {\n const swiper = this;\n\n const ObserverFunc = Observer.func;\n const observer = new ObserverFunc((mutations) => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const 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\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\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.observer.init();\n },\n destroy() {\n const swiper = this;\n swiper.observer.destroy();\n },\n },\n};\n\nconst Virtual = {\n update(force) {\n const swiper = this;\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n renderSlide,\n offset: previousOffset,\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\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 swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: (function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let 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 for (let 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 appendIndexes.forEach((index) => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach((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(slide, index) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n const $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index))\n : $(`${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(slides) {\n const swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let 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 swiper.virtual.update(true);\n },\n prependSlide(slides) {\n const swiper = this;\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cache[cachedIndex];\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide(slidesIndexes) {\n const swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\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 if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides() {\n const swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n};\n\nvar Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n },\n },\n};\n\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n const { rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40) || kc === 34)) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38) || kc === 33)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (kc === 33 || kc === 34 || kc === 37 || kc === 39 || kc === 38 || kc === 40)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth\n && point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (kc === 33 || kc === 34 || kc === 37 || kc === 39) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (((kc === 34 || kc === 39) && !rtl) || ((kc === 33 || kc === 37) && rtl)) swiper.slideNext();\n if (((kc === 33 || kc === 37) && !rtl) || ((kc === 34 || kc === 39) && rtl)) swiper.slidePrev();\n } else {\n if (kc === 33 || kc === 34 || kc === 38 || kc === 40) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (kc === 34 || kc === 40) swiper.slideNext();\n if (kc === 33 || kc === 38) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable() {\n const swiper = this;\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nvar Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n\nfunction isEventSupported() {\n const eventName = 'onwheel';\n let isSupported = eventName in document;\n\n if (!isSupported) {\n const element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && document.implementation\n && document.implementation.hasFeature\n // 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 ) {\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}\nconst Mousewheel = {\n lastScrollTime: Utils.now(),\n event: (function getEvent() {\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n }()),\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\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 if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\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() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n\n if (!swiper.mouseEntered && !params.releaseOnEdges) return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const 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;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = data.pixelY;\n 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\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) {\n if (delta < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) return true;\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) return true;\n }\n swiper.mousewheel.lastScrollTime = (new window.Date()).getTime();\n } else {\n // Freemode or scrollContainer:\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + (delta * params.sensitivity);\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\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 clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n swiper.slideToClosest();\n }, 300);\n }\n // Emit event\n swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n enable() {\n const swiper = this;\n if (!Mousewheel.event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n if (!Mousewheel.event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nvar Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n lastScrollTime: Utils.now(),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy() {\n const swiper = this;\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\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 $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\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 $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\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 if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nvar Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n fromEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n destroy() {\n const swiper = this;\n swiper.navigation.destroy();\n },\n click(e) {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick\n && !$(e.target).is($prevEl)\n && !$(e.target).is($nextEl)\n ) {\n let isHidden;\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 if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n};\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\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 }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n 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 if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\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 firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n if ($el.length > 1) {\n bullets.each((index, bullet) => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\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 if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">${params.bulletElement}>`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\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 }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n && swiper.$el.find(params.el).length === 1\n ) {\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 if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\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 let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass}`);\n }\n },\n};\n\nvar Pagination$1 = {\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', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // 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', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy() {\n const swiper = this;\n swiper.pagination.destroy();\n },\n click(e) {\n const swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n const isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\n const {\n dragSize, trackSize, $dragEl, $el,\n } = scrollbar;\n const params = swiper.params.scrollbar;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n if (Support.transforms3d) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n } else {\n $dragEl.transform(`translateX(${newPos}px)`);\n }\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n if (Support.transforms3d) {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n } else {\n $dragEl.transform(`translateY(${newPos}px)`);\n }\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { $dragEl, $el } = scrollbar;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\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 if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition(e) {\n const swiper = this;\n if (swiper.isHorizontal()) {\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX);\n }\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY);\n },\n setDragPosition(e) {\n const swiper = this;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const {\n $el,\n dragSize,\n trackSize,\n dragStartPos,\n } = scrollbar;\n\n let positionRatio;\n positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top']\n - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)\n ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();\n 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(e) {\n const swiper = this;\n\n const params = swiper.params.scrollbar;\n const { scrollbar } = swiper;\n const { $el } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\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() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\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() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const { scrollbar, $el: $swiperEl } = swiper;\n const params = swiper.params.scrollbar;\n\n let $el = $(params.el);\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 let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = $(``);\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nvar Scrollbar$1 = {\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() {\n const swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate() {\n const swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n};\n\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const { rtl } = swiper;\n\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const 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 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 const currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n },\n setTranslate() {\n const swiper = this;\n const {\n $el, slides, progress, snapGrid,\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideIndex, slideEl) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\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]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition(duration = this.params.speed) {\n const swiper = this;\n const { $el } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, parallaxEl) => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n },\n};\n\nvar Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n },\n },\n};\n\nconst Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2));\n return distance;\n },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest('.swiper-slide');\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n gesture.$imageEl.transition(0);\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5);\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5);\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\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(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (Device.android) 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(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\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 = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.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 if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\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\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 (\n swiper.isHorizontal()\n && (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } if (\n !swiper.isHorizontal()\n && (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n e.preventDefault();\n e.stopPropagation();\n\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) - (((image.minX - image.currentX) + 1) ** 0.8);\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (((image.currentX - image.maxX) + 1) ** 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (((image.minY - image.currentY) + 1) ** 0.8);\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8);\n }\n\n // Velocity\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\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\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 const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const 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\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const 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(e) {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture, image } = zoom;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let 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 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\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\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\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\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() {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture } = zoom;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\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 // Attach/Detach Events\n enable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove);\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n\n swiper.zoom.enabled = false;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove);\n },\n};\n\nvar Zoom$1 = {\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() {\n const swiper = this;\n const zoom = {\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 };\n\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom,\n });\n\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n const slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.zoom.disable();\n },\n touchStart(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(e) {\n const swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n\nconst Lazy = {\n loadInSlide(index, loadInDuplicate = true) {\n const swiper = this;\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n const $slideEl = isVirtual\n ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`)\n : swiper.slides.eq(index);\n\n let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) return;\n\n $images.each((imageIndex, imageEl) => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return;\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 if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\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 if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const {\n $wrapperEl, params: swiperParams, slides, activeIndex,\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n\n let slidesPerView = swiperParams.slidesPerView;\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 return false;\n }\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let 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 if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n};\n\nvar Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll() {\n const swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart() {\n const swiper = this;\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() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n },\n};\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nconst Controller = {\n LinearSpline: function LinearSpline(x, y) {\n const binarySearch = (function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // 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 let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\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 const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // 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 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 c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let 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(duration, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\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};\nvar Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(translate, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n\nconst a11y = {\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\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 if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each((bulletIndex, bulletEl) => {\n const $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1));\n });\n }\n },\n init() {\n const swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n const params = swiper.params.a11y;\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\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() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\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};\nvar A11y = {\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 },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $(``),\n },\n });\n Object.keys(a11y).forEach((methodName) => {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n },\n },\n};\n\nconst History = {\n init() {\n const swiper = this;\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues() {\n const pathArray = window.location.pathname.slice(1).split('/').filter((part) => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return { key, value };\n },\n setHistory(key, index) {\n const swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n const slide = swiper.slides.eq(index);\n let value = History.slugify(slide.attr('data-history'));\n if (!window.location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({ value }, null, value);\n } else {\n window.history.pushState({ value }, null, value);\n }\n },\n slugify(text) {\n return text.toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n};\n\nvar History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n const 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() {\n const swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\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 } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return;\n swiper.hashNavigation.initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nvar HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n\n/* eslint no-underscore-dangle: \"off\" */\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = Utils.nextTick(() => {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n 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 swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n }, delay);\n },\n start() {\n const 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() {\n const 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 swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const 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 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};\n\nvar Autoplay$1 = {\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() {\n const swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== this) 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 if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n }\n },\n beforeTransitionStart(speed, internal) {\n const swiper = this;\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() {\n const swiper = this;\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 destroy() {\n const swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n },\n },\n};\n\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, $wrapperEl } = swiper;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const {\n $el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtlTranslate: rtl, size: swiperSize,\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\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 if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90);\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(``);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(``);\n $slideEl.append(shadowAfter);\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 $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 const shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n const multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const 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 const zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n },\n setTransition(duration) {\n const swiper = this;\n const { $el, slides } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nvar EffectCube = {\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() {\n const swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const 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 Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const { slides, rtlTranslate: rtl } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset;\n let ty = 0;\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 let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(``);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(``);\n $slideEl.append(shadowAfter);\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 $slideEl\n .transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, activeIndex, $wrapperEl } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const {\n width: swiperWidth, height: swiperHeight, slides, $wrapperEl, slidesSizesGrid,\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let translateY = isHorizontal ? 0 : params.stretch * (offsetMultiplier);\n let translateX = isHorizontal ? params.stretch * (offsetMultiplier) : 0;\n\n // Fix for ultra small values\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\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(``);\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(``);\n $slideEl.append($shadowAfterEl);\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 // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n const ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = `${center}px 50%`;\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n};\n\nvar EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n\nconst Thumbs = {\n init() {\n const swiper = this;\n const { thumbs: thumbsParams } = swiper.params;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update(initial) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;\n else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;\n else newThumbsIndex = prevThumbsIndex;\n } else {\n newThumbsIndex = swiper.realIndex;\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 thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n },\n};\nvar Thumbs$1 = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition(duration) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n};\n\n// Swiper Class\n\nconst components = [\n Device$1,\n Support$1,\n Browser$1,\n Resize,\n Observer$1,\n Virtual$1,\n Keyboard$1,\n Mousewheel$1,\n Navigation$1,\n Pagination$1,\n Scrollbar$1,\n Parallax$1,\n Zoom$1,\n Lazy$1,\n Controller$1,\n A11y,\n History$1,\n HashNavigation$1,\n Autoplay$1,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow,\n Thumbs$1\n];\n\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\n\nSwiper.use(components);\n\nexport default Swiper;\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","module.exports = __webpack_public_path__ + \"img/img_04.be4d2a6b.jpg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"section-swiper\",style:(_vm.swiperBg(_vm.data.swiper.bg))},[_c('swiper',{ref:\"swiper\",staticClass:\"swiper\",attrs:{\"options\":_vm.swiperOption}},[_vm._l((_vm.data.swiper.item),function(item){return _c('swiper-slide',{key:item.id,staticClass:\"swiper-item\"},[_c('img',{attrs:{\"src\":require((\"@/\" + _vm.imgpath + \"/\" + _vm.swiperPath + \"/\" + item))}})])}),_c('div',{staticClass:\"swiper-pagination\",attrs:{\"slot\":\"pagination\"},slot:\"pagination\"})],2),_c('div',{staticClass:\"swiper-button-prev\",style:(_vm.swiperArrow(_vm.data.swiper.arrow)),attrs:{\"slot\":\"button-prev\"},slot:\"button-prev\"}),_c('div',{staticClass:\"swiper-button-next\",style:(_vm.swiperArrow(_vm.data.swiper.arrow)),attrs:{\"slot\":\"button-next\"},slot:\"button-next\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=55059602&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=55059602&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"55059602\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=099cfd02&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=099cfd02&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/img_12.729b136e.jpg\";","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('loading'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction LoadingIcon(h, props) {\n if (props.type === 'spinner') {\n var Spin = [];\n\n for (var i = 0; i < 12; i++) {\n Spin.push(h(\"i\"));\n }\n\n return Spin;\n }\n\n return h(\"svg\", {\n \"class\": bem('circular'),\n \"attrs\": {\n \"viewBox\": \"25 25 50 50\"\n }\n }, [h(\"circle\", {\n \"attrs\": {\n \"cx\": \"50\",\n \"cy\": \"50\",\n \"r\": \"20\",\n \"fill\": \"none\"\n }\n })]);\n}\n\nfunction LoadingText(h, props, slots) {\n if (slots.default) {\n var style = props.textSize && {\n fontSize: addUnit(props.textSize)\n };\n return h(\"span\", {\n \"class\": bem('text'),\n \"style\": style\n }, [slots.default()]);\n }\n}\n\nfunction Loading(h, props, slots, ctx) {\n var color = props.color,\n size = props.size,\n type = props.type;\n var style = {\n color: color\n };\n\n if (size) {\n var iconSize = addUnit(size);\n style.width = iconSize;\n style.height = iconSize;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem([type, {\n vertical: props.vertical\n }])\n }, inherit(ctx, true)]), [h(\"span\", {\n \"class\": bem('spinner', type),\n \"style\": style\n }, [LoadingIcon(h, props)]), LoadingText(h, props, slots)]);\n}\n\nLoading.props = {\n color: String,\n size: [Number, String],\n vertical: Boolean,\n textSize: [Number, String],\n type: {\n type: String,\n default: 'circular'\n }\n};\nexport default createComponent(Loading);","module.exports = __webpack_public_path__ + \"img/img_14.71837c3a.jpg\";","module.exports = __webpack_public_path__ + \"img/swiper_arrow.8d542654.png\";","module.exports = __webpack_public_path__ + \"img/img_09.a6cf4c2f.jpg\";","module.exports = __webpack_public_path__ + \"img/img_09.aff79cfd.jpg\";","module.exports = __webpack_public_path__ + \"img/img_04.93e804d3.jpg\";","module.exports = __webpack_public_path__ + \"img/img_05.0e3f71f2.jpg\";","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","export var context = {\n zIndex: 2000,\n lockCount: 0,\n stack: [],\n find: function find(vm) {\n return this.stack.filter(function (item) {\n return item.vm === vm;\n })[0];\n }\n};","import { isServer } from '..';\n// eslint-disable-next-line import/no-mutable-exports\nexport var supportsPassive = false;\n\nif (!isServer) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n // eslint-disable-next-line getter-return\n get: function get() {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n });\n window.addEventListener('test-passive', null, opts); // eslint-disable-next-line no-empty\n } catch (e) {}\n}\n\nexport function on(target, event, handler, passive) {\n if (passive === void 0) {\n passive = false;\n }\n\n if (!isServer) {\n target.addEventListener(event, handler, supportsPassive ? {\n capture: false,\n passive: passive\n } : false);\n }\n}\nexport function off(target, event, handler) {\n if (!isServer) {\n target.removeEventListener(event, handler);\n }\n}\nexport function stopPropagation(event) {\n event.stopPropagation();\n}\nexport function preventDefault(event, isStopPropagation) {\n /* istanbul ignore else */\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n\n if (isStopPropagation) {\n stopPropagation(event);\n }\n}","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, isDef, noop } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { preventDefault } from '../utils/dom/event'; // Types\n\nvar _createNamespace = createNamespace('overlay'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction preventTouchMove(event) {\n preventDefault(event, true);\n}\n\nfunction Overlay(h, props, slots, ctx) {\n var style = _extends({\n zIndex: props.zIndex\n }, props.customStyle);\n\n if (isDef(props.duration)) {\n style.animationDuration = props.duration + \"s\";\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", _mergeJSXProps([{\n \"directives\": [{\n name: \"show\",\n value: props.show\n }],\n \"style\": style,\n \"class\": [bem(), props.className],\n \"on\": {\n \"touchmove\": props.lockScroll ? preventTouchMove : noop\n }\n }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default()])]);\n}\n\nOverlay.props = {\n show: Boolean,\n zIndex: [Number, String],\n duration: [Number, String],\n className: null,\n customStyle: Object,\n lockScroll: {\n type: Boolean,\n default: true\n }\n};\nexport default createComponent(Overlay);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Overlay from '../../overlay';\nimport { context } from './context';\nimport { mount } from '../../utils/functional';\nimport { removeNode } from '../../utils/dom/node';\nvar defaultConfig = {\n className: '',\n customStyle: {}\n};\n\nfunction mountOverlay(vm) {\n return mount(Overlay, {\n on: {\n // close popup when overlay clicked & closeOnClickOverlay is true\n click: function click() {\n vm.$emit('click-overlay');\n\n if (vm.closeOnClickOverlay) {\n if (vm.onClickOverlay) {\n vm.onClickOverlay();\n } else {\n vm.close();\n }\n }\n }\n }\n });\n}\n\nexport function updateOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n var el = vm.$el;\n var config = item.config,\n overlay = item.overlay;\n\n if (el && el.parentNode) {\n el.parentNode.insertBefore(overlay.$el, el);\n }\n\n _extends(overlay, defaultConfig, config, {\n show: true\n });\n }\n}\nexport function openOverlay(vm, config) {\n var item = context.find(vm);\n\n if (item) {\n item.config = config;\n } else {\n var overlay = mountOverlay(vm);\n context.stack.push({\n vm: vm,\n config: config,\n overlay: overlay\n });\n }\n\n updateOverlay(vm);\n}\nexport function closeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n item.overlay.show = false;\n }\n}\nexport function removeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n removeNode(item.overlay.$el);\n }\n}","function isWindow(val) {\n return val === window;\n} // get nearest scroll element\n// http://w3help.org/zh-cn/causes/SD9013\n// http://stackoverflow.com/questions/17016740/onscroll-function-is-not-working-for-chrome\n\n\nvar overflowScrollReg = /scroll|auto/i;\nexport function getScroller(el, root) {\n if (root === void 0) {\n root = window;\n }\n\n var node = el;\n\n while (node && node.tagName !== 'HTML' && node.nodeType === 1 && node !== root) {\n var _window$getComputedSt = window.getComputedStyle(node),\n overflowY = _window$getComputedSt.overflowY;\n\n if (overflowScrollReg.test(overflowY)) {\n if (node.tagName !== 'BODY') {\n return node;\n } // see: https://github.com/youzan/vant/issues/3823\n\n\n var _window$getComputedSt2 = window.getComputedStyle(node.parentNode),\n htmlOverflowY = _window$getComputedSt2.overflowY;\n\n if (overflowScrollReg.test(htmlOverflowY)) {\n return node;\n }\n }\n\n node = node.parentNode;\n }\n\n return root;\n}\nexport function getScrollTop(el) {\n var top = 'scrollTop' in el ? el.scrollTop : el.pageYOffset; // iOS scroll bounce cause minus scrollTop\n\n return Math.max(top, 0);\n}\nexport function setScrollTop(el, value) {\n if ('scrollTop' in el) {\n el.scrollTop = value;\n } else {\n el.scrollTo(el.scrollX, value);\n }\n}\nexport function getRootScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n}\nexport function setRootScrollTop(value) {\n setScrollTop(window, value);\n setScrollTop(document.body, value);\n} // get distance from element top to page top or scroller top\n\nexport function getElementTop(el, scroller) {\n if (isWindow(el)) {\n return 0;\n }\n\n var scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();\n return el.getBoundingClientRect().top + scrollTop;\n}\nexport function getVisibleHeight(el) {\n if (isWindow(el)) {\n return el.innerHeight;\n }\n\n return el.getBoundingClientRect().height;\n}\nexport function getVisibleTop(el) {\n if (isWindow(el)) {\n return 0;\n }\n\n return el.getBoundingClientRect().top;\n}","import { on } from '../utils/dom/event';\nvar MIN_DISTANCE = 10;\n\nfunction getDirection(x, y) {\n if (x > y && x > MIN_DISTANCE) {\n return 'horizontal';\n }\n\n if (y > x && y > MIN_DISTANCE) {\n return 'vertical';\n }\n\n return '';\n}\n\nexport var TouchMixin = {\n data: function data() {\n return {\n direction: ''\n };\n },\n methods: {\n touchStart: function touchStart(event) {\n this.resetTouchStatus();\n this.startX = event.touches[0].clientX;\n this.startY = event.touches[0].clientY;\n },\n touchMove: function touchMove(event) {\n var touch = event.touches[0];\n this.deltaX = touch.clientX - this.startX;\n this.deltaY = touch.clientY - this.startY;\n this.offsetX = Math.abs(this.deltaX);\n this.offsetY = Math.abs(this.deltaY);\n this.direction = this.direction || getDirection(this.offsetX, this.offsetY);\n },\n resetTouchStatus: function resetTouchStatus() {\n this.direction = '';\n this.deltaX = 0;\n this.deltaY = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n },\n // avoid Vue 2.6 event bubble issues by manually binding events\n // https://github.com/youzan/vant/issues/3015\n bindTouchEvent: function bindTouchEvent(el) {\n var onTouchStart = this.onTouchStart,\n onTouchMove = this.onTouchMove,\n onTouchEnd = this.onTouchEnd;\n on(el, 'touchstart', onTouchStart);\n on(el, 'touchmove', onTouchMove);\n\n if (onTouchEnd) {\n on(el, 'touchend', onTouchEnd);\n on(el, 'touchcancel', onTouchEnd);\n }\n }\n }\n};","function getElement(selector) {\n if (typeof selector === 'string') {\n return document.querySelector(selector);\n }\n\n return selector();\n}\n\nexport function PortalMixin(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n ref = _ref.ref,\n afterPortal = _ref.afterPortal;\n\n return {\n props: {\n getContainer: [String, Function]\n },\n watch: {\n getContainer: 'portal'\n },\n mounted: function mounted() {\n if (this.getContainer) {\n this.portal();\n }\n },\n methods: {\n portal: function portal() {\n var getContainer = this.getContainer;\n var el = ref ? this.$refs[ref] : this.$el;\n var container;\n\n if (getContainer) {\n container = getElement(getContainer);\n } else if (this.$parent) {\n container = this.$parent.$el;\n }\n\n if (container && container !== el.parentNode) {\n container.appendChild(el);\n }\n\n if (afterPortal) {\n afterPortal.call(this);\n }\n }\n }\n };\n}","/**\n * Bind event when mounted or activated\n */\nimport { on, off } from '../utils/dom/event';\nvar uid = 0;\nexport function BindEventMixin(handler) {\n var key = \"binded_\" + uid++;\n\n function bind() {\n if (!this[key]) {\n handler.call(this, on, true);\n this[key] = true;\n }\n }\n\n function unbind() {\n if (this[key]) {\n handler.call(this, off, false);\n this[key] = false;\n }\n }\n\n return {\n mounted: bind,\n activated: bind,\n deactivated: unbind,\n beforeDestroy: unbind\n };\n}","import { on, off } from '../utils/dom/event';\nimport { BindEventMixin } from './bind-event';\nexport var CloseOnPopstateMixin = {\n mixins: [BindEventMixin(function (bind, isBind) {\n this.handlePopstate(isBind && this.closeOnPopstate);\n })],\n props: {\n closeOnPopstate: Boolean\n },\n data: function data() {\n return {\n bindStatus: false\n };\n },\n watch: {\n closeOnPopstate: function closeOnPopstate(val) {\n this.handlePopstate(val);\n }\n },\n methods: {\n handlePopstate: function handlePopstate(bind) {\n var _this = this;\n\n /* istanbul ignore if */\n if (this.$isServer) {\n return;\n }\n\n if (this.bindStatus !== bind) {\n this.bindStatus = bind;\n var action = bind ? on : off;\n action(window, 'popstate', function () {\n _this.close();\n\n _this.shouldReopen = false;\n });\n }\n }\n }\n};","// Context\nimport { context } from './context';\nimport { openOverlay, closeOverlay, updateOverlay, removeOverlay } from './overlay'; // Utils\n\nimport { on, off, preventDefault } from '../../utils/dom/event';\nimport { removeNode } from '../../utils/dom/node';\nimport { getScroller } from '../../utils/dom/scroll'; // Mixins\n\nimport { TouchMixin } from '../touch';\nimport { PortalMixin } from '../portal';\nimport { CloseOnPopstateMixin } from '../close-on-popstate';\nexport var popupMixinProps = {\n // whether to show popup\n value: Boolean,\n // whether to show overlay\n overlay: Boolean,\n // overlay custom style\n overlayStyle: Object,\n // overlay custom class name\n overlayClass: String,\n // whether to close popup when click overlay\n closeOnClickOverlay: Boolean,\n // z-index\n zIndex: [Number, String],\n // prevent body scroll\n lockScroll: {\n type: Boolean,\n default: true\n },\n // whether to lazy render\n lazyRender: {\n type: Boolean,\n default: true\n }\n};\nexport function PopupMixin(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n mixins: [TouchMixin, CloseOnPopstateMixin, PortalMixin({\n afterPortal: function afterPortal() {\n if (this.overlay) {\n updateOverlay();\n }\n }\n })],\n props: popupMixinProps,\n data: function data() {\n return {\n inited: this.value\n };\n },\n computed: {\n shouldRender: function shouldRender() {\n return this.inited || !this.lazyRender;\n }\n },\n watch: {\n value: function value(val) {\n var type = val ? 'open' : 'close';\n this.inited = this.inited || this.value;\n this[type]();\n\n if (!options.skipToggleEvent) {\n this.$emit(type);\n }\n },\n overlay: 'renderOverlay'\n },\n mounted: function mounted() {\n if (this.value) {\n this.open();\n }\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n if (this.shouldReopen) {\n this.$emit('input', true);\n this.shouldReopen = false;\n }\n },\n beforeDestroy: function beforeDestroy() {\n removeOverlay(this);\n\n if (this.opened) {\n this.removeLock();\n }\n\n if (this.getContainer) {\n removeNode(this.$el);\n }\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n if (this.value) {\n this.close();\n this.shouldReopen = true;\n }\n },\n methods: {\n open: function open() {\n /* istanbul ignore next */\n if (this.$isServer || this.opened) {\n return;\n } // cover default zIndex\n\n\n if (this.zIndex !== undefined) {\n context.zIndex = this.zIndex;\n }\n\n this.opened = true;\n this.renderOverlay();\n this.addLock();\n },\n addLock: function addLock() {\n if (this.lockScroll) {\n on(document, 'touchstart', this.touchStart);\n on(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.add('van-overflow-hidden');\n }\n\n context.lockCount++;\n }\n },\n removeLock: function removeLock() {\n if (this.lockScroll && context.lockCount) {\n context.lockCount--;\n off(document, 'touchstart', this.touchStart);\n off(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.remove('van-overflow-hidden');\n }\n }\n },\n close: function close() {\n if (!this.opened) {\n return;\n }\n\n closeOverlay(this);\n this.opened = false;\n this.removeLock();\n this.$emit('input', false);\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n var direction = this.deltaY > 0 ? '10' : '01';\n var el = getScroller(event.target, this.$el);\n var scrollHeight = el.scrollHeight,\n offsetHeight = el.offsetHeight,\n scrollTop = el.scrollTop;\n var status = '11';\n /* istanbul ignore next */\n\n if (scrollTop === 0) {\n status = offsetHeight >= scrollHeight ? '00' : '01';\n } else if (scrollTop + offsetHeight >= scrollHeight) {\n status = '10';\n }\n /* istanbul ignore next */\n\n\n if (status !== '11' && this.direction === 'vertical' && !(parseInt(status, 2) & parseInt(direction, 2))) {\n preventDefault(event, true);\n }\n },\n renderOverlay: function renderOverlay() {\n var _this = this;\n\n if (this.$isServer || !this.value) {\n return;\n }\n\n this.$nextTick(function () {\n _this.updateZIndex(_this.overlay ? 1 : 0);\n\n if (_this.overlay) {\n openOverlay(_this, {\n zIndex: context.zIndex++,\n duration: _this.duration,\n className: _this.overlayClass,\n customStyle: _this.overlayStyle\n });\n } else {\n closeOverlay(_this);\n }\n });\n },\n updateZIndex: function updateZIndex(value) {\n if (value === void 0) {\n value = 0;\n }\n\n this.$el.style.zIndex = ++context.zIndex + value;\n }\n }\n };\n}","module.exports = __webpack_public_path__ + \"img/img_13.8b28b432.jpg\";","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\n const routes = [\n {\n path: '/',\n name: 'Home',\n redirect: '/hanlin/poster_1'\n },\n {\n path: '/hanlin/:poster',\n name: 'Hanlin',\n component: () => import(/* webpackChunkName: \"hanlin\" */ '../views/Hanlin'),\n meta: {title: '和平翰林公馆', pathname: 'zhihu'}\n },\n {\n\t\tpath: '/404',\n\t\tcomponent: () => import(/* webpackChunkName: \"404\" */ '@/views/404'),\n },\n {\n\t\tpath: '/*',\n\t\tredirect: '/404',\n\t}\n]\n\nconst router = new VueRouter({\n routes\n})\n\nexport default router\n","module.exports = __webpack_public_path__ + \"img/img_10.c9fabaed.jpg\";","\n/*!\n * vue-awesome-swiper v4.1.1\n * Copyright (c) Surmon. All rights reserved.\n * Released under the MIT License.\n * Surmon \n */\n\n(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?f(exports,require('swiper'),require('vue')):typeof define==='function'&&define.amd?define(['exports','swiper','vue'],f):(g=g||self,f(g.VueAwesomeSwiper={},g.Swiper,g.Vue));}(this,(function(exports, SwiperClass, Vue){'use strict';SwiperClass=SwiperClass&&Object.prototype.hasOwnProperty.call(SwiperClass,'default')?SwiperClass['default']:SwiperClass;Vue=Vue&&Object.prototype.hasOwnProperty.call(Vue,'default')?Vue['default']:Vue;/**\r\n * @file vue-awesome-swiper\r\n * @module constants\r\n * @author Surmon \r\n */\r\nvar CoreNames;\r\n(function (CoreNames) {\r\n CoreNames[\"SwiperComponent\"] = \"Swiper\";\r\n CoreNames[\"SwiperSlideComponent\"] = \"SwiperSlide\";\r\n CoreNames[\"SwiperDirective\"] = \"swiper\";\r\n CoreNames[\"SwiperInstance\"] = \"$swiper\";\r\n})(CoreNames || (CoreNames = {}));\r\nvar DEFAULT_CLASSES = Object.freeze({\r\n containerClass: 'swiper-container',\r\n wrapperClass: 'swiper-wrapper',\r\n slideClass: 'swiper-slide'\r\n});\r\nvar ComponentEvents;\r\n(function (ComponentEvents) {\r\n ComponentEvents[\"Ready\"] = \"ready\";\r\n ComponentEvents[\"ClickSlide\"] = \"clickSlide\";\r\n})(ComponentEvents || (ComponentEvents = {}));\r\nvar ComponentPropNames;\r\n(function (ComponentPropNames) {\r\n ComponentPropNames[\"AutoUpdate\"] = \"autoUpdate\";\r\n ComponentPropNames[\"AutoDestroy\"] = \"autoDestroy\";\r\n ComponentPropNames[\"DeleteInstanceOnDestroy\"] = \"deleteInstanceOnDestroy\";\r\n ComponentPropNames[\"CleanupStylesOnDestroy\"] = \"cleanupStylesOnDestroy\";\r\n})(ComponentPropNames || (ComponentPropNames = {}));\r\n// https://swiperjs.com/api/#events\r\nvar SWIPER_EVENTS = [\r\n 'init',\r\n 'beforeDestroy',\r\n 'slideChange',\r\n 'slideChangeTransitionStart',\r\n 'slideChangeTransitionEnd',\r\n 'slideNextTransitionStart',\r\n 'slideNextTransitionEnd',\r\n 'slidePrevTransitionStart',\r\n 'slidePrevTransitionEnd',\r\n 'transitionStart',\r\n 'transitionEnd',\r\n 'touchStart',\r\n 'touchMove',\r\n 'touchMoveOpposite',\r\n 'sliderMove',\r\n 'touchEnd',\r\n 'click',\r\n 'tap',\r\n 'doubleTap',\r\n 'imagesReady',\r\n 'progress',\r\n 'reachBeginning',\r\n 'reachEnd',\r\n 'fromEdge',\r\n 'setTranslate',\r\n 'setTransition',\r\n 'resize',\r\n 'observerUpdate',\r\n 'beforeLoopFix',\r\n 'loopFix'\r\n];/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module utils\r\n * @author Surmon \r\n */\r\nvar kebabcase = function (string) {\r\n return string\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/\\s+/g, '-')\r\n .toLowerCase();\r\n};/**\r\n * @file vue-awesome-swiper\r\n * @module event\r\n * @author Surmon \r\n */\r\nvar handleClickSlideEvent = function (swiper, event, emit) {\r\n var _a, _b, _c;\r\n if (swiper && !(swiper.destroyed)) {\r\n var eventPath = ((_a = event.composedPath) === null || _a === void 0 ? void 0 : _a.call(event)) || event.path;\r\n if ((event === null || event === void 0 ? void 0 : event.target) && eventPath) {\r\n var slides_1 = Array.from(swiper.slides);\r\n var paths = Array.from(eventPath);\r\n // Click slide || slide[children]\r\n if (slides_1.includes(event.target) || paths.some(function (item) { return slides_1.includes(item); })) {\r\n var clickedIndex = swiper.clickedIndex;\r\n var reallyIndex = Number((_c = (_b = swiper.clickedSlide) === null || _b === void 0 ? void 0 : _b.dataset) === null || _c === void 0 ? void 0 : _c.swiperSlideIndex);\r\n var reallyIndexValue = Number.isInteger(reallyIndex) ? reallyIndex : null;\r\n emit(ComponentEvents.ClickSlide, clickedIndex, reallyIndexValue);\r\n emit(kebabcase(ComponentEvents.ClickSlide), clickedIndex, reallyIndexValue);\r\n }\r\n }\r\n }\r\n};\r\nvar bindSwiperEvents = function (swiper, emit) {\r\n SWIPER_EVENTS.forEach(function (eventName) {\r\n swiper.on(eventName, function () {\n var arguments$1 = arguments;\n\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments$1[_i];\r\n }\r\n emit.apply(void 0, __spreadArrays([eventName], args));\r\n var kebabcaseName = kebabcase(eventName);\r\n if (kebabcaseName !== eventName) {\r\n emit.apply(void 0, __spreadArrays([kebabcaseName], args));\r\n }\r\n });\r\n });\r\n};/**\r\n * @file vue-awesome-swiper\r\n * @module directive\r\n * @author Surmon \r\n */\r\nvar INSTANCE_NAME_KEY = 'instanceName';\r\nfunction getDirective(SwiperClass, globalOptions) {\r\n var getStandardisedOptionByAttrs = function (vnode, key) {\r\n var _a, _b, _c, _d;\r\n var value = (_b = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[key];\r\n return value !== undefined\r\n ? value\r\n : (_d = (_c = vnode.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d[kebabcase(key)];\r\n };\r\n // Get swiper instace name in directive\r\n var getSwiperInstanceName = function (element, binding, vnode) {\r\n return (binding.arg ||\r\n getStandardisedOptionByAttrs(vnode, INSTANCE_NAME_KEY) ||\r\n element.id ||\r\n CoreNames.SwiperInstance);\r\n };\r\n var getSwiperInstance = function (element, binding, vnode) {\r\n var instanceName = getSwiperInstanceName(element, binding, vnode);\r\n return vnode.context[instanceName] || null;\r\n };\r\n var getSwipeOptions = function (binding) {\r\n return binding.value || globalOptions;\r\n };\r\n var getBooleanValueByInput = function (input) {\r\n return [true, undefined, null, ''].includes(input);\r\n };\r\n // Emit event in Vue directive\r\n var getEventEmiter = function (vnode) {\r\n var _a, _b;\r\n var handlers = ((_a = vnode.data) === null || _a === void 0 ? void 0 : _a.on) || ((_b = vnode.componentOptions) === null || _b === void 0 ? void 0 : _b.listeners);\r\n return function (name) {\n var arguments$1 = arguments;\n\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments$1[_i];\r\n }\r\n var _a;\r\n var handle = (_a = handlers) === null || _a === void 0 ? void 0 : _a[name];\r\n if (handle) {\r\n handle.fns.apply(handle, args);\r\n }\r\n };\r\n };\r\n return {\r\n // Init\r\n bind: function (element, binding, vnode) {\r\n // auto class name\r\n if (element.className.indexOf(DEFAULT_CLASSES.containerClass) === -1) {\r\n element.className += ((element.className ? ' ' : '') + DEFAULT_CLASSES.containerClass);\r\n }\r\n // bind click event\r\n element.addEventListener('click', function (event) {\r\n var emitEvent = getEventEmiter(vnode);\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n handleClickSlideEvent(swiper, event, emitEvent);\r\n });\r\n },\r\n // DOM inserted\r\n inserted: function (element, binding, vnode) {\r\n var context = vnode.context;\r\n var swiperOptions = getSwipeOptions(binding);\r\n var instanceName = getSwiperInstanceName(element, binding, vnode);\r\n var emitEvent = getEventEmiter(vnode);\r\n var vueContext = context;\r\n var swiper = vueContext === null || vueContext === void 0 ? void 0 : vueContext[instanceName];\r\n // Swiper will destroy but not delete instance, when used \r\n if (!swiper || swiper.destroyed) {\r\n swiper = new SwiperClass(element, swiperOptions);\r\n vueContext[instanceName] = swiper;\r\n bindSwiperEvents(swiper, emitEvent);\r\n emitEvent(ComponentEvents.Ready, swiper);\r\n // MARK: Reinstance when the nexttick with \r\n // Vue.nextTick(instancing) | setTimeout(instancing)\r\n }\r\n },\r\n // On options changed or DOM updated\r\n componentUpdated: function (element, binding, vnode) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n var autoUpdate = getStandardisedOptionByAttrs(vnode, ComponentPropNames.AutoUpdate);\r\n if (getBooleanValueByInput(autoUpdate)) {\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n if (swiper) {\r\n var swiperOptions = getSwipeOptions(binding);\r\n var isLoop = swiperOptions.loop;\r\n if (isLoop) {\r\n (_b = (_a = swiper) === null || _a === void 0 ? void 0 : _a.loopDestroy) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n (_c = swiper === null || swiper === void 0 ? void 0 : swiper.update) === null || _c === void 0 ? void 0 : _c.call(swiper);\r\n (_e = (_d = swiper.navigation) === null || _d === void 0 ? void 0 : _d.update) === null || _e === void 0 ? void 0 : _e.call(_d);\r\n (_g = (_f = swiper.pagination) === null || _f === void 0 ? void 0 : _f.render) === null || _g === void 0 ? void 0 : _g.call(_f);\r\n (_j = (_h = swiper.pagination) === null || _h === void 0 ? void 0 : _h.update) === null || _j === void 0 ? void 0 : _j.call(_h);\r\n if (isLoop) {\r\n (_l = (_k = swiper) === null || _k === void 0 ? void 0 : _k.loopCreate) === null || _l === void 0 ? void 0 : _l.call(_k);\r\n (_m = swiper === null || swiper === void 0 ? void 0 : swiper.update) === null || _m === void 0 ? void 0 : _m.call(swiper);\r\n }\r\n }\r\n }\r\n },\r\n // Destroy this directive\r\n unbind: function (element, binding, vnode) {\r\n var _a;\r\n var autoDestroy = getStandardisedOptionByAttrs(vnode, ComponentPropNames.AutoDestroy);\r\n if (getBooleanValueByInput(autoDestroy)) {\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n if (swiper && swiper.initialized) {\r\n (_a = swiper === null || swiper === void 0 ? void 0 : swiper.destroy) === null || _a === void 0 ? void 0 : _a.call(swiper, getBooleanValueByInput(getStandardisedOptionByAttrs(vnode, ComponentPropNames.DeleteInstanceOnDestroy)), getBooleanValueByInput(getStandardisedOptionByAttrs(vnode, ComponentPropNames.CleanupStylesOnDestroy)));\r\n }\r\n }\r\n }\r\n };\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module SwiperComponent\r\n * @author Surmon \r\n */\r\nvar SlotNames;\r\n(function (SlotNames) {\r\n SlotNames[\"ParallaxBg\"] = \"parallax-bg\";\r\n SlotNames[\"Pagination\"] = \"pagination\";\r\n SlotNames[\"Scrollbar\"] = \"scrollbar\";\r\n SlotNames[\"PrevButton\"] = \"button-prev\";\r\n SlotNames[\"NextButton\"] = \"button-next\";\r\n})(SlotNames || (SlotNames = {}));\r\nfunction getSwiperComponent(SwiperClass) {\r\n var _a;\r\n return Vue.extend({\r\n name: CoreNames.SwiperComponent,\r\n props: (_a = {\r\n defaultOptions: {\r\n type: Object,\r\n required: false,\r\n default: function () { return ({}); }\r\n },\r\n // eslint-disable-next-line vue/require-default-prop\r\n options: {\r\n type: Object,\r\n required: false\r\n }\r\n },\r\n _a[ComponentPropNames.AutoUpdate] = {\r\n type: Boolean,\r\n default: true\r\n },\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/550/files\r\n _a[ComponentPropNames.AutoDestroy] = {\r\n type: Boolean,\r\n default: true\r\n },\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/388\r\n _a[ComponentPropNames.DeleteInstanceOnDestroy] = {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n _a[ComponentPropNames.CleanupStylesOnDestroy] = {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n _a),\r\n data: function () {\r\n var _a;\r\n return _a = {},\r\n _a[CoreNames.SwiperInstance] = null,\r\n _a;\r\n },\r\n computed: {\r\n swiperInstance: {\r\n cache: false,\r\n set: function (swiper) {\r\n this[CoreNames.SwiperInstance] = swiper;\r\n },\r\n get: function () {\r\n return this[CoreNames.SwiperInstance];\r\n }\r\n },\r\n swiperOptions: function () {\r\n return this.options || this.defaultOptions;\r\n },\r\n wrapperClass: function () {\r\n return this.swiperOptions.wrapperClass || DEFAULT_CLASSES.wrapperClass;\r\n }\r\n },\r\n methods: {\r\n // Feature: click event\r\n handleSwiperClick: function (event) {\r\n handleClickSlideEvent(this.swiperInstance, event, this.$emit.bind(this));\r\n },\r\n autoReLoopSwiper: function () {\r\n var _a, _b;\r\n if (this.swiperInstance && this.swiperOptions.loop) {\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/593\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/544\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/545/files\r\n var swiper = this.swiperInstance;\r\n (_a = swiper === null || swiper === void 0 ? void 0 : swiper.loopDestroy) === null || _a === void 0 ? void 0 : _a.call(swiper);\r\n (_b = swiper === null || swiper === void 0 ? void 0 : swiper.loopCreate) === null || _b === void 0 ? void 0 : _b.call(swiper);\r\n }\r\n },\r\n updateSwiper: function () {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n if (this[ComponentPropNames.AutoUpdate] && this.swiperInstance) {\r\n this.autoReLoopSwiper();\r\n (_b = (_a = this.swiperInstance) === null || _a === void 0 ? void 0 : _a.update) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n (_d = (_c = this.swiperInstance.navigation) === null || _c === void 0 ? void 0 : _c.update) === null || _d === void 0 ? void 0 : _d.call(_c);\r\n (_f = (_e = this.swiperInstance.pagination) === null || _e === void 0 ? void 0 : _e.render) === null || _f === void 0 ? void 0 : _f.call(_e);\r\n (_h = (_g = this.swiperInstance.pagination) === null || _g === void 0 ? void 0 : _g.update) === null || _h === void 0 ? void 0 : _h.call(_g);\r\n }\r\n },\r\n destroySwiper: function () {\r\n var _a, _b;\r\n if (this[ComponentPropNames.AutoDestroy] && this.swiperInstance) {\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/341\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/340\r\n if (this.swiperInstance.initialized) {\r\n (_b = (_a = this.swiperInstance) === null || _a === void 0 ? void 0 : _a.destroy) === null || _b === void 0 ? void 0 : _b.call(_a, this[ComponentPropNames.DeleteInstanceOnDestroy], this[ComponentPropNames.CleanupStylesOnDestroy]);\r\n }\r\n }\r\n },\r\n initSwiper: function () {\r\n this.swiperInstance = new SwiperClass(this.$el, this.swiperOptions);\r\n bindSwiperEvents(this.swiperInstance, this.$emit.bind(this));\r\n this.$emit(ComponentEvents.Ready, this.swiperInstance);\r\n }\r\n },\r\n mounted: function () {\r\n if (!this.swiperInstance) {\r\n this.initSwiper();\r\n }\r\n },\r\n // Update swiper when the parent component activated with `keep-alive`.\r\n activated: function () {\r\n this.updateSwiper();\r\n },\r\n updated: function () {\r\n this.updateSwiper();\r\n },\r\n beforeDestroy: function () {\r\n // https://github.com/surmon-china/vue-awesome-swiper/commit/2924a9d4d3d1cf51c0d46076410b1f804b2b8a43#diff-7f4e0261ac562c0f354cb91a1ca8864f\r\n this.$nextTick(this.destroySwiper);\r\n },\r\n render: function (createElement) {\r\n return createElement('div', {\r\n staticClass: DEFAULT_CLASSES.containerClass,\r\n on: {\r\n click: this.handleSwiperClick\r\n }\r\n }, [\r\n this.$slots[SlotNames.ParallaxBg],\r\n createElement('div', {\r\n class: this.wrapperClass\r\n }, this.$slots.default),\r\n this.$slots[SlotNames.Pagination],\r\n this.$slots[SlotNames.PrevButton],\r\n this.$slots[SlotNames.NextButton],\r\n this.$slots[SlotNames.Scrollbar]\r\n ]);\r\n }\r\n });\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module SwiperSlideComponent\r\n * @author Surmon \r\n */\r\nvar SwiperSlideComponent = Vue.extend({\r\n name: CoreNames.SwiperSlideComponent,\r\n computed: {\r\n slideClass: function () {\r\n var _a, _b;\r\n return ((_b = (_a = this.$parent) === null || _a === void 0 ? void 0 : _a.swiperOptions) === null || _b === void 0 ? void 0 : _b.slideClass) || DEFAULT_CLASSES.slideClass;\r\n }\r\n },\r\n methods: {\r\n update: function () {\r\n var _a;\r\n var parent = this.$parent;\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/632\r\n if (parent[ComponentPropNames.AutoUpdate]) {\r\n (_a = parent === null || parent === void 0 ? void 0 : parent.swiperInstance) === null || _a === void 0 ? void 0 : _a.update();\r\n }\r\n }\r\n },\r\n mounted: function () {\r\n this.update();\r\n },\r\n updated: function () {\r\n this.update();\r\n },\r\n render: function (createElement) {\r\n return createElement('div', {\r\n class: this.slideClass\r\n }, this.$slots.default);\r\n }\r\n});/**\r\n * @file vue-awesome-swiper\r\n * @module exporter\r\n * @author Surmon \r\n */\r\nvar getInstaller = function (SwiperClass) {\r\n var install = function (Vue, globalOptions) {\r\n if (install.installed)\r\n { return; }\r\n var SwiperComponent = getSwiperComponent(SwiperClass);\r\n if (globalOptions) {\r\n SwiperComponent.options.props.defaultOptions.default = function () { return globalOptions; };\r\n }\r\n Vue.component(CoreNames.SwiperComponent, SwiperComponent);\r\n Vue.component(CoreNames.SwiperSlideComponent, SwiperSlideComponent);\r\n Vue.directive(CoreNames.SwiperDirective, getDirective(SwiperClass, globalOptions));\r\n install.installed = true;\r\n };\r\n return install;\r\n};\r\nfunction exporter(SwiperClass) {\r\n var _a;\r\n return _a = {\r\n version: '4.1.1',\r\n install: getInstaller(SwiperClass),\r\n directive: getDirective(SwiperClass)\r\n },\r\n _a[CoreNames.SwiperComponent] = getSwiperComponent(SwiperClass),\r\n _a[CoreNames.SwiperSlideComponent] = SwiperSlideComponent,\r\n _a;\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module default-export\r\n * @author Surmon \r\n */\r\nvar VueAwesomeSwiper = exporter(SwiperClass);\r\nvar version = VueAwesomeSwiper.version;\r\nvar install = VueAwesomeSwiper.install;\r\nvar directive = VueAwesomeSwiper.directive;\r\nvar Swiper = VueAwesomeSwiper.Swiper;\r\nvar SwiperSlide = VueAwesomeSwiper.SwiperSlide;exports.Swiper=Swiper;exports.SwiperSlide=SwiperSlide;exports.default=VueAwesomeSwiper;exports.directive=directive;exports.install=install;exports.version=version;Object.defineProperty(exports,'__esModule',{value:true});})));","module.exports = __webpack_public_path__ + \"img/img_03.95556f9f.jpg\";","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from '@/router/zhihu'\r\n\r\n//axios\r\nimport axios from 'axios';\r\nVue.prototype.$axios=axios;\r\n\r\n//md5\r\nimport md5 from 'js-md5'\r\nVue.prototype.$md5=md5;\r\n\r\nimport '@/style/index.scss';\r\n\r\nVue.config.productionTip = false\r\n\r\nnew Vue({\r\n router,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=cbf505b2&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=cbf505b2&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"section-tel\"},[_c('div',{staticClass:\"section-tel-item\"},[_c('label',[_vm._v(\"咨询热线:\")]),_vm._l((_vm.data.tel),function(tel,i){return _c('p',{key:tel.id,on:{\"click\":function($event){return _vm.callTelephone(tel)}}},[_vm._v(_vm._s(tel)),(i < _vm.data.tel.length - 1)?_c('span',[_vm._v(\"/\")]):_vm._e()])})],2),_c('div',{staticClass:\"section-tel-item\"},[_vm._v(\"(点击电话可拨打)\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// color\nexport var RED = '#ee0a24';\nexport var BLUE = '#1989fa';\nexport var GREEN = '#07c160';\nexport var WHITE = '#fff'; // border\n\nexport var BORDER = 'van-hairline';\nexport var BORDER_TOP = BORDER + \"--top\";\nexport var BORDER_LEFT = BORDER + \"--left\";\nexport var BORDER_BOTTOM = BORDER + \"--bottom\";\nexport var BORDER_SURROUND = BORDER + \"--surround\";\nexport var BORDER_TOP_BOTTOM = BORDER + \"--top-bottom\";\nexport var BORDER_UNSET_TOP_BOTTOM = BORDER + \"-unset--top-bottom\";","/**\n * Vue Router support\n */\nfunction isRedundantNavigation(err) {\n return err.name === 'NavigationDuplicated' || // compatible with vue-router@3.3\n err.message && err.message.indexOf('redundant navigation') !== -1;\n}\n\nexport function route(router, config) {\n var to = config.to,\n url = config.url,\n replace = config.replace;\n\n if (to && router) {\n var promise = router[replace ? 'replace' : 'push'](to);\n /* istanbul ignore else */\n\n if (promise && promise.catch) {\n promise.catch(function (err) {\n if (err && !isRedundantNavigation(err)) {\n throw err;\n }\n });\n }\n } else if (url) {\n replace ? location.replace(url) : location.href = url;\n }\n}\nexport function functionalRoute(context) {\n route(context.parent && context.parent.$router, context.props);\n}\nexport var routeProps = {\n url: String,\n replace: Boolean,\n to: [String, Object]\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { BORDER_SURROUND, WHITE } from '../utils/constant';\nimport { routeProps, functionalRoute } from '../utils/router'; // Components\n\nimport Icon from '../icon';\nimport Loading from '../loading'; // Types\n\nvar _createNamespace = createNamespace('button'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Button(h, props, slots, ctx) {\n var _ref;\n\n var tag = props.tag,\n icon = props.icon,\n type = props.type,\n color = props.color,\n plain = props.plain,\n disabled = props.disabled,\n loading = props.loading,\n hairline = props.hairline,\n loadingText = props.loadingText;\n var style = {};\n\n if (color) {\n style.color = plain ? color : WHITE;\n\n if (!plain) {\n // Use background instead of backgroundColor to make linear-gradient work\n style.background = color;\n } // hide border when color is linear-gradient\n\n\n if (color.indexOf('gradient') !== -1) {\n style.border = 0;\n } else {\n style.borderColor = color;\n }\n }\n\n function onClick(event) {\n if (!loading && !disabled) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n }\n }\n\n function onTouchstart(event) {\n emit(ctx, 'touchstart', event);\n }\n\n var classes = [bem([type, props.size, {\n plain: plain,\n loading: loading,\n disabled: disabled,\n hairline: hairline,\n block: props.block,\n round: props.round,\n square: props.square\n }]), (_ref = {}, _ref[BORDER_SURROUND] = hairline, _ref)];\n\n function Content() {\n var content = [];\n\n if (loading) {\n content.push(slots.loading ? slots.loading() : h(Loading, {\n \"class\": bem('loading'),\n \"attrs\": {\n \"size\": props.loadingSize,\n \"type\": props.loadingType,\n \"color\": \"currentColor\"\n }\n }));\n } else if (icon) {\n content.push(h(Icon, {\n \"attrs\": {\n \"name\": icon,\n \"classPrefix\": props.iconPrefix\n },\n \"class\": bem('icon')\n }));\n }\n\n var text;\n\n if (loading) {\n text = loadingText;\n } else {\n text = slots.default ? slots.default() : props.text;\n }\n\n if (text) {\n content.push(h(\"span\", {\n \"class\": bem('text')\n }, [text]));\n }\n\n return content;\n }\n\n return h(tag, _mergeJSXProps([{\n \"style\": style,\n \"class\": classes,\n \"attrs\": {\n \"type\": props.nativeType,\n \"disabled\": disabled\n },\n \"on\": {\n \"click\": onClick,\n \"touchstart\": onTouchstart\n }\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('content')\n }, [Content()])]);\n}\n\nButton.props = _extends({}, routeProps, {\n text: String,\n icon: String,\n color: String,\n block: Boolean,\n plain: Boolean,\n round: Boolean,\n square: Boolean,\n loading: Boolean,\n hairline: Boolean,\n disabled: Boolean,\n iconPrefix: String,\n nativeType: String,\n loadingText: String,\n loadingType: String,\n tag: {\n type: String,\n default: 'button'\n },\n type: {\n type: String,\n default: 'default'\n },\n size: {\n type: String,\n default: 'normal'\n },\n loadingSize: {\n type: String,\n default: '20px'\n }\n});\nexport default createComponent(Button);","function flattenVNodes(vnodes) {\n var result = [];\n\n function traverse(vnodes) {\n vnodes.forEach(function (vnode) {\n result.push(vnode);\n\n if (vnode.componentInstance) {\n traverse(vnode.componentInstance.$children.map(function (item) {\n return item.$vnode;\n }));\n }\n\n if (vnode.children) {\n traverse(vnode.children);\n }\n });\n }\n\n traverse(vnodes);\n return result;\n} // sort children instances by vnodes order\n\n\nexport function sortChildren(children, parent) {\n var componentOptions = parent.$vnode.componentOptions;\n\n if (!componentOptions || !componentOptions.children) {\n return;\n }\n\n var vnodes = flattenVNodes(componentOptions.children);\n children.sort(function (a, b) {\n return vnodes.indexOf(a.$vnode) - vnodes.indexOf(b.$vnode);\n });\n}","import { sortChildren } from '../utils/vnodes';\nexport function ChildrenMixin(_parent, options) {\n var _inject, _computed;\n\n if (options === void 0) {\n options = {};\n }\n\n var indexKey = options.indexKey || 'index';\n return {\n inject: (_inject = {}, _inject[_parent] = {\n default: null\n }, _inject),\n computed: (_computed = {\n parent: function parent() {\n if (this.disableBindRelation) {\n return null;\n }\n\n return this[_parent];\n }\n }, _computed[indexKey] = function () {\n this.bindRelation();\n\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n\n return null;\n }, _computed),\n watch: {\n disableBindRelation: function disableBindRelation(val) {\n if (!val) {\n this.bindRelation();\n }\n }\n },\n mounted: function mounted() {\n this.bindRelation();\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n if (this.parent) {\n this.parent.children = this.parent.children.filter(function (item) {\n return item !== _this;\n });\n }\n },\n methods: {\n bindRelation: function bindRelation() {\n if (!this.parent || this.parent.children.indexOf(this) !== -1) {\n return;\n }\n\n var children = [].concat(this.parent.children, [this]);\n sortChildren(children, this.parent);\n this.parent.children = children;\n }\n }\n };\n}\nexport function ParentMixin(parent) {\n return {\n provide: function provide() {\n var _ref;\n\n return _ref = {}, _ref[parent] = this, _ref;\n },\n data: function data() {\n return {\n children: []\n };\n }\n };\n}","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('goods-action'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanGoodsAction')],\n props: {\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem({\n unfit: !this.safeAreaInsetBottom\n })\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanDialog from './Dialog';\nimport { isServer } from '../utils';\nvar instance;\n\nfunction isInDocument(element) {\n return document.body.contains(element);\n}\n\nfunction initInstance() {\n if (instance) {\n instance.$destroy();\n }\n\n instance = new (Vue.extend(VanDialog))({\n el: document.createElement('div'),\n // avoid missing animation when first rendered\n propsData: {\n lazyRender: false\n }\n });\n instance.$on('input', function (value) {\n instance.value = value;\n });\n}\n\nfunction Dialog(options) {\n /* istanbul ignore if */\n if (isServer) {\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n if (!instance || !isInDocument(instance.$el)) {\n initInstance();\n }\n\n _extends(instance, Dialog.currentOptions, options, {\n resolve: resolve,\n reject: reject\n });\n });\n}\n\nDialog.defaultOptions = {\n value: true,\n title: '',\n width: '',\n theme: null,\n message: '',\n overlay: true,\n className: '',\n allowHtml: true,\n lockScroll: true,\n transition: 'van-dialog-bounce',\n beforeClose: null,\n overlayClass: '',\n overlayStyle: null,\n messageAlign: '',\n getContainer: 'body',\n cancelButtonText: '',\n cancelButtonColor: null,\n confirmButtonText: '',\n confirmButtonColor: null,\n showConfirmButton: true,\n showCancelButton: false,\n closeOnPopstate: true,\n closeOnClickOverlay: false,\n callback: function callback(action) {\n instance[action === 'confirm' ? 'resolve' : 'reject'](action);\n }\n};\nDialog.alert = Dialog;\n\nDialog.confirm = function (options) {\n return Dialog(_extends({\n showCancelButton: true\n }, options));\n};\n\nDialog.close = function () {\n if (instance) {\n instance.value = false;\n }\n};\n\nDialog.setDefaultOptions = function (options) {\n _extends(Dialog.currentOptions, options);\n};\n\nDialog.resetDefaultOptions = function () {\n Dialog.currentOptions = _extends({}, Dialog.defaultOptions);\n};\n\nDialog.resetDefaultOptions();\n\nDialog.install = function () {\n Vue.use(VanDialog);\n};\n\nDialog.Component = VanDialog;\nVue.prototype.$dialog = Dialog;\nexport default Dialog;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { route, routeProps } from '../utils/router';\nimport { ChildrenMixin } from '../mixins/relation';\nimport Button from '../button';\n\nvar _createNamespace = createNamespace('goods-action-button'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanGoodsAction')],\n props: _extends({}, routeProps, {\n type: String,\n text: String,\n icon: String,\n color: String,\n loading: Boolean,\n disabled: Boolean\n }),\n computed: {\n isFirst: function isFirst() {\n var prev = this.parent && this.parent.children[this.index - 1];\n return !prev || prev.$options.name !== this.$options.name;\n },\n isLast: function isLast() {\n var next = this.parent && this.parent.children[this.index + 1];\n return !next || next.$options.name !== this.$options.name;\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n route(this.$router, this);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(Button, {\n \"class\": bem([{\n first: this.isFirst,\n last: this.isLast\n }, this.type]),\n \"attrs\": {\n \"size\": \"large\",\n \"type\": this.type,\n \"icon\": this.icon,\n \"color\": this.color,\n \"loading\": this.loading,\n \"disabled\": this.disabled\n },\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots() || this.text]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { createNamespace, addUnit } from '../utils';\nimport { BORDER_TOP, BORDER_LEFT } from '../utils/constant';\nimport { PopupMixin } from '../mixins/popup';\nimport Button from '../button';\nimport GoodsAction from '../goods-action';\nimport GoodsActionButton from '../goods-action-button';\n\nvar _createNamespace = createNamespace('dialog'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n title: String,\n theme: String,\n width: [Number, String],\n message: String,\n className: null,\n callback: Function,\n beforeClose: Function,\n messageAlign: String,\n cancelButtonText: String,\n cancelButtonColor: String,\n confirmButtonText: String,\n confirmButtonColor: String,\n showCancelButton: Boolean,\n overlay: {\n type: Boolean,\n default: true\n },\n allowHtml: {\n type: Boolean,\n default: true\n },\n transition: {\n type: String,\n default: 'van-dialog-bounce'\n },\n showConfirmButton: {\n type: Boolean,\n default: true\n },\n closeOnPopstate: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n loading: {\n confirm: false,\n cancel: false\n }\n };\n },\n methods: {\n onClickOverlay: function onClickOverlay() {\n this.handleAction('overlay');\n },\n handleAction: function handleAction(action) {\n var _this = this;\n\n this.$emit(action); // show not trigger close event when hidden\n\n if (!this.value) {\n return;\n }\n\n if (this.beforeClose) {\n this.loading[action] = true;\n this.beforeClose(action, function (state) {\n if (state !== false && _this.loading[action]) {\n _this.onClose(action);\n }\n\n _this.loading.confirm = false;\n _this.loading.cancel = false;\n });\n } else {\n this.onClose(action);\n }\n },\n onClose: function onClose(action) {\n this.close();\n\n if (this.callback) {\n this.callback(action);\n }\n },\n onOpened: function onOpened() {\n this.$emit('opened');\n },\n onClosed: function onClosed() {\n this.$emit('closed');\n },\n genRoundButtons: function genRoundButtons() {\n var _this2 = this;\n\n var h = this.$createElement;\n return h(GoodsAction, {\n \"class\": bem('footer')\n }, [this.showCancelButton && h(GoodsActionButton, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"warning\",\n \"text\": this.cancelButtonText || t('cancel'),\n \"color\": this.cancelButtonColor,\n \"loading\": this.loading.cancel\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": function click() {\n _this2.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(GoodsActionButton, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"danger\",\n \"text\": this.confirmButtonText || t('confirm'),\n \"color\": this.confirmButtonColor,\n \"loading\": this.loading.confirm\n },\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": function click() {\n _this2.handleAction('confirm');\n }\n }\n })]);\n },\n genButtons: function genButtons() {\n var _this3 = this,\n _ref;\n\n var h = this.$createElement;\n var multiple = this.showCancelButton && this.showConfirmButton;\n return h(\"div\", {\n \"class\": [BORDER_TOP, bem('footer')]\n }, [this.showCancelButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.cancel,\n \"text\": this.cancelButtonText || t('cancel')\n },\n \"class\": bem('cancel'),\n \"style\": {\n color: this.cancelButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this3.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.confirm,\n \"text\": this.confirmButtonText || t('confirm')\n },\n \"class\": [bem('confirm'), (_ref = {}, _ref[BORDER_LEFT] = multiple, _ref)],\n \"style\": {\n color: this.confirmButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this3.handleAction('confirm');\n }\n }\n })]);\n },\n genContent: function genContent(hasTitle, messageSlot) {\n var h = this.$createElement;\n\n if (messageSlot) {\n return h(\"div\", {\n \"class\": bem('content')\n }, [messageSlot]);\n }\n\n var message = this.message,\n messageAlign = this.messageAlign;\n\n if (message) {\n var _bem, _domProps;\n\n var data = {\n class: bem('message', (_bem = {\n 'has-title': hasTitle\n }, _bem[messageAlign] = messageAlign, _bem)),\n domProps: (_domProps = {}, _domProps[this.allowHtml ? 'innerHTML' : 'textContent'] = message, _domProps)\n };\n return h(\"div\", {\n \"class\": bem('content')\n }, [h(\"div\", _mergeJSXProps([{}, data]))]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n var message = this.message;\n var messageSlot = this.slots();\n var title = this.slots('title') || this.title;\n var Title = title && h(\"div\", {\n \"class\": bem('header', {\n isolated: !message && !messageSlot\n })\n }, [title]);\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition\n },\n \"on\": {\n \"afterEnter\": this.onOpened,\n \"afterLeave\": this.onClosed\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"attrs\": {\n \"role\": \"dialog\",\n \"aria-labelledby\": this.title || message\n },\n \"class\": [bem([this.theme]), this.className],\n \"style\": {\n width: addUnit(this.width)\n }\n }, [Title, this.genContent(title, messageSlot), this.theme === 'round-button' ? this.genRoundButtons() : this.genButtons()])]);\n }\n});","\r\n\t\r\n\t\t\r\n\t\t\t咨询热线:\r\n\t\t\t{{ tel }}/\r\n\t\t\r\n\t\t(点击电话可拨打)\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=cbf505b2&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=cbf505b2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cbf505b2\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","module.exports = __webpack_public_path__ + \"img/img_15.95c4fa23.jpg\";","module.exports = __webpack_public_path__ + \"img/img_01.e76fd949.jpg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bottomer\"},[_c('p',{staticClass:\"smaller\"},[_vm._v(\" 和平翰林公馆\"),_c('br'),_vm._v(\"本项目销售许可证编号:津国土房售许字[2018]第0661号-001号(所有面积为建筑面积)\"),_c('br'),_vm._v(\"开发商:天津现代城开发有限公司\"),_c('br'),_vm._v(\"*本项目由中原集团管理有限公司设计并推广* \")]),_c('p',{staticClass:\"smaller\"},[_vm._v(\"粤ICP备11057016号-1\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=dbaa9728&scoped=true&\"\nvar script = {}\nimport style0 from \"./index.vue?vue&type=style&index=0&id=dbaa9728&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dbaa9728\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","module.exports = __webpack_public_path__ + \"img/img_16.843d874e.jpg\";","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","module.exports = __webpack_public_path__ + \"img/swiper_01.d9fc240f.jpg\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=23283ea8&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=23283ea8&lang=scss&scoped=true&\"","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","module.exports = __webpack_public_path__ + \"img/logo.f41fd92a.png\";","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n parameterLimit: 1000,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n\n for (var i = 0; i < parts.length; ++i) {\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder);\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder);\n val = options.decoder(part.slice(pos + 1), defaults.decoder);\n }\n if (has.call(obj, key)) {\n obj[key] = [].concat(obj[key]).concat(val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n var leaf = val;\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]') {\n obj = [];\n obj = obj.concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, opts) {\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;\n options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;\n options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","import Vue from 'vue';\nexport { createNamespace } from './create';\nexport { addUnit } from './format/unit';\nexport var inBrowser = typeof window !== 'undefined';\nexport var isServer = Vue.prototype.$isServer; // eslint-disable-next-line @typescript-eslint/no-empty-function\n\nexport function noop() {}\nexport function isDef(val) {\n return val !== undefined && val !== null;\n}\nexport function isFunction(val) {\n return typeof val === 'function';\n}\nexport function isObject(val) {\n return val !== null && typeof val === 'object';\n}\nexport function isPromise(val) {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n}\nexport function get(object, path) {\n var keys = path.split('.');\n var result = object;\n keys.forEach(function (key) {\n result = isDef(result[key]) ? result[key] : '';\n });\n return result;\n}","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\n const routes = [\n {\n path: '/',\n name: 'Home',\n redirect: '/hanlin/poster_1'\n },\n {\n path: '/hanlin/:poster',\n name: 'Hanlin',\n component: () => import(/* webpackChunkName: \"hanlin\" */ '../views/Hanlin'),\n meta: {title: '和平翰林公馆', pathname: 'centaline'}\n },\n {\n\t\tpath: '/404',\n\t\tcomponent: () => import(/* webpackChunkName: \"404\" */ '@/views/404'),\n },\n {\n\t\tpath: '/*',\n\t\tredirect: '/404',\n\t}\n]\n\nconst router = new VueRouter({\n routes\n})\n\nexport default router\n","module.exports = __webpack_public_path__ + \"img/404.a57b6f31.png\";","module.exports = __webpack_public_path__ + \"img/img_07.8391fff9.jpg\";","var map = {\n\t\"./assets/404_images/404.png\": \"a36b\",\n\t\"./assets/404_images/404_cloud.png\": \"26fc\",\n\t\"./assets/images/centaline/poster_1/img_01.jpg\": \"ee97\",\n\t\"./assets/images/centaline/poster_1/img_02.jpg\": \"b823\",\n\t\"./assets/images/centaline/poster_1/img_03.jpg\": \"76d9\",\n\t\"./assets/images/centaline/poster_1/img_04.jpg\": \"44d0\",\n\t\"./assets/images/centaline/poster_1/img_05.jpg\": \"64ec\",\n\t\"./assets/images/centaline/poster_1/img_06.jpg\": \"e183\",\n\t\"./assets/images/centaline/poster_1/img_07.jpg\": \"a6cd\",\n\t\"./assets/images/centaline/poster_1/img_08.jpg\": \"1e23\",\n\t\"./assets/images/centaline/poster_1/img_09.jpg\": \"5fdc\",\n\t\"./assets/images/centaline/poster_1/img_10.jpg\": \"eebe\",\n\t\"./assets/images/centaline/poster_1/img_11.jpg\": \"bc89\",\n\t\"./assets/images/centaline/poster_1/img_12.jpg\": \"b14c\",\n\t\"./assets/images/centaline/poster_1/img_13.jpg\": \"f661\",\n\t\"./assets/images/centaline/poster_1/img_14.jpg\": \"54b3\",\n\t\"./assets/images/centaline/poster_1/swiper_01.jpg\": \"9374\",\n\t\"./assets/images/centaline/poster_1/swiper_02.jpg\": \"ece4\",\n\t\"./assets/images/centaline/poster_1/swiper_03.jpg\": \"da38\",\n\t\"./assets/images/centaline/poster_1/swiper_04.jpg\": \"a9d2\",\n\t\"./assets/images/centaline/poster_1/swiper_arrow.png\": \"55ed\",\n\t\"./assets/images/centaline/poster_1/swiper_bg.png\": \"f476\",\n\t\"./assets/images/centaline/poster_2/bg.jpg\": \"b668\",\n\t\"./assets/images/centaline/poster_2/img_01.jpg\": \"8810\",\n\t\"./assets/images/centaline/poster_2/img_02.jpg\": \"0f24\",\n\t\"./assets/images/centaline/poster_2/img_03.jpg\": \"31a0\",\n\t\"./assets/images/centaline/poster_2/img_04.jpg\": \"60ab\",\n\t\"./assets/images/centaline/poster_2/img_05.jpg\": \"0e5f\",\n\t\"./assets/images/centaline/poster_2/img_06.jpg\": \"d87c\",\n\t\"./assets/images/centaline/poster_2/img_07.jpg\": \"07e7\",\n\t\"./assets/images/centaline/poster_2/img_08.jpg\": \"41ac\",\n\t\"./assets/images/centaline/poster_2/img_09.jpg\": \"56a2\",\n\t\"./assets/images/centaline/poster_2/img_10.jpg\": \"70a8\",\n\t\"./assets/images/centaline/poster_2/img_11.jpg\": \"db11\",\n\t\"./assets/images/centaline/poster_2/img_12.jpg\": \"5274\",\n\t\"./assets/images/centaline/poster_2/img_13.jpg\": \"68e3\",\n\t\"./assets/images/centaline/poster_2/img_14.jpg\": \"ea7e\",\n\t\"./assets/images/centaline/poster_2/img_15.jpg\": \"84ea\",\n\t\"./assets/images/centaline/poster_2/img_16.jpg\": \"8e78\",\n\t\"./assets/images/centaline/poster_2/img_17.jpg\": \"dfb3\",\n\t\"./assets/images/centaline/poster_2/img_18.jpg\": \"ca63\",\n\t\"./assets/images/logo.png\": \"9d64\",\n\t\"./components/Bottom\": \"882e\",\n\t\"./components/Bottom/\": \"882e\",\n\t\"./components/Bottom/index\": \"882e\",\n\t\"./components/Bottom/index.vue\": \"882e\",\n\t\"./components/SectionForm\": \"c204\",\n\t\"./components/SectionForm/\": \"c204\",\n\t\"./components/SectionForm/index\": \"c204\",\n\t\"./components/SectionForm/index.vue\": \"c204\",\n\t\"./components/SectionImg\": \"0b13\",\n\t\"./components/SectionImg/\": \"0b13\",\n\t\"./components/SectionImg/index\": \"0b13\",\n\t\"./components/SectionImg/index.vue\": \"0b13\",\n\t\"./components/SectionSwiper\": \"4642\",\n\t\"./components/SectionSwiper/\": \"4642\",\n\t\"./components/SectionSwiper/index\": \"4642\",\n\t\"./components/SectionSwiper/index.vue\": \"4642\",\n\t\"./components/SectionTel\": \"816a\",\n\t\"./components/SectionTel/\": \"816a\",\n\t\"./components/SectionTel/index\": \"816a\",\n\t\"./components/SectionTel/index.vue\": \"816a\",\n\t\"./pages/centaline/App\": \"3345\",\n\t\"./pages/centaline/App.vue\": \"3345\",\n\t\"./pages/centaline/main\": \"0c41\",\n\t\"./pages/centaline/main.js\": \"0c41\",\n\t\"./pages/zhihu/App\": \"dc55\",\n\t\"./pages/zhihu/App.vue\": \"dc55\",\n\t\"./pages/zhihu/main\": \"76dc\",\n\t\"./pages/zhihu/main.js\": \"76dc\",\n\t\"./poster/centaline/poster_1\": \"e5a9\",\n\t\"./poster/centaline/poster_1.js\": \"e5a9\",\n\t\"./poster/centaline/poster_2\": \"31bc\",\n\t\"./poster/centaline/poster_2.js\": \"31bc\",\n\t\"./router\": \"a18c\",\n\t\"./router/\": \"a18c\",\n\t\"./router/index\": \"a18c\",\n\t\"./router/index.js\": \"a18c\",\n\t\"./router/zhihu\": \"69f9\",\n\t\"./router/zhihu.js\": \"69f9\",\n\t\"./style/index.scss\": \"8e1f\",\n\t\"./style/reset.scss\": \"63bf\",\n\t\"./views/404\": \"dc75\",\n\t\"./views/404/\": \"dc75\",\n\t\"./views/404/index\": \"dc75\",\n\t\"./views/404/index.vue\": \"dc75\",\n\t\"./views/Hanlin\": \"1e78\",\n\t\"./views/Hanlin/\": \"1e78\",\n\t\"./views/Hanlin/index\": \"1e78\",\n\t\"./views/Hanlin/index.vue\": \"1e78\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"a8ec\";","module.exports = __webpack_public_path__ + \"img/swiper_04.deefd6ae.jpg\";","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('info'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Info(h, props, slots, ctx) {\n var dot = props.dot,\n info = props.info;\n var showInfo = isDef(info) && info !== '';\n\n if (!dot && !showInfo) {\n return;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n dot: dot\n })\n }, inherit(ctx, true)]), [dot ? '' : props.info]);\n}\n\nInfo.props = {\n dot: Boolean,\n info: [Number, String]\n};\nexport default createComponent(Info);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit, isDef } from '../utils';\nimport { inherit } from '../utils/functional'; // Components\n\nimport Info from '../info'; // Types\n\nvar _createNamespace = createNamespace('icon'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction isImage(name) {\n return name ? name.indexOf('/') !== -1 : false;\n} // compatible with legacy usage, should be removed in next major version\n\n\nvar LEGACY_MAP = {\n medel: 'medal',\n 'medel-o': 'medal-o'\n};\n\nfunction correctName(name) {\n return name && LEGACY_MAP[name] || name;\n}\n\nfunction Icon(h, props, slots, ctx) {\n var name = correctName(props.name);\n var imageIcon = isImage(name);\n return h(props.tag, _mergeJSXProps([{\n \"class\": [props.classPrefix, imageIcon ? '' : props.classPrefix + \"-\" + name],\n \"style\": {\n color: props.color,\n fontSize: addUnit(props.size)\n }\n }, inherit(ctx, true)]), [slots.default && slots.default(), imageIcon && h(\"img\", {\n \"class\": bem('image'),\n \"attrs\": {\n \"src\": name\n }\n }), h(Info, {\n \"attrs\": {\n \"dot\": props.dot,\n \"info\": isDef(props.badge) ? props.badge : props.info\n }\n })]);\n}\n\nIcon.props = {\n dot: Boolean,\n name: String,\n size: [Number, String],\n // @deprecated\n // should be removed in next major version\n info: [Number, String],\n badge: [Number, String],\n color: String,\n tag: {\n type: String,\n default: 'i'\n },\n classPrefix: {\n type: String,\n default: bem()\n }\n};\nexport default createComponent(Icon);","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","module.exports = __webpack_public_path__ + \"img/img_12.4aa6a258.jpg\";","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n 'default': 'RFC3986',\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return value;\n }\n },\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n","module.exports = __webpack_public_path__ + \"img/bg.a4609578.jpg\";","module.exports = __webpack_public_path__ + \"img/img_02.0d943428.jpg\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nvar inheritKey = ['ref', 'style', 'class', 'attrs', 'nativeOn', 'directives', 'staticClass', 'staticStyle'];\nvar mapInheritKey = {\n nativeOn: 'on'\n}; // inherit partial context, map nativeOn to on\n\nexport function inherit(context, inheritListeners) {\n var result = inheritKey.reduce(function (obj, key) {\n if (context.data[key]) {\n obj[mapInheritKey[key] || key] = context.data[key];\n }\n\n return obj;\n }, {});\n\n if (inheritListeners) {\n result.on = result.on || {};\n\n _extends(result.on, context.data.on);\n }\n\n return result;\n} // emit event\n\nexport function emit(context, eventName) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var listeners = context.listeners[eventName];\n\n if (listeners) {\n if (Array.isArray(listeners)) {\n listeners.forEach(function (listener) {\n listener.apply(void 0, args);\n });\n } else {\n listeners.apply(void 0, args);\n }\n }\n} // mount functional component\n\nexport function mount(Component, data) {\n var instance = new Vue({\n el: document.createElement('div'),\n props: Component.props,\n render: function render(h) {\n return h(Component, _extends({\n props: this.$props\n }, data));\n }\n });\n document.body.appendChild(instance.$el);\n return instance;\n}","module.exports = __webpack_public_path__ + \"img/img_11.076a717f.jpg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"section-form\",style:({ backgroundColor: _vm.data.form.bg, borderRadius: _vm.data.form.radius ? _vm.data.form.radius : 0 })},[_c('h2',[_vm._v(\"网上预约\")]),_c('div',{staticClass:\"input-wrap\"},[_c('label',{on:{\"click\":function($event){return _vm.$refs.name.focus()}}},[_c('span',[_vm._v(\"*\")]),_vm._v(\"姓名\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.name),expression:\"name\"}],ref:\"name\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.name=$event.target.value}}})]),_c('div',{staticClass:\"input-wrap\"},[_c('label',{on:{\"click\":function($event){return _vm.$refs.tel.focus()}}},[_c('span',[_vm._v(\"*\")]),_vm._v(\"电话\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.tel),expression:\"tel\"}],ref:\"tel\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.tel)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.tel=$event.target.value}}})]),_c('button',{ref:\"btn\",staticClass:\"btn\",style:({ backgroundColor: _vm.data.form.btnColor, boxShadow: (\"inset 0px 3px 0px \" + (_vm.data.form.btnShadowInsetColor) + \", 0px 3px 0px \" + (_vm.data.form.btnShadowOutsetColor) + \", 0px 6px 5px rgba(0, 0, 0, 0.5)\") }),on:{\"click\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_vm._v(\"立即提交\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var lockCount = 0;\nexport function lockClick(lock) {\n if (lock) {\n if (!lockCount) {\n document.body.classList.add('van-toast--unclickable');\n }\n\n lockCount++;\n } else {\n lockCount--;\n\n if (!lockCount) {\n document.body.classList.remove('van-toast--unclickable');\n }\n }\n}","// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { lockClick } from './lock-click'; // Mixins\n\nimport { PopupMixin } from '../mixins/popup'; // Components\n\nimport Icon from '../icon';\nimport Loading from '../loading';\n\nvar _createNamespace = createNamespace('toast'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n icon: String,\n className: null,\n iconPrefix: String,\n loadingType: String,\n forbidClick: Boolean,\n closeOnClick: Boolean,\n message: [Number, String],\n type: {\n type: String,\n default: 'text'\n },\n position: {\n type: String,\n default: 'middle'\n },\n transition: {\n type: String,\n default: 'van-fade'\n },\n lockScroll: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n clickable: false\n };\n },\n mounted: function mounted() {\n this.toggleClickable();\n },\n destroyed: function destroyed() {\n this.toggleClickable();\n },\n watch: {\n value: 'toggleClickable',\n forbidClick: 'toggleClickable'\n },\n methods: {\n onClick: function onClick() {\n if (this.closeOnClick) {\n this.close();\n }\n },\n toggleClickable: function toggleClickable() {\n var clickable = this.value && this.forbidClick;\n\n if (this.clickable !== clickable) {\n this.clickable = clickable;\n lockClick(clickable);\n }\n },\n\n /* istanbul ignore next */\n onAfterEnter: function onAfterEnter() {\n this.$emit('opened');\n\n if (this.onOpened) {\n this.onOpened();\n }\n },\n onAfterLeave: function onAfterLeave() {\n this.$emit('closed');\n },\n genIcon: function genIcon() {\n var h = this.$createElement;\n var icon = this.icon,\n type = this.type,\n iconPrefix = this.iconPrefix,\n loadingType = this.loadingType;\n var hasIcon = icon || type === 'success' || type === 'fail';\n\n if (hasIcon) {\n return h(Icon, {\n \"class\": bem('icon'),\n \"attrs\": {\n \"classPrefix\": iconPrefix,\n \"name\": icon || type\n }\n });\n }\n\n if (type === 'loading') {\n return h(Loading, {\n \"class\": bem('loading'),\n \"attrs\": {\n \"type\": loadingType\n }\n });\n }\n },\n genMessage: function genMessage() {\n var h = this.$createElement;\n var type = this.type,\n message = this.message;\n\n if (!isDef(message) || message === '') {\n return;\n }\n\n if (type === 'html') {\n return h(\"div\", {\n \"class\": bem('text'),\n \"domProps\": {\n \"innerHTML\": message\n }\n });\n }\n\n return h(\"div\", {\n \"class\": bem('text')\n }, [message]);\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition\n },\n \"on\": {\n \"afterEnter\": this.onAfterEnter,\n \"afterLeave\": this.onAfterLeave\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": [bem([this.position, (_ref = {}, _ref[this.type] = !this.icon, _ref)]), this.className],\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genIcon(), this.genMessage()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VueToast from './Toast';\nimport { isObject, isServer } from '../utils';\nimport { removeNode } from '../utils/dom/node';\nvar defaultOptions = {\n icon: '',\n type: 'text',\n // @deprecated\n mask: false,\n value: true,\n message: '',\n className: '',\n overlay: false,\n onClose: null,\n onOpened: null,\n duration: 2000,\n iconPrefix: undefined,\n position: 'middle',\n transition: 'van-fade',\n forbidClick: false,\n loadingType: undefined,\n getContainer: 'body',\n overlayStyle: null,\n closeOnClick: false,\n closeOnClickOverlay: false\n}; // default options of specific type\n\nvar defaultOptionsMap = {};\nvar queue = [];\nvar multiple = false;\n\nvar currentOptions = _extends({}, defaultOptions);\n\nfunction parseOptions(message) {\n if (isObject(message)) {\n return message;\n }\n\n return {\n message: message\n };\n}\n\nfunction isInDocument(element) {\n return document.body.contains(element);\n}\n\nfunction createInstance() {\n /* istanbul ignore if */\n if (isServer) {\n return {};\n }\n\n queue = queue.filter(function (item) {\n return isInDocument(item.$el);\n });\n\n if (!queue.length || multiple) {\n var toast = new (Vue.extend(VueToast))({\n el: document.createElement('div')\n });\n toast.$on('input', function (value) {\n toast.value = value;\n });\n queue.push(toast);\n }\n\n return queue[queue.length - 1];\n} // transform toast options to popup props\n\n\nfunction transformOptions(options) {\n return _extends({}, options, {\n overlay: options.mask || options.overlay,\n mask: undefined,\n duration: undefined\n });\n}\n\nfunction Toast(options) {\n if (options === void 0) {\n options = {};\n }\n\n var toast = createInstance(); // should add z-index if previous toast has not disappeared\n\n if (toast.value) {\n toast.updateZIndex();\n }\n\n options = parseOptions(options);\n options = _extends({}, currentOptions, defaultOptionsMap[options.type || currentOptions.type], options);\n\n options.clear = function () {\n toast.value = false;\n\n if (options.onClose) {\n options.onClose();\n }\n\n if (multiple && !isServer) {\n toast.$on('closed', function () {\n clearTimeout(toast.timer);\n queue = queue.filter(function (item) {\n return item !== toast;\n });\n removeNode(toast.$el);\n toast.$destroy();\n });\n }\n };\n\n _extends(toast, transformOptions(options));\n\n clearTimeout(toast.timer);\n\n if (options.duration > 0) {\n toast.timer = setTimeout(function () {\n toast.clear();\n }, options.duration);\n }\n\n return toast;\n}\n\nvar createMethod = function createMethod(type) {\n return function (options) {\n return Toast(_extends({\n type: type\n }, parseOptions(options)));\n };\n};\n\n['loading', 'success', 'fail'].forEach(function (method) {\n Toast[method] = createMethod(method);\n});\n\nToast.clear = function (all) {\n if (queue.length) {\n if (all) {\n queue.forEach(function (toast) {\n toast.clear();\n });\n queue = [];\n } else if (!multiple) {\n queue[0].clear();\n } else {\n queue.shift().clear();\n }\n }\n};\n\nToast.setDefaultOptions = function (type, options) {\n if (typeof type === 'string') {\n defaultOptionsMap[type] = options;\n } else {\n _extends(currentOptions, type);\n }\n};\n\nToast.resetDefaultOptions = function (type) {\n if (typeof type === 'string') {\n defaultOptionsMap[type] = null;\n } else {\n currentOptions = _extends({}, defaultOptions);\n defaultOptionsMap = {};\n }\n};\n\nToast.allowMultiple = function (value) {\n if (value === void 0) {\n value = true;\n }\n\n multiple = value;\n};\n\nToast.install = function () {\n Vue.use(VueToast);\n};\n\nVue.prototype.$toast = Toast;\nexport default Toast;","import { createNamespace, isDef } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('popup'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n round: Boolean,\n duration: [Number, String],\n closeable: Boolean,\n transition: String,\n safeAreaInsetBottom: Boolean,\n closeIcon: {\n type: String,\n default: 'cross'\n },\n closeIconPosition: {\n type: String,\n default: 'top-right'\n },\n position: {\n type: String,\n default: 'center'\n },\n overlay: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n }\n },\n beforeCreate: function beforeCreate() {\n var _this = this;\n\n var createEmitter = function createEmitter(eventName) {\n return function (event) {\n return _this.$emit(eventName, event);\n };\n };\n\n this.onClick = createEmitter('click');\n this.onOpened = createEmitter('opened');\n this.onClosed = createEmitter('closed');\n },\n render: function render() {\n var _bem;\n\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n var round = this.round,\n position = this.position,\n duration = this.duration;\n var isCenter = position === 'center';\n var transitionName = this.transition || (isCenter ? 'van-fade' : \"van-popup-slide-\" + position);\n var style = {};\n\n if (isDef(duration)) {\n var key = isCenter ? 'animationDuration' : 'transitionDuration';\n style[key] = duration + \"s\";\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": transitionName\n },\n \"on\": {\n \"afterEnter\": this.onOpened,\n \"afterLeave\": this.onClosed\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"style\": style,\n \"class\": bem((_bem = {\n round: round\n }, _bem[position] = position, _bem['safe-area-inset-bottom'] = this.safeAreaInsetBottom, _bem)),\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots(), this.closeable && h(Icon, {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\",\n \"name\": this.closeIcon\n },\n \"class\": bem('close-icon', this.closeIconPosition),\n \"on\": {\n \"click\": this.close\n }\n })])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit } from '../utils/functional'; // Mixins\n\nimport { popupMixinProps } from '../mixins/popup'; // Components\n\nimport Popup from '../popup'; // Types\n\nvar _createNamespace = createNamespace('notify'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Notify(h, props, slots, ctx) {\n var style = {\n color: props.color,\n background: props.background\n };\n return h(Popup, _mergeJSXProps([{\n \"attrs\": {\n \"value\": props.value,\n \"position\": \"top\",\n \"overlay\": false,\n \"duration\": 0.2,\n \"lockScroll\": false\n },\n \"style\": style,\n \"class\": [bem([props.type]), props.className]\n }, inherit(ctx, true)]), [(slots.default == null ? void 0 : slots.default()) || props.message]);\n}\n\nNotify.props = _extends({}, popupMixinProps, {\n color: String,\n message: [Number, String],\n duration: [Number, String],\n className: null,\n background: String,\n getContainer: [String, Function],\n type: {\n type: String,\n default: 'danger'\n }\n});\nexport default createComponent(Notify);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanNotify from './Notify';\nimport { isObject, isServer } from '../utils';\nimport { mount } from '../utils/functional';\nvar timer;\nvar instance;\n\nfunction parseOptions(message) {\n return isObject(message) ? message : {\n message: message\n };\n}\n\nfunction Notify(options) {\n /* istanbul ignore if */\n if (isServer) {\n return;\n }\n\n if (!instance) {\n instance = mount(VanNotify, {\n on: {\n click: function click(event) {\n if (instance.onClick) {\n instance.onClick(event);\n }\n },\n close: function close() {\n if (instance.onClose) {\n instance.onClose();\n }\n },\n opened: function opened() {\n if (instance.onOpened) {\n instance.onOpened();\n }\n }\n }\n });\n }\n\n options = _extends({}, Notify.currentOptions, parseOptions(options));\n\n _extends(instance, options);\n\n clearTimeout(timer);\n\n if (options.duration && options.duration > 0) {\n timer = setTimeout(Notify.clear, options.duration);\n }\n\n return instance;\n}\n\nfunction defaultOptions() {\n return {\n type: 'danger',\n value: true,\n message: '',\n color: undefined,\n background: undefined,\n duration: 3000,\n className: '',\n onClose: null,\n onClick: null,\n onOpened: null\n };\n}\n\nNotify.clear = function () {\n if (instance) {\n instance.value = false;\n }\n};\n\nNotify.currentOptions = defaultOptions();\n\nNotify.setDefaultOptions = function (options) {\n _extends(Notify.currentOptions, options);\n};\n\nNotify.resetDefaultOptions = function () {\n Notify.currentOptions = defaultOptions();\n};\n\nNotify.install = function () {\n Vue.use(VanNotify);\n};\n\nNotify.Component = VanNotify;\nVue.prototype.$notify = Notify;\nexport default Notify;","\r\n\t\r\n\t\t网上预约\r\n\t\t\r\n\t\t\t*姓名\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t*电话\r\n\t\t\t\r\n\t\t\r\n\t\t立即提交\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=8979313a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=8979313a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8979313a\",\n null\n \n)\n\nexport default component.exports","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=dbaa9728&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=dbaa9728&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=8979313a&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=8979313a&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/img_18.d44625b7.jpg\";","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n var obj;\n\n while (queue.length) {\n var item = queue.pop();\n obj = item.obj[item.prop];\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n\n return obj;\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if (typeof target === 'object') {\n if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (Array.isArray(target) && !Array.isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n if (target[i] && typeof target[i] === 'object') {\n target[i] = merge(target[i], item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str) {\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nvar encode = function encode(str) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = typeof str === 'string' ? str : String(str);\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n return compactQueue(queue);\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n","/**\n * bem helper\n * b() // 'button'\n * b('text') // 'button__text'\n * b({ disabled }) // 'button button--disabled'\n * b('text', { disabled }) // 'button__text button__text--disabled'\n * b(['disabled', 'primary']) // 'button button--disabled button--primary'\n */\nfunction gen(name, mods) {\n if (!mods) {\n return '';\n }\n\n if (typeof mods === 'string') {\n return \" \" + name + \"--\" + mods;\n }\n\n if (Array.isArray(mods)) {\n return mods.reduce(function (ret, item) {\n return ret + gen(name, item);\n }, '');\n }\n\n return Object.keys(mods).reduce(function (ret, key) {\n return ret + (mods[key] ? gen(name, key) : '');\n }, '');\n}\n\nexport function createBEM(name) {\n return function (el, mods) {\n if (el && typeof el !== 'string') {\n mods = el;\n el = '';\n }\n\n el = el ? name + \"__\" + el : name;\n return \"\" + el + gen(el, mods);\n };\n}","var camelizeRE = /-(\\w)/g;\nexport function camelize(str) {\n return str.replace(camelizeRE, function (_, c) {\n return c.toUpperCase();\n });\n}\nexport function padZero(num, targetLength) {\n if (targetLength === void 0) {\n targetLength = 2;\n }\n\n var str = num + '';\n\n while (str.length < targetLength) {\n str = '0' + str;\n }\n\n return str;\n}","/**\n * Use scopedSlots in Vue 2.6+\n * downgrade to slots in lower version\n */\nexport var SlotsMixin = {\n methods: {\n slots: function slots(name, props) {\n if (name === void 0) {\n name = 'default';\n }\n\n var $slots = this.$slots,\n $scopedSlots = this.$scopedSlots;\n var scopedSlot = $scopedSlots[name];\n\n if (scopedSlot) {\n return scopedSlot(props);\n }\n\n return $slots[name];\n }\n }\n};","/**\n * Create a basic component with common options\n */\nimport '../../locale';\nimport { isFunction } from '..';\nimport { camelize } from '../format/string';\nimport { SlotsMixin } from '../../mixins/slots';\nimport Vue from 'vue';\n\nfunction install(Vue) {\n var name = this.name;\n Vue.component(name, this);\n Vue.component(camelize(\"-\" + name), this);\n} // unify slots & scopedSlots\n\n\nexport function unifySlots(context) {\n // use data.scopedSlots in lower Vue version\n var scopedSlots = context.scopedSlots || context.data.scopedSlots || {};\n var slots = context.slots();\n Object.keys(slots).forEach(function (key) {\n if (!scopedSlots[key]) {\n scopedSlots[key] = function () {\n return slots[key];\n };\n }\n });\n return scopedSlots;\n} // should be removed after Vue 3\n\nfunction transformFunctionComponent(pure) {\n return {\n functional: true,\n props: pure.props,\n model: pure.model,\n render: function render(h, context) {\n return pure(h, context.props, unifySlots(context), context);\n }\n };\n}\n\nexport function createComponent(name) {\n return function (sfc) {\n if (isFunction(sfc)) {\n sfc = transformFunctionComponent(sfc);\n }\n\n if (!sfc.functional) {\n sfc.mixins = sfc.mixins || [];\n sfc.mixins.push(SlotsMixin);\n }\n\n sfc.name = name;\n sfc.install = install;\n return sfc;\n };\n}","import { isDef, isObject } from '.';\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction assignKey(to, from, key) {\n var val = from[key];\n\n if (!isDef(val)) {\n return;\n }\n\n if (!hasOwnProperty.call(to, key) || !isObject(val)) {\n to[key] = val;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n to[key] = deepAssign(Object(to[key]), from[key]);\n }\n}\n\nexport function deepAssign(to, from) {\n Object.keys(from).forEach(function (key) {\n assignKey(to, from, key);\n });\n return to;\n}","export default {\n name: '姓名',\n tel: '电话',\n save: '保存',\n confirm: '确认',\n cancel: '取消',\n delete: '删除',\n complete: '完成',\n loading: '加载中...',\n telEmpty: '请填写电话',\n nameEmpty: '请填写姓名',\n nameInvalid: '请输入正确的姓名',\n confirmDelete: '确定要删除吗',\n telInvalid: '请输入正确的手机号',\n vanCalendar: {\n end: '结束',\n start: '开始',\n title: '日期选择',\n confirm: '确定',\n startEnd: '开始/结束',\n weekdays: ['日', '一', '二', '三', '四', '五', '六'],\n monthTitle: function monthTitle(year, month) {\n return year + \"\\u5E74\" + month + \"\\u6708\";\n },\n rangePrompt: function rangePrompt(maxRange) {\n return \"\\u9009\\u62E9\\u5929\\u6570\\u4E0D\\u80FD\\u8D85\\u8FC7 \" + maxRange + \" \\u5929\";\n }\n },\n vanContactCard: {\n addText: '添加联系人'\n },\n vanContactList: {\n addText: '新建联系人'\n },\n vanPagination: {\n prev: '上一页',\n next: '下一页'\n },\n vanPullRefresh: {\n pulling: '下拉即可刷新...',\n loosing: '释放即可刷新...'\n },\n vanSubmitBar: {\n label: '合计:'\n },\n vanCoupon: {\n unlimited: '无使用门槛',\n discount: function discount(_discount) {\n return _discount + \"\\u6298\";\n },\n condition: function condition(_condition) {\n return \"\\u6EE1\" + _condition + \"\\u5143\\u53EF\\u7528\";\n }\n },\n vanCouponCell: {\n title: '优惠券',\n tips: '暂无可用',\n count: function count(_count) {\n return _count + \"\\u5F20\\u53EF\\u7528\";\n }\n },\n vanCouponList: {\n empty: '暂无优惠券',\n exchange: '兑换',\n close: '不使用优惠券',\n enable: '可用',\n disabled: '不可用',\n placeholder: '请输入优惠码'\n },\n vanAddressEdit: {\n area: '地区',\n postal: '邮政编码',\n areaEmpty: '请选择地区',\n addressEmpty: '请填写详细地址',\n postalEmpty: '邮政编码格式不正确',\n defaultAddress: '设为默认收货地址',\n telPlaceholder: '收货人手机号',\n namePlaceholder: '收货人姓名',\n areaPlaceholder: '选择省 / 市 / 区'\n },\n vanAddressEditDetail: {\n label: '详细地址',\n placeholder: '街道门牌、楼层房间号等信息'\n },\n vanAddressList: {\n add: '新增地址'\n }\n};","import Vue from 'vue';\nimport { deepAssign } from '../utils/deep-assign';\nimport defaultMessages from './lang/zh-CN';\nvar proto = Vue.prototype;\nvar defineReactive = Vue.util.defineReactive;\ndefineReactive(proto, '$vantLang', 'zh-CN');\ndefineReactive(proto, '$vantMessages', {\n 'zh-CN': defaultMessages\n});\nexport default {\n messages: function messages() {\n return proto.$vantMessages[proto.$vantLang];\n },\n use: function use(lang, messages) {\n var _this$add;\n\n proto.$vantLang = lang;\n this.add((_this$add = {}, _this$add[lang] = messages, _this$add));\n },\n add: function add(messages) {\n if (messages === void 0) {\n messages = {};\n }\n\n deepAssign(proto.$vantMessages, messages);\n }\n};","import { get, isFunction } from '..';\nimport { camelize } from '../format/string';\nimport locale from '../../locale';\nexport function createI18N(name) {\n var prefix = camelize(name) + '.';\n return function (path) {\n var messages = locale.messages();\n var message = get(messages, prefix + path) || get(messages, path);\n\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\n return isFunction(message) ? message.apply(void 0, args) : message;\n };\n}","import { createBEM } from './bem';\nimport { createComponent } from './component';\nimport { createI18N } from './i18n';\nexport function createNamespace(name) {\n name = 'van-' + name;\n return [createComponent(name), createBEM(name), createI18N(name)];\n}","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","module.exports = __webpack_public_path__ + \"img/img_06.61b28ba0.jpg\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=55059602&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=55059602&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/swiper_03.9c9aca3c.jpg\";","module.exports = __webpack_public_path__ + \"img/img_11.5680146e.jpg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view',{key:_vm.$route.path})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=56424459&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pic\"},[_c('img',{attrs:{\"src\":require(\"../../assets/404_images/404.png\"),\"alt\":\"\"}}),_c('h2',[_vm._v(\"哎呀...您访问的页面飞走了!\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=23283ea8&scoped=true&\"\nvar script = {}\nimport style0 from \"./index.vue?vue&type=style&index=0&id=23283ea8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"23283ea8\",\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/img_17.e36b8741.jpg\";","module.exports = __webpack_public_path__ + \"img/img_06.1c5454b9.jpg\";","const data = {\r\n\tpathname: 'centaline',\r\n\tfilename: 'poster_1',\r\n\tbgColor: '#f6f6f6',\r\n\tcolor: '#9d6252',\r\n\tposters: [\r\n\t\t{\r\n\t\t\timg: [{ logo: {position: 'right'}, pic: 'img_01.jpg' }, 'img_02.jpg']\r\n\t\t},\r\n\t\t{\r\n\t\t\ttel: ['022-6668 4866', '022-6668 4833']\r\n\t\t},\r\n\t\t{\r\n\t\t\tform: {}\r\n\t\t},\r\n\t\t{\r\n\t\t\timg: ['img_03.jpg', 'img_04.jpg', 'img_05.jpg', 'img_06.jpg', 'img_07.jpg', 'img_08.jpg', 'img_09.jpg', 'img_10.jpg', 'img_11.jpg', 'img_12.jpg', 'img_13.jpg']\r\n\t\t},\r\n\t\t{\r\n\t\t\tswiper: {}\r\n\t\t},\r\n\t\t{\r\n\t\t\ttel: ['022-6668 4833', '022-6668 4866']\r\n\t\t},\r\n\t\t{\r\n\t\t\tform: {}\r\n\t\t}\r\n\t]\r\n};\r\n\r\nexport default data;\r\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","module.exports = __webpack_public_path__ + \"img/img_14.3c9c6fb3.jpg\";","export function isNumeric(val) {\n return /^\\d+(\\.\\d+)?$/.test(val);\n}\nexport function isNaN(val) {\n if (Number.isNaN) {\n return Number.isNaN(val);\n } // eslint-disable-next-line no-self-compare\n\n\n return val !== val;\n}","import { isDef, inBrowser } from '..';\nimport { isNumeric } from '../validate/number';\nexport function addUnit(value) {\n if (!isDef(value)) {\n return undefined;\n }\n\n value = String(value);\n return isNumeric(value) ? value + \"px\" : value;\n} // cache\n\nvar rootFontSize;\n\nfunction getRootFontSize() {\n if (!rootFontSize) {\n var doc = document.documentElement;\n var fontSize = doc.style.fontSize || window.getComputedStyle(doc).fontSize;\n rootFontSize = parseFloat(fontSize);\n }\n\n return rootFontSize;\n}\n\nfunction convertRem(value) {\n value = value.replace(/rem/g, '');\n return +value * getRootFontSize();\n}\n\nfunction convertVw(value) {\n value = value.replace(/vw/g, '');\n return +value * window.innerWidth / 100;\n}\n\nexport function unitToPx(value) {\n if (typeof value === 'number') {\n return value;\n }\n\n if (inBrowser) {\n if (value.indexOf('rem') !== -1) {\n return convertRem(value);\n }\n\n if (value.indexOf('vw') !== -1) {\n return convertVw(value);\n }\n }\n\n return parseFloat(value);\n}","module.exports = __webpack_public_path__ + \"img/swiper_02.64e1a1bb.jpg\";","module.exports = __webpack_public_path__ + \"img/img_01.8abf90ca.jpg\";","module.exports = __webpack_public_path__ + \"img/img_10.f4f955ce.jpg\";","module.exports = __webpack_public_path__ + \"img/swiper_bg.1f457a33.png\";","module.exports = __webpack_public_path__ + \"img/img_13.934248cb.jpg\";"],"sourceRoot":""}
{{ tel }}/