{"version":3,"sources":["webpack:///./node_modules/nespresso-components/swiper/swiper.core.js","webpack:///node_modules/nespresso-components/swiper/Swiper.vue","webpack:///./node_modules/nespresso-components/swiper/Swiper.vue","webpack:///./node_modules/nespresso-components/swiper/Swiper.vue?9924"],"names":["$","div","ua","Swiper","container","params","this","defaults","direction","touchEventsTarget","initialSlide","speed","autoplay","autoplayDisableOnInteraction","autoplayStopOnLast","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","freeMode","freeModeMomentum","freeModeMomentumRatio","freeModeMomentumBounce","freeModeMomentumBounceRatio","freeModeMomentumVelocityRatio","freeModeSticky","freeModeMinimumVelocity","autoHeight","setWrapperSize","virtualTranslate","effect","coverflow","rotate","stretch","depth","modifier","slideShadows","flip","limitRotation","cube","shadow","shadowOffset","shadowScale","fade","crossFade","parallax","zoom","zoomMax","zoomMin","zoomToggle","scrollbar","scrollbarHide","scrollbarDraggable","scrollbarSnapOnRelease","keyboardControl","mousewheelControl","mousewheelReleaseOnEdges","mousewheelInvert","mousewheelForceToAxis","mousewheelSensitivity","mousewheelEventsTarged","hashnav","hashnavWatchState","history","replaceState","breakpoints","undefined","spaceBetween","slidesPerView","slidesPerColumn","slidesPerColumnFill","slidesPerGroup","centeredSlides","slidesOffsetBefore","slidesOffsetAfter","roundLengths","touchRatio","touchAngle","simulateTouch","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","onlyExternal","threshold","touchMoveStopPropagation","touchReleaseOnEdges","uniqueNavElements","pagination","paginationElement","paginationClickable","paginationHide","paginationBulletRender","paginationProgressRender","paginationFractionRender","paginationCustomRender","paginationType","resistance","resistanceRatio","nextButton","prevButton","watchSlidesProgress","watchSlidesVisibility","grabCursor","preventClicks","preventClicksPropagation","slideToClickedSlide","lazyLoading","lazyLoadingInPrevNext","lazyLoadingInPrevNextAmount","lazyLoadingOnTransitionStart","preloadImages","updateOnImagesReady","loop","loopAdditionalSlides","loopedSlides","control","controlInverse","controlBy","normalizeSlideIndex","allowSwipeToPrev","allowSwipeToNext","swipeHandler","noSwiping","noSwipingClass","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","bulletClass","bulletActiveClass","buttonDisabledClass","paginationCurrentClass","paginationTotalClass","paginationHiddenClass","paginationProgressbarClass","paginationClickableClass","paginationModifierClass","lazyLoadingClass","lazyStatusLoadingClass","lazyStatusLoadedClass","lazyPreloaderClass","notificationClass","preloaderClass","zoomContainerClass","observer","observeParents","a11y","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","runCallbacksOnInit","initialVirtualTranslate","originalParams","param","typeof_default","nodeType","window","document","Dom7","jQuery","deepParam","def","deepDef","s","classNames","Zepto","currentBreakpoint","getActiveBreakpoint","point","breakpoint","points","hasOwnProperty","push","sort","a","b","parseInt","i","length","innerWidth","setBreakpoint","breakPointsParams","needsReLoop","destroyLoop","reLoop","swipers","each","swiper","data","support","flexbox","indexOf","transforms3d","touch","wrapper","children","paginationContainer","find","addClass","isHorizontal","rtl","dir","toLowerCase","css","wrongRTL","device","android","join","translate","progress","velocity","lockSwipeToNext","unsetGrabCursor","lockSwipeToPrev","lockSwipes","unlockSwipeToNext","setGrabCursor","unlockSwipeToPrev","unlockSwipes","moving","style","cursor","imagesToLoad","imagesLoaded","loadImage","imgElement","src","srcset","sizes","checkForComplete","callback","image","onReady","complete","Image","onload","onerror","_onReady","update","emit","currentSrc","getAttribute","autoplayTimeoutId","autoplaying","autoplayPaused","startAutoplay","stopAutoplay","internal","clearTimeout","pauseAutoplay","transitionEnd","minTranslate","snapGrid","maxTranslate","updateAutoHeight","activeSlides","newHeight","Math","ceil","index","activeIndex","slides","eq","height","offsetHeight","updateContainerSize","width","clientWidth","clientHeight","size","updateSlidesSize","slidesGrid","slidesSizesGrid","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","parseFloat","replace","virtualSize","marginLeft","marginTop","marginRight","marginBottom","floor","max","newSlidesGrid","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","slide","-webkit-box-ordinal-group","-moz-box-ordinal-group","-ms-flex-order","-webkit-order","order","attr","outerWidth","outerHeight","round","swiperSlideSize","abs","updateSlidesOffset","swiperSlideOffset","offsetLeft","offsetTop","currentSlidesPerView","j","spv","breakLoop","updateSlidesProgress","offsetCenter","removeClass","slideProgress","slideBefore","slideAfter","updateProgress","translatesDiff","wasBeginning","isBeginning","wasEnd","isEnd","updateActiveIndex","newActiveIndex","snapIndex","previousIndex","updateClasses","updateRealIndex","realIndex","activeSlide","hasClass","nextSlide","next","prevSlide","prev","current","total","bullets","text","scale","scaleX","scaleY","transform","transition","html","disable","enable","updatePagination","paginationHTML","numberOfBullets","initPagination","updateTranslate","newTranslate","set","controller","spline","forceSetTranslate","slideTo","min","setWrapperTranslate","onResize","forceUpdatePagination","onBeforeResize","slideChangedBySlideTo","lazy","load","onAfterResize","touchEventsDesktop","start","move","end","navigator","pointerEnabled","msPointerEnabled","touchEvents","initEvents","detach","actionDom","action","target","moveCapture","nested","browser","ie","onTouchStart","onTouchMove","onTouchEnd","passiveListener","passive","capture","ios","onClickNext","onEnterKey","onClickPrev","onClickIndex","attachEvents","detachEvents","allowClick","e","preventDefault","animating","stopPropagation","stopImmediatePropagation","slideNext","slidePrev","updateClickedSlide","findElementInEvent","slideFound","clickedSlide","clickedIndex","slideToIndex","fixLoop","setTimeout","isTouched","isMoved","allowTouchCallbacks","touchStartTime","isScrolling","currentTranslate","startTranslate","allowThresholdMove","clickTimeout","allowMomentumBounce","isTouchEvent","startMoving","formElements","lastClickTime","Date","now","velocities","plugin","touches","startX","startY","currentX","currentY","diff","originalEvent","type","which","targetTouches","pageX","pageY","swipeDirection","is","activeElement","blur","preventedByNestedSwiper","atan2","PI","getWrapperTranslate","setWrapperTransition","trigger","disableParentSwiper","pow","position","time","getTime","currentPos","touchEndTime","timeDiff","toggleClass","lastMoveEvent","pop","velocityEvent","distance","momentumDuration","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","slideReset","onTransitionStart","onTransitionEnd","stopIndex","groupSize","ratio","_slideTo","slideIndex","runCallbacks","lteIE9","setHistory","setHash","clientLeft","_slideNext","_slidePrev","disableTouchControl","enableTouchControl","duration","byController","effects","setTransition","x","y","setTranslate","getTranslate","el","axis","matrix","curTransform","curStyle","transformMatrix","getComputedStyle","WebKitCSSMatrix","webkitTransform","split","map","MozTransform","OTransform","MsTransform","msTransform","getPropertyValue","toString","m41","m42","observers","initObservers","containerParents","parents","initObserver","childList","attributes","disconnectObservers","disconnect","createLoop","remove","prependSlides","appendSlides","append","cloneNode","prepend","removeAttr","updatePosition","oldIndex","newIndex","appendSlide","prependSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","tx","ty","slideOpacity","opacity","eventTriggered","triggerEvents","rotateY","rotateX","zIndex","shadowBefore","shadowAfter","cubeShadow","wrapperRotate","slideAngle","tz","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","transform-origin","shadowAngle","multiplier","sin","cos","scale1","scale2","offset","zFactor","isSafari","isUiWebView","center","offsetMultiplier","translateZ","translateY","translateX","slideTransform","perspectiveOrigin","_plugins","plugins","p","callPlugins","eventName","arguments","emitterEventListeners","on","handler","normalizeEventName","off","splice","once","_handler","init","enableDraggable","initialImageLoaded","enableKeyboardControl","enableMousewheelControl","hashnavReplaceState","cleanupStyles","track","drag","destroy","deleteInstance","disableDraggable","disableKeyboardControl","disableMousewheelControl","removeEventListener","setHistoryPopState","autoplayDelay","selector","found","_el","options","MutationObserver","WebkitMutationObserver","mutations","forEach","mutation","observe","characterData","toUpperCase","substring","prototype","userAgent","test","isArray","arr","Object","apply","ieTouch","msMaxTouchPoints","maxTouchPoints","createElement","innerHTML","getElementsByTagName","match","ipad","ipod","iphone","Modernizr","DocumentTouch","csstransforms3d","styles","supportsPassive","opts","defineProperty","get","addEventListener","gestures","domLib","context","els","tempParent","trim","toCreate","childNodes","querySelectorAll","getElementById","className","classes","classList","add","contains","toggle","attrs","value","setAttribute","attrName","removeAttribute","key","dom7ElementDataStorage","dataKey","elStyle","webkitTransitionDuration","MsTransitionDuration","msTransitionDuration","MozTransitionDuration","OTransitionDuration","transitionDuration","targetSelector","listener","handleLiveEvent","call","k","events","dom7LiveListeners","liveListener","dom","proxy","eventData","evt","CustomEvent","detail","bubbles","cancelable","createEvent","initEvent","dispatchEvent","fireCallBack","includeMargins","offsetWidth","innerHeight","box","getBoundingClientRect","body","clientTop","scrollTop","pageYOffset","scrollLeft","pageXOffset","top","left","props","prop","textContent","compareWith","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","child","previousSibling","returnIndex","newChild","tempDiv","firstChild","appendChild","insertBefore","before","parentNode","insertAfter","after","nextSibling","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","parent","unique","foundElements","removeChild","toAdd","fn","swiperDomPlugins","addLibraryPlugin","lib","firstInstance","swiper_core","Boolean","_this","nextTick","refineClasses","mount","_this2","overwritedOptions","__vue_styles__","__webpack_require__","Component","component_normalizer","swiper_Swiper","_vm","_h","$createElement","_c","_self","staticClass","id","_uid","_t","_v","ref","__webpack_exports__"],"mappings":"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","file":"js/1.f85986ef295fdb9a54de.js","sourcesContent":["/**\n * Swiper 3.4.2 - Custom Build\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n *\n * Included modules: effects\n *\n * http://www.idangero.us/swiper/\n *\n * Copyright 2017, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: June 23, 2017\n */\n(function () {\n 'use strict';\n var $;\n\n /*===========================\n Swiper\n ===========================*/\n var Swiper = function (container, params) {\n if (!(this instanceof Swiper)) return new Swiper(container, params);\n\n\n var defaults = {\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n // autoplay\n autoplay: false,\n autoplayDisableOnInteraction: true,\n autoplayStopOnLast: false,\n // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n iOSEdgeSwipeDetection: false,\n iOSEdgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n coverflow: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows : true\n },\n flip: {\n slideShadows : true,\n limitRotation: true\n },\n cube: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n },\n fade: {\n crossFade: false\n },\n // Parallax\n parallax: false,\n // Zoom\n zoom: false,\n zoomMax: 3,\n zoomMin: 1,\n zoomToggle: true,\n // Scrollbar\n scrollbar: null,\n scrollbarHide: true,\n scrollbarDraggable: false,\n scrollbarSnapOnRelease: false,\n // Keyboard Mousewheel\n keyboardControl: false,\n mousewheelControl: false,\n mousewheelReleaseOnEdges: false,\n mousewheelInvert: false,\n mousewheelForceToAxis: false,\n mousewheelSensitivity: 1,\n mousewheelEventsTarged: 'container',\n // Hash Navigation\n hashnav: false,\n hashnavWatchState: false,\n // History\n history: false,\n // Commong Nav State\n replaceState: false,\n // Breakpoints\n breakpoints: undefined,\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 // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n onlyExternal: false,\n threshold: 0,\n touchMoveStopPropagation: true,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Pagination\n pagination: null,\n paginationElement: 'span',\n paginationClickable: false,\n paginationHide: false,\n paginationBulletRender: null,\n paginationProgressRender: null,\n paginationFractionRender: null,\n paginationCustomRender: null,\n paginationType: 'bullets', // 'bullets' or 'progress' or 'fraction' or 'custom'\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Next/prev buttons\n nextButton: null,\n prevButton: null,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Lazy Loading\n lazyLoading: false,\n lazyLoadingInPrevNext: false,\n lazyLoadingInPrevNextAmount: 1,\n lazyLoadingOnTransitionStart: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n // Control\n control: undefined,\n controlInverse: false,\n controlBy: 'slide', //or 'container'\n normalizeSlideIndex: true,\n // Swiping/no swiping\n allowSwipeToPrev: true,\n allowSwipeToNext: true,\n swipeHandler: null, //'.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\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 bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n buttonDisabledClass: 'swiper-button-disabled',\n paginationCurrentClass: 'swiper-pagination-current',\n paginationTotalClass: 'swiper-pagination-total',\n paginationHiddenClass: 'swiper-pagination-hidden',\n paginationProgressbarClass: 'swiper-pagination-progressbar',\n paginationClickableClass: 'swiper-pagination-clickable', // NEW\n paginationModifierClass: 'swiper-pagination-', // NEW\n lazyLoadingClass: 'swiper-lazy',\n lazyStatusLoadingClass: 'swiper-lazy-loading',\n lazyStatusLoadedClass: 'swiper-lazy-loaded',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n notificationClass: 'swiper-notification',\n preloaderClass: 'preloader',\n zoomContainerClass: 'swiper-zoom-container',\n\n // Observer\n observer: false,\n observeParents: false,\n // Accessibility\n a11y: false,\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 // Callbacks\n runCallbacksOnInit: true\n /*\n Callbacks:\n onInit: function (swiper)\n onDestroy: function (swiper)\n onBeforeResize: function (swiper)\n onAfterResize: function (swiper)\n onClick: function (swiper, e)\n onTap: function (swiper, e)\n onDoubleTap: function (swiper, e)\n onSliderMove: function (swiper, e)\n onSlideChangeStart: function (swiper)\n onSlideChangeEnd: function (swiper)\n onTransitionStart: function (swiper)\n onTransitionEnd: function (swiper)\n onImagesReady: function (swiper)\n onProgress: function (swiper, progress)\n onTouchStart: function (swiper, e)\n onTouchMove: function (swiper, e)\n onTouchMoveOpposite: function (swiper, e)\n onTouchEnd: function (swiper, e)\n onReachBeginning: function (swiper)\n onReachEnd: function (swiper)\n onSetTransition: function (swiper, duration)\n onSetTranslate: function (swiper, translate)\n onAutoplayStart: function (swiper)\n onAutoplayStop: function (swiper),\n onLazyImageLoad: function (swiper, slide, image)\n onLazyImageReady: function (swiper, slide, image)\n onKeyPress: function (swiper, keyCode)\n */\n\n };\n var initialVirtualTranslate = params && params.virtualTranslate;\n\n params = params || {};\n var originalParams = {};\n for (var param in params) {\n if (typeof params[param] === 'object' && params[param] !== null && !(params[param].nodeType || params[param] === window || params[param] === document || (typeof Dom7 !== 'undefined' && params[param] instanceof Dom7) || (typeof jQuery !== 'undefined' && params[param] instanceof jQuery))) {\n originalParams[param] = {};\n for (var deepParam in params[param]) {\n originalParams[param][deepParam] = params[param][deepParam];\n }\n }\n else {\n originalParams[param] = params[param];\n }\n }\n for (var def in defaults) {\n if (typeof params[def] === 'undefined') {\n params[def] = defaults[def];\n }\n else if (typeof params[def] === 'object') {\n for (var deepDef in defaults[def]) {\n if (typeof params[def][deepDef] === 'undefined') {\n params[def][deepDef] = defaults[def][deepDef];\n }\n }\n }\n }\n\n // Swiper\n var s = this;\n\n // Params\n s.params = params;\n s.originalParams = originalParams;\n\n // Classname\n s.classNames = [];\n /*=========================\n Dom Library and plugins\n ===========================*/\n if (typeof $ !== 'undefined' && typeof Dom7 !== 'undefined'){\n $ = Dom7;\n }\n if (typeof $ === 'undefined') {\n if (typeof Dom7 === 'undefined') {\n $ = window.Dom7 || window.Zepto || window.jQuery;\n }\n else {\n $ = Dom7;\n }\n if (!$) return;\n }\n // Export it to Swiper instance\n s.$ = $;\n\n /*=========================\n Breakpoints\n ===========================*/\n s.currentBreakpoint = undefined;\n s.getActiveBreakpoint = function () {\n //Get breakpoint for window width\n if (!s.params.breakpoints) return false;\n var breakpoint = false;\n var points = [], point;\n for ( point in s.params.breakpoints ) {\n if (s.params.breakpoints.hasOwnProperty(point)) {\n points.push(point);\n }\n }\n points.sort(function (a, b) {\n return parseInt(a, 10) > parseInt(b, 10);\n });\n for (var i = 0; i < points.length; i++) {\n point = points[i];\n if (point >= window.innerWidth && !breakpoint) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n };\n s.setBreakpoint = function () {\n //Set breakpoint for window width and update parameters\n var breakpoint = s.getActiveBreakpoint();\n if (breakpoint && s.currentBreakpoint !== breakpoint) {\n var breakPointsParams = breakpoint in s.params.breakpoints ? s.params.breakpoints[breakpoint] : s.originalParams;\n var needsReLoop = s.params.loop && (breakPointsParams.slidesPerView !== s.params.slidesPerView);\n for ( var param in breakPointsParams ) {\n s.params[param] = breakPointsParams[param];\n }\n s.currentBreakpoint = breakpoint;\n if(needsReLoop && s.destroyLoop) {\n s.reLoop(true);\n }\n }\n };\n // Set breakpoint on load\n if (s.params.breakpoints) {\n s.setBreakpoint();\n }\n\n /*=========================\n Preparation - Define Container, Wrapper and Pagination\n ===========================*/\n s.container = $(container);\n if (s.container.length === 0) return;\n if (s.container.length > 1) {\n var swipers = [];\n s.container.each(function () {\n var container = this;\n swipers.push(new Swiper(this, params));\n });\n return swipers;\n }\n\n // Save instance in container HTML Element and in data\n s.container[0].swiper = s;\n s.container.data('swiper', s);\n\n s.classNames.push(s.params.containerModifierClass + s.params.direction);\n\n if (s.params.freeMode) {\n s.classNames.push(s.params.containerModifierClass + 'free-mode');\n }\n if (!s.support.flexbox) {\n s.classNames.push(s.params.containerModifierClass + 'no-flexbox');\n s.params.slidesPerColumn = 1;\n }\n if (s.params.autoHeight) {\n s.classNames.push(s.params.containerModifierClass + 'autoheight');\n }\n // Enable slides progress when required\n if (s.params.parallax || s.params.watchSlidesVisibility) {\n s.params.watchSlidesProgress = true;\n }\n // Max resistance when touchReleaseOnEdges\n if (s.params.touchReleaseOnEdges) {\n s.params.resistanceRatio = 0;\n }\n // Coverflow / 3D\n if (['cube', 'coverflow', 'flip'].indexOf(s.params.effect) >= 0) {\n if (s.support.transforms3d) {\n s.params.watchSlidesProgress = true;\n s.classNames.push(s.params.containerModifierClass + '3d');\n }\n else {\n s.params.effect = 'slide';\n }\n }\n if (s.params.effect !== 'slide') {\n s.classNames.push(s.params.containerModifierClass + s.params.effect);\n }\n if (s.params.effect === 'cube') {\n s.params.resistanceRatio = 0;\n s.params.slidesPerView = 1;\n s.params.slidesPerColumn = 1;\n s.params.slidesPerGroup = 1;\n s.params.centeredSlides = false;\n s.params.spaceBetween = 0;\n s.params.virtualTranslate = true;\n }\n if (s.params.effect === 'fade' || s.params.effect === 'flip') {\n s.params.slidesPerView = 1;\n s.params.slidesPerColumn = 1;\n s.params.slidesPerGroup = 1;\n s.params.watchSlidesProgress = true;\n s.params.spaceBetween = 0;\n if (typeof initialVirtualTranslate === 'undefined') {\n s.params.virtualTranslate = true;\n }\n }\n\n // Grab Cursor\n if (s.params.grabCursor && s.support.touch) {\n s.params.grabCursor = false;\n }\n\n // Wrapper\n s.wrapper = s.container.children('.' + s.params.wrapperClass);\n\n // Pagination\n if (s.params.pagination) {\n s.paginationContainer = $(s.params.pagination);\n if (s.params.uniqueNavElements && typeof s.params.pagination === 'string' && s.paginationContainer.length > 1 && s.container.find(s.params.pagination).length === 1) {\n s.paginationContainer = s.container.find(s.params.pagination);\n }\n\n if (s.params.paginationType === 'bullets' && s.params.paginationClickable) {\n s.paginationContainer.addClass(s.params.paginationModifierClass + 'clickable');\n }\n else {\n s.params.paginationClickable = false;\n }\n s.paginationContainer.addClass(s.params.paginationModifierClass + s.params.paginationType);\n }\n // Next/Prev Buttons\n if (s.params.nextButton || s.params.prevButton) {\n if (s.params.nextButton) {\n s.nextButton = $(s.params.nextButton);\n if (s.params.uniqueNavElements && typeof s.params.nextButton === 'string' && s.nextButton.length > 1 && s.container.find(s.params.nextButton).length === 1) {\n s.nextButton = s.container.find(s.params.nextButton);\n }\n }\n if (s.params.prevButton) {\n s.prevButton = $(s.params.prevButton);\n if (s.params.uniqueNavElements && typeof s.params.prevButton === 'string' && s.prevButton.length > 1 && s.container.find(s.params.prevButton).length === 1) {\n s.prevButton = s.container.find(s.params.prevButton);\n }\n }\n }\n\n // Is Horizontal\n s.isHorizontal = function () {\n return s.params.direction === 'horizontal';\n };\n // s.isH = isH;\n\n // RTL\n s.rtl = s.isHorizontal() && (s.container[0].dir.toLowerCase() === 'rtl' || s.container.css('direction') === 'rtl');\n if (s.rtl) {\n s.classNames.push(s.params.containerModifierClass + 'rtl');\n }\n\n // Wrong RTL support\n if (s.rtl) {\n s.wrongRTL = s.wrapper.css('display') === '-webkit-box';\n }\n\n // Columns\n if (s.params.slidesPerColumn > 1) {\n s.classNames.push(s.params.containerModifierClass + 'multirow');\n }\n\n // Check for Android\n if (s.device.android) {\n s.classNames.push(s.params.containerModifierClass + 'android');\n }\n\n // Add classes\n s.container.addClass(s.classNames.join(' '));\n\n // Translate\n s.translate = 0;\n\n // Progress\n s.progress = 0;\n\n // Velocity\n s.velocity = 0;\n\n /*=========================\n Locks, unlocks\n ===========================*/\n s.lockSwipeToNext = function () {\n s.params.allowSwipeToNext = false;\n if (s.params.allowSwipeToPrev === false && s.params.grabCursor) {\n s.unsetGrabCursor();\n }\n };\n s.lockSwipeToPrev = function () {\n s.params.allowSwipeToPrev = false;\n if (s.params.allowSwipeToNext === false && s.params.grabCursor) {\n s.unsetGrabCursor();\n }\n };\n s.lockSwipes = function () {\n s.params.allowSwipeToNext = s.params.allowSwipeToPrev = false;\n if (s.params.grabCursor) s.unsetGrabCursor();\n };\n s.unlockSwipeToNext = function () {\n s.params.allowSwipeToNext = true;\n if (s.params.allowSwipeToPrev === true && s.params.grabCursor) {\n s.setGrabCursor();\n }\n };\n s.unlockSwipeToPrev = function () {\n s.params.allowSwipeToPrev = true;\n if (s.params.allowSwipeToNext === true && s.params.grabCursor) {\n s.setGrabCursor();\n }\n };\n s.unlockSwipes = function () {\n s.params.allowSwipeToNext = s.params.allowSwipeToPrev = true;\n if (s.params.grabCursor) s.setGrabCursor();\n };\n\n /*=========================\n Round helper\n ===========================*/\n function round(a) {\n return Math.floor(a);\n }\n /*=========================\n Set grab cursor\n ===========================*/\n s.setGrabCursor = function(moving) {\n s.container[0].style.cursor = 'move';\n s.container[0].style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n s.container[0].style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n s.container[0].style.cursor = moving ? 'grabbing': 'grab';\n };\n s.unsetGrabCursor = function () {\n s.container[0].style.cursor = '';\n };\n if (s.params.grabCursor) {\n s.setGrabCursor();\n }\n /*=========================\n Update on Images Ready\n ===========================*/\n s.imagesToLoad = [];\n s.imagesLoaded = 0;\n\n s.loadImage = function (imgElement, src, srcset, sizes, checkForComplete, callback) {\n var image;\n function onReady () {\n if (callback) callback();\n }\n if (!imgElement.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\n } else {//image already loaded...\n onReady();\n }\n };\n s.preloadImages = function () {\n s.imagesToLoad = s.container.find('img');\n function _onReady() {\n if (typeof s === 'undefined' || s === null || !s) return;\n if (s.imagesLoaded !== undefined) s.imagesLoaded++;\n if (s.imagesLoaded === s.imagesToLoad.length) {\n if (s.params.updateOnImagesReady) s.update();\n s.emit('onImagesReady', s);\n }\n }\n for (var i = 0; i < s.imagesToLoad.length; i++) {\n s.loadImage(s.imagesToLoad[i], (s.imagesToLoad[i].currentSrc || s.imagesToLoad[i].getAttribute('src')), (s.imagesToLoad[i].srcset || s.imagesToLoad[i].getAttribute('srcset')), s.imagesToLoad[i].sizes || s.imagesToLoad[i].getAttribute('sizes'), true, _onReady);\n }\n };\n\n /*=========================\n Autoplay\n ===========================*/\n s.autoplayTimeoutId = undefined;\n s.autoplaying = false;\n s.autoplayPaused = false;\n function autoplay() {\n var autoplayDelay = s.params.autoplay;\n var activeSlide = s.slides.eq(s.activeIndex);\n if (activeSlide.attr('data-swiper-autoplay')) {\n autoplayDelay = activeSlide.attr('data-swiper-autoplay') || s.params.autoplay;\n }\n s.autoplayTimeoutId = setTimeout(function () {\n if (s.params.loop) {\n s.fixLoop();\n s._slideNext();\n s.emit('onAutoplay', s);\n }\n else {\n if (!s.isEnd) {\n s._slideNext();\n s.emit('onAutoplay', s);\n }\n else {\n if (!params.autoplayStopOnLast) {\n s._slideTo(0);\n s.emit('onAutoplay', s);\n }\n else {\n s.stopAutoplay();\n }\n }\n }\n }, autoplayDelay);\n }\n s.startAutoplay = function () {\n if (typeof s.autoplayTimeoutId !== 'undefined') return false;\n if (!s.params.autoplay) return false;\n if (s.autoplaying) return false;\n s.autoplaying = true;\n s.emit('onAutoplayStart', s);\n autoplay();\n };\n s.stopAutoplay = function (internal) {\n if (!s.autoplayTimeoutId) return;\n if (s.autoplayTimeoutId) clearTimeout(s.autoplayTimeoutId);\n s.autoplaying = false;\n s.autoplayTimeoutId = undefined;\n s.emit('onAutoplayStop', s);\n };\n s.pauseAutoplay = function (speed) {\n if (s.autoplayPaused) return;\n if (s.autoplayTimeoutId) clearTimeout(s.autoplayTimeoutId);\n s.autoplayPaused = true;\n if (speed === 0) {\n s.autoplayPaused = false;\n autoplay();\n }\n else {\n s.wrapper.transitionEnd(function () {\n if (!s) return;\n s.autoplayPaused = false;\n if (!s.autoplaying) {\n s.stopAutoplay();\n }\n else {\n autoplay();\n }\n });\n }\n };\n /*=========================\n Min/Max Translate\n ===========================*/\n s.minTranslate = function () {\n return (-s.snapGrid[0]);\n };\n s.maxTranslate = function () {\n return (-s.snapGrid[s.snapGrid.length - 1]);\n };\n /*=========================\n Slider/slides sizes\n ===========================*/\n s.updateAutoHeight = function () {\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n // Find slides currently in view\n if(s.params.slidesPerView !== 'auto' && s.params.slidesPerView > 1) {\n for (i = 0; i < Math.ceil(s.params.slidesPerView); i++) {\n var index = s.activeIndex + i;\n if(index > s.slides.length) break;\n activeSlides.push(s.slides.eq(index)[0]);\n }\n } else {\n activeSlides.push(s.slides.eq(s.activeIndex)[0]);\n }\n\n // Find new height from heighest slide in view\n for (i = 0; i < activeSlides.length; i++) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) s.wrapper.css('height', newHeight + 'px');\n };\n s.updateContainerSize = function () {\n var width, height;\n if (typeof s.params.width !== 'undefined') {\n width = s.params.width;\n }\n else {\n width = s.container[0].clientWidth;\n }\n if (typeof s.params.height !== 'undefined') {\n height = s.params.height;\n }\n else {\n height = s.container[0].clientHeight;\n }\n if (width === 0 && s.isHorizontal() || height === 0 && !s.isHorizontal()) {\n return;\n }\n\n //Subtract paddings\n width = width - parseInt(s.container.css('padding-left'), 10) - parseInt(s.container.css('padding-right'), 10);\n height = height - parseInt(s.container.css('padding-top'), 10) - parseInt(s.container.css('padding-bottom'), 10);\n\n // Store values\n s.width = width;\n s.height = height;\n s.size = s.isHorizontal() ? s.width : s.height;\n };\n\n s.updateSlidesSize = function () {\n s.slides = s.wrapper.children('.' + s.params.slideClass);\n s.snapGrid = [];\n s.slidesGrid = [];\n s.slidesSizesGrid = [];\n\n var spaceBetween = s.params.spaceBetween,\n slidePosition = -s.params.slidesOffsetBefore,\n i,\n prevSlideSize = 0,\n index = 0;\n if (typeof s.size === 'undefined') return;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * s.size;\n }\n\n s.virtualSize = -spaceBetween;\n // reset margins\n if (s.rtl) s.slides.css({marginLeft: '', marginTop: ''});\n else s.slides.css({marginRight: '', marginBottom: ''});\n\n var slidesNumberEvenToRows;\n if (s.params.slidesPerColumn > 1) {\n if (Math.floor(s.slides.length / s.params.slidesPerColumn) === s.slides.length / s.params.slidesPerColumn) {\n slidesNumberEvenToRows = s.slides.length;\n }\n else {\n slidesNumberEvenToRows = Math.ceil(s.slides.length / s.params.slidesPerColumn) * s.params.slidesPerColumn;\n }\n if (s.params.slidesPerView !== 'auto' && s.params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, s.params.slidesPerView * s.params.slidesPerColumn);\n }\n }\n\n // Calc slides\n var slideSize;\n var slidesPerColumn = s.params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = slidesPerRow - (s.params.slidesPerColumn * slidesPerRow - s.slides.length);\n for (i = 0; i < s.slides.length; i++) {\n slideSize = 0;\n var slide = s.slides.eq(i);\n if (s.params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex;\n var column, row;\n if (s.params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn-1)) {\n if (++row >= slidesPerColumn) {\n row = 0;\n column++;\n }\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 }\n else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide\n .css(\n 'margin-' + (s.isHorizontal() ? 'top' : 'left'),\n (row !== 0 && s.params.spaceBetween) && (s.params.spaceBetween + 'px')\n )\n .attr('data-swiper-column', column)\n .attr('data-swiper-row', row);\n\n }\n if (slide.css('display') === 'none') continue;\n if (s.params.slidesPerView === 'auto') {\n slideSize = s.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n if (s.params.roundLengths) slideSize = round(slideSize);\n }\n else {\n slideSize = (s.size - (s.params.slidesPerView - 1) * spaceBetween) / s.params.slidesPerView;\n if (s.params.roundLengths) slideSize = round(slideSize);\n\n if (s.isHorizontal()) {\n s.slides[i].style.width = slideSize + 'px';\n }\n else {\n s.slides[i].style.height = slideSize + 'px';\n }\n }\n s.slides[i].swiperSlideSize = slideSize;\n s.slidesSizesGrid.push(slideSize);\n\n\n if (s.params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if(prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - s.size / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - s.size / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if ((index) % s.params.slidesPerGroup === 0) s.snapGrid.push(slidePosition);\n s.slidesGrid.push(slidePosition);\n }\n else {\n if ((index) % s.params.slidesPerGroup === 0) s.snapGrid.push(slidePosition);\n s.slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n s.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index ++;\n }\n s.virtualSize = Math.max(s.virtualSize, s.size) + s.params.slidesOffsetAfter;\n var newSlidesGrid;\n\n if (\n s.rtl && s.wrongRTL && (s.params.effect === 'slide' || s.params.effect === 'coverflow')) {\n s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});\n }\n if (!s.support.flexbox || s.params.setWrapperSize) {\n if (s.isHorizontal()) s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});\n else s.wrapper.css({height: s.virtualSize + s.params.spaceBetween + 'px'});\n }\n\n if (s.params.slidesPerColumn > 1) {\n s.virtualSize = (slideSize + s.params.spaceBetween) * slidesNumberEvenToRows;\n s.virtualSize = Math.ceil(s.virtualSize / s.params.slidesPerColumn) - s.params.spaceBetween;\n if (s.isHorizontal()) s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});\n else s.wrapper.css({height: s.virtualSize + s.params.spaceBetween + 'px'});\n if (s.params.centeredSlides) {\n newSlidesGrid = [];\n for (i = 0; i < s.snapGrid.length; i++) {\n if (s.snapGrid[i] < s.virtualSize + s.snapGrid[0]) newSlidesGrid.push(s.snapGrid[i]);\n }\n s.snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!s.params.centeredSlides) {\n newSlidesGrid = [];\n for (i = 0; i < s.snapGrid.length; i++) {\n if (s.snapGrid[i] <= s.virtualSize - s.size) {\n newSlidesGrid.push(s.snapGrid[i]);\n }\n }\n s.snapGrid = newSlidesGrid;\n if (Math.floor(s.virtualSize - s.size) - Math.floor(s.snapGrid[s.snapGrid.length - 1]) > 1) {\n s.snapGrid.push(s.virtualSize - s.size);\n }\n }\n if (s.snapGrid.length === 0) s.snapGrid = [0];\n\n if (s.params.spaceBetween !== 0) {\n if (s.isHorizontal()) {\n if (s.rtl) s.slides.css({marginLeft: spaceBetween + 'px'});\n else s.slides.css({marginRight: spaceBetween + 'px'});\n }\n else s.slides.css({marginBottom: spaceBetween + 'px'});\n }\n if (s.params.watchSlidesProgress) {\n s.updateSlidesOffset();\n }\n };\n s.updateSlidesOffset = function () {\n for (var i = 0; i < s.slides.length; i++) {\n s.slides[i].swiperSlideOffset = s.isHorizontal() ? s.slides[i].offsetLeft : s.slides[i].offsetTop;\n }\n };\n\n /*=========================\n Dynamic Slides Per View\n ===========================*/\n s.currentSlidesPerView = function () {\n var spv = 1, i, j;\n if (s.params.centeredSlides) {\n var size = s.slides[s.activeIndex].swiperSlideSize;\n var breakLoop;\n for (i = s.activeIndex + 1; i < s.slides.length; i++) {\n if (s.slides[i] && !breakLoop) {\n size += s.slides[i].swiperSlideSize;\n spv ++;\n if (size > s.size) breakLoop = true;\n }\n }\n for (j = s.activeIndex - 1; j >= 0; j--) {\n if (s.slides[j] && !breakLoop) {\n size += s.slides[j].swiperSlideSize;\n spv ++;\n if (size > s.size) breakLoop = true;\n }\n }\n }\n else {\n for (i = s.activeIndex + 1; i < s.slides.length; i++) {\n if (s.slidesGrid[i] - s.slidesGrid[s.activeIndex] < s.size) {\n spv++;\n }\n }\n }\n return spv;\n };\n /*=========================\n Slider/slides progress\n ===========================*/\n s.updateSlidesProgress = function (translate) {\n if (typeof translate === 'undefined') {\n translate = s.translate || 0;\n }\n if (s.slides.length === 0) return;\n if (typeof s.slides[0].swiperSlideOffset === 'undefined') s.updateSlidesOffset();\n\n var offsetCenter = -translate;\n if (s.rtl) offsetCenter = translate;\n\n // Visible Slides\n s.slides.removeClass(s.params.slideVisibleClass);\n for (var i = 0; i < s.slides.length; i++) {\n var slide = s.slides[i];\n var slideProgress = (offsetCenter + (s.params.centeredSlides ? s.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + s.params.spaceBetween);\n if (s.params.watchSlidesVisibility) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + s.slidesSizesGrid[i];\n var isVisible =\n (slideBefore >= 0 && slideBefore < s.size) ||\n (slideAfter > 0 && slideAfter <= s.size) ||\n (slideBefore <= 0 && slideAfter >= s.size);\n if (isVisible) {\n s.slides.eq(i).addClass(s.params.slideVisibleClass);\n }\n }\n slide.progress = s.rtl ? -slideProgress : slideProgress;\n }\n };\n s.updateProgress = function (translate) {\n if (typeof translate === 'undefined') {\n translate = s.translate || 0;\n }\n var translatesDiff = s.maxTranslate() - s.minTranslate();\n var wasBeginning = s.isBeginning;\n var wasEnd = s.isEnd;\n if (translatesDiff === 0) {\n s.progress = 0;\n s.isBeginning = s.isEnd = true;\n }\n else {\n s.progress = (translate - s.minTranslate()) / (translatesDiff);\n s.isBeginning = s.progress <= 0;\n s.isEnd = s.progress >= 1;\n }\n if (s.isBeginning && !wasBeginning) s.emit('onReachBeginning', s);\n if (s.isEnd && !wasEnd) s.emit('onReachEnd', s);\n\n if (s.params.watchSlidesProgress) s.updateSlidesProgress(translate);\n s.emit('onProgress', s, s.progress);\n };\n s.updateActiveIndex = function () {\n var translate = s.rtl ? s.translate : -s.translate;\n var newActiveIndex, i, snapIndex;\n for (i = 0; i < s.slidesGrid.length; i ++) {\n if (typeof s.slidesGrid[i + 1] !== 'undefined') {\n if (translate >= s.slidesGrid[i] && translate < s.slidesGrid[i + 1] - (s.slidesGrid[i + 1] - s.slidesGrid[i]) / 2) {\n newActiveIndex = i;\n }\n else if (translate >= s.slidesGrid[i] && translate < s.slidesGrid[i + 1]) {\n newActiveIndex = i + 1;\n }\n }\n else {\n if (translate >= s.slidesGrid[i]) {\n newActiveIndex = i;\n }\n }\n }\n // Normalize slideIndex\n if(s.params.normalizeSlideIndex){\n if (newActiveIndex < 0 || typeof newActiveIndex === 'undefined') newActiveIndex = 0;\n }\n // for (i = 0; i < s.slidesGrid.length; i++) {\n // if (- translate >= s.slidesGrid[i]) {\n // newActiveIndex = i;\n // }\n // }\n snapIndex = Math.floor(newActiveIndex / s.params.slidesPerGroup);\n if (snapIndex >= s.snapGrid.length) snapIndex = s.snapGrid.length - 1;\n\n if (newActiveIndex === s.activeIndex) {\n return;\n }\n s.snapIndex = snapIndex;\n s.previousIndex = s.activeIndex;\n s.activeIndex = newActiveIndex;\n s.updateClasses();\n s.updateRealIndex();\n };\n s.updateRealIndex = function(){\n s.realIndex = parseInt(s.slides.eq(s.activeIndex).attr('data-swiper-slide-index') || s.activeIndex, 10);\n };\n\n /*=========================\n Classes\n ===========================*/\n s.updateClasses = function () {\n s.slides.removeClass(s.params.slideActiveClass + ' ' + s.params.slideNextClass + ' ' + s.params.slidePrevClass + ' ' + s.params.slideDuplicateActiveClass + ' ' + s.params.slideDuplicateNextClass + ' ' + s.params.slideDuplicatePrevClass);\n var activeSlide = s.slides.eq(s.activeIndex);\n // Active classes\n activeSlide.addClass(s.params.slideActiveClass);\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(s.params.slideDuplicateClass)) {\n s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + s.realIndex + '\"]').addClass(s.params.slideDuplicateActiveClass);\n }\n else {\n s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + s.realIndex + '\"]').addClass(s.params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n var nextSlide = activeSlide.next('.' + s.params.slideClass).addClass(s.params.slideNextClass);\n if (s.params.loop && nextSlide.length === 0) {\n nextSlide = s.slides.eq(0);\n nextSlide.addClass(s.params.slideNextClass);\n }\n // Prev Slide\n var prevSlide = activeSlide.prev('.' + s.params.slideClass).addClass(s.params.slidePrevClass);\n if (s.params.loop && prevSlide.length === 0) {\n prevSlide = s.slides.eq(-1);\n prevSlide.addClass(s.params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(s.params.slideDuplicateClass)) {\n s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + nextSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicateNextClass);\n }\n else {\n s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + nextSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(s.params.slideDuplicateClass)) {\n s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + prevSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicatePrevClass);\n }\n else {\n s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + prevSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicatePrevClass);\n }\n }\n\n // Pagination\n if (s.paginationContainer && s.paginationContainer.length > 0) {\n // Current/Total\n var current,\n total = s.params.loop ? Math.ceil((s.slides.length - s.loopedSlides * 2) / s.params.slidesPerGroup) : s.snapGrid.length;\n if (s.params.loop) {\n current = Math.ceil((s.activeIndex - s.loopedSlides)/s.params.slidesPerGroup);\n if (current > s.slides.length - 1 - s.loopedSlides * 2) {\n current = current - (s.slides.length - s.loopedSlides * 2);\n }\n if (current > total - 1) current = current - total;\n if (current < 0 && s.params.paginationType !== 'bullets') current = total + current;\n }\n else {\n if (typeof s.snapIndex !== 'undefined') {\n current = s.snapIndex;\n }\n else {\n current = s.activeIndex || 0;\n }\n }\n // Types\n if (s.params.paginationType === 'bullets' && s.bullets && s.bullets.length > 0) {\n s.bullets.removeClass(s.params.bulletActiveClass);\n if (s.paginationContainer.length > 1) {\n s.bullets.each(function () {\n if ($(this).index() === current) $(this).addClass(s.params.bulletActiveClass);\n });\n }\n else {\n s.bullets.eq(current).addClass(s.params.bulletActiveClass);\n }\n }\n if (s.params.paginationType === 'fraction') {\n s.paginationContainer.find('.' + s.params.paginationCurrentClass).text(current + 1);\n s.paginationContainer.find('.' + s.params.paginationTotalClass).text(total);\n }\n if (s.params.paginationType === 'progress') {\n var scale = (current + 1) / total,\n scaleX = scale,\n scaleY = 1;\n if (!s.isHorizontal()) {\n scaleY = scale;\n scaleX = 1;\n }\n s.paginationContainer.find('.' + s.params.paginationProgressbarClass).transform('translate3d(0,0,0) scaleX(' + scaleX + ') scaleY(' + scaleY + ')').transition(s.params.speed);\n }\n if (s.params.paginationType === 'custom' && s.params.paginationCustomRender) {\n s.paginationContainer.html(s.params.paginationCustomRender(s, current + 1, total));\n s.emit('onPaginationRendered', s, s.paginationContainer[0]);\n }\n }\n\n // Next/active buttons\n if (!s.params.loop) {\n if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {\n if (s.isBeginning) {\n s.prevButton.addClass(s.params.buttonDisabledClass);\n if (s.params.a11y && s.a11y) s.a11y.disable(s.prevButton);\n }\n else {\n s.prevButton.removeClass(s.params.buttonDisabledClass);\n if (s.params.a11y && s.a11y) s.a11y.enable(s.prevButton);\n }\n }\n if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {\n if (s.isEnd) {\n s.nextButton.addClass(s.params.buttonDisabledClass);\n if (s.params.a11y && s.a11y) s.a11y.disable(s.nextButton);\n }\n else {\n s.nextButton.removeClass(s.params.buttonDisabledClass);\n if (s.params.a11y && s.a11y) s.a11y.enable(s.nextButton);\n }\n }\n }\n };\n\n /*=========================\n Pagination\n ===========================*/\n s.updatePagination = function () {\n if (!s.params.pagination) return;\n if (s.paginationContainer && s.paginationContainer.length > 0) {\n var paginationHTML = '';\n if (s.params.paginationType === 'bullets') {\n var numberOfBullets = s.params.loop ? Math.ceil((s.slides.length - s.loopedSlides * 2) / s.params.slidesPerGroup) : s.snapGrid.length;\n for (var i = 0; i < numberOfBullets; i++) {\n if (s.params.paginationBulletRender) {\n paginationHTML += s.params.paginationBulletRender(s, i, s.params.bulletClass);\n }\n else {\n paginationHTML += '<' + s.params.paginationElement+' class=\"' + s.params.bulletClass + '\"></' + s.params.paginationElement + '>';\n }\n }\n s.paginationContainer.html(paginationHTML);\n s.bullets = s.paginationContainer.find('.' + s.params.bulletClass);\n if (s.params.paginationClickable && s.params.a11y && s.a11y) {\n s.a11y.initPagination();\n }\n }\n if (s.params.paginationType === 'fraction') {\n if (s.params.paginationFractionRender) {\n paginationHTML = s.params.paginationFractionRender(s, s.params.paginationCurrentClass, s.params.paginationTotalClass);\n }\n else {\n paginationHTML =\n '<span class=\"' + s.params.paginationCurrentClass + '\"></span>' +\n ' / ' +\n '<span class=\"' + s.params.paginationTotalClass+'\"></span>';\n }\n s.paginationContainer.html(paginationHTML);\n }\n if (s.params.paginationType === 'progress') {\n if (s.params.paginationProgressRender) {\n paginationHTML = s.params.paginationProgressRender(s, s.params.paginationProgressbarClass);\n }\n else {\n paginationHTML = '<span class=\"' + s.params.paginationProgressbarClass + '\"></span>';\n }\n s.paginationContainer.html(paginationHTML);\n }\n if (s.params.paginationType !== 'custom') {\n s.emit('onPaginationRendered', s, s.paginationContainer[0]);\n }\n }\n };\n /*=========================\n Common update method\n ===========================*/\n s.update = function (updateTranslate) {\n if (!s) return;\n s.updateContainerSize();\n s.updateSlidesSize();\n s.updateProgress();\n s.updatePagination();\n s.updateClasses();\n if (s.params.scrollbar && s.scrollbar) {\n s.scrollbar.set();\n }\n var newTranslate;\n function forceSetTranslate() {\n var translate = s.rtl ? -s.translate : s.translate;\n newTranslate = Math.min(Math.max(s.translate, s.maxTranslate()), s.minTranslate());\n s.setWrapperTranslate(newTranslate);\n s.updateActiveIndex();\n s.updateClasses();\n }\n if (updateTranslate) {\n var translated;\n if (s.controller && s.controller.spline) {\n s.controller.spline = undefined;\n }\n if (s.params.freeMode) {\n forceSetTranslate();\n if (s.params.autoHeight) {\n s.updateAutoHeight();\n }\n }\n else {\n if ((s.params.slidesPerView === 'auto' || s.params.slidesPerView > 1) && s.isEnd && !s.params.centeredSlides) {\n translated = s.slideTo(s.slides.length - 1, 0, false, true);\n }\n else {\n translated = s.slideTo(s.activeIndex, 0, false, true);\n }\n if (!translated) {\n forceSetTranslate();\n }\n }\n }\n else if (s.params.autoHeight) {\n s.updateAutoHeight();\n }\n };\n\n /*=========================\n Resize Handler\n ===========================*/\n s.onResize = function (forceUpdatePagination) {\n if (s.params.onBeforeResize) s.params.onBeforeResize(s);\n //Breakpoints\n if (s.params.breakpoints) {\n s.setBreakpoint();\n }\n\n // Disable locks on resize\n var allowSwipeToPrev = s.params.allowSwipeToPrev;\n var allowSwipeToNext = s.params.allowSwipeToNext;\n s.params.allowSwipeToPrev = s.params.allowSwipeToNext = true;\n\n s.updateContainerSize();\n s.updateSlidesSize();\n if (s.params.slidesPerView === 'auto' || s.params.freeMode || forceUpdatePagination) s.updatePagination();\n if (s.params.scrollbar && s.scrollbar) {\n s.scrollbar.set();\n }\n if (s.controller && s.controller.spline) {\n s.controller.spline = undefined;\n }\n var slideChangedBySlideTo = false;\n if (s.params.freeMode) {\n var newTranslate = Math.min(Math.max(s.translate, s.maxTranslate()), s.minTranslate());\n s.setWrapperTranslate(newTranslate);\n s.updateActiveIndex();\n s.updateClasses();\n\n if (s.params.autoHeight) {\n s.updateAutoHeight();\n }\n }\n else {\n s.updateClasses();\n if ((s.params.slidesPerView === 'auto' || s.params.slidesPerView > 1) && s.isEnd && !s.params.centeredSlides) {\n slideChangedBySlideTo = s.slideTo(s.slides.length - 1, 0, false, true);\n }\n else {\n slideChangedBySlideTo = s.slideTo(s.activeIndex, 0, false, true);\n }\n }\n if (s.params.lazyLoading && !slideChangedBySlideTo && s.lazy) {\n s.lazy.load();\n }\n // Return locks after resize\n s.params.allowSwipeToPrev = allowSwipeToPrev;\n s.params.allowSwipeToNext = allowSwipeToNext;\n if (s.params.onAfterResize) s.params.onAfterResize(s);\n };\n\n /*=========================\n Events\n ===========================*/\n\n //Define Touch Events\n s.touchEventsDesktop = {start: 'mousedown', move: 'mousemove', end: 'mouseup'};\n if (window.navigator.pointerEnabled) s.touchEventsDesktop = {start: 'pointerdown', move: 'pointermove', end: 'pointerup'};\n else if (window.navigator.msPointerEnabled) s.touchEventsDesktop = {start: 'MSPointerDown', move: 'MSPointerMove', end: 'MSPointerUp'};\n s.touchEvents = {\n start : s.support.touch || !s.params.simulateTouch ? 'touchstart' : s.touchEventsDesktop.start,\n move : s.support.touch || !s.params.simulateTouch ? 'touchmove' : s.touchEventsDesktop.move,\n end : s.support.touch || !s.params.simulateTouch ? 'touchend' : s.touchEventsDesktop.end\n };\n\n\n // WP8 Touch Events Fix\n if (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) {\n (s.params.touchEventsTarget === 'container' ? s.container : s.wrapper).addClass('swiper-wp8-' + s.params.direction);\n }\n\n // Attach/detach events\n s.initEvents = function (detach) {\n var actionDom = detach ? 'off' : 'on';\n var action = detach ? 'removeEventListener' : 'addEventListener';\n var touchEventsTarget = s.params.touchEventsTarget === 'container' ? s.container[0] : s.wrapper[0];\n var target = s.support.touch ? touchEventsTarget : document;\n\n var moveCapture = s.params.nested ? true : false;\n\n //Touch Events\n if (s.browser.ie) {\n touchEventsTarget[action](s.touchEvents.start, s.onTouchStart, false);\n target[action](s.touchEvents.move, s.onTouchMove, moveCapture);\n target[action](s.touchEvents.end, s.onTouchEnd, false);\n }\n else {\n if (s.support.touch) {\n var passiveListener = s.touchEvents.start === 'touchstart' && s.support.passiveListener && s.params.passiveListeners ? {passive: true, capture: false} : false;\n touchEventsTarget[action](s.touchEvents.start, s.onTouchStart, passiveListener);\n touchEventsTarget[action](s.touchEvents.move, s.onTouchMove, moveCapture);\n touchEventsTarget[action](s.touchEvents.end, s.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !s.device.ios && !s.device.android) || (params.simulateTouch && !s.support.touch && s.device.ios)) {\n touchEventsTarget[action]('mousedown', s.onTouchStart, false);\n document[action]('mousemove', s.onTouchMove, moveCapture);\n document[action]('mouseup', s.onTouchEnd, false);\n }\n }\n window[action]('resize', s.onResize);\n\n // Next, Prev, Index\n if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {\n s.nextButton[actionDom]('click', s.onClickNext);\n if (s.params.a11y && s.a11y) s.nextButton[actionDom]('keydown', s.a11y.onEnterKey);\n }\n if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {\n s.prevButton[actionDom]('click', s.onClickPrev);\n if (s.params.a11y && s.a11y) s.prevButton[actionDom]('keydown', s.a11y.onEnterKey);\n }\n if (s.params.pagination && s.params.paginationClickable) {\n s.paginationContainer[actionDom]('click', '.' + s.params.bulletClass, s.onClickIndex);\n if (s.params.a11y && s.a11y) s.paginationContainer[actionDom]('keydown', '.' + s.params.bulletClass, s.a11y.onEnterKey);\n }\n\n // Prevent Links Clicks\n if (s.params.preventClicks || s.params.preventClicksPropagation) touchEventsTarget[action]('click', s.preventClicks, true);\n };\n s.attachEvents = function () {\n s.initEvents();\n };\n s.detachEvents = function () {\n s.initEvents(true);\n };\n\n /*=========================\n Handle Clicks\n ===========================*/\n // Prevent Clicks\n s.allowClick = true;\n s.preventClicks = function (e) {\n if (!s.allowClick) {\n if (s.params.preventClicks) e.preventDefault();\n if (s.params.preventClicksPropagation && s.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n };\n // Clicks\n s.onClickNext = function (e) {\n e.preventDefault();\n if (s.isEnd && !s.params.loop) return;\n s.slideNext();\n };\n s.onClickPrev = function (e) {\n e.preventDefault();\n if (s.isBeginning && !s.params.loop) return;\n s.slidePrev();\n };\n s.onClickIndex = function (e) {\n e.preventDefault();\n var index = $(this).index() * s.params.slidesPerGroup;\n if (s.params.loop) index = index + s.loopedSlides;\n s.slideTo(index);\n };\n\n /*=========================\n Handle Touches\n ===========================*/\n function findElementInEvent(e, selector) {\n var el = $(e.target);\n if (!el.is(selector)) {\n if (typeof selector === 'string') {\n el = el.parents(selector);\n }\n else if (selector.nodeType) {\n var found;\n el.parents().each(function (index, _el) {\n if (_el === selector) found = selector;\n });\n if (!found) return undefined;\n else return selector;\n }\n }\n if (el.length === 0) {\n return undefined;\n }\n return el[0];\n }\n s.updateClickedSlide = function (e) {\n var slide = findElementInEvent(e, '.' + s.params.slideClass);\n var slideFound = false;\n if (slide) {\n for (var i = 0; i < s.slides.length; i++) {\n if (s.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n s.clickedSlide = slide;\n s.clickedIndex = $(slide).index();\n }\n else {\n s.clickedSlide = undefined;\n s.clickedIndex = undefined;\n return;\n }\n if (s.params.slideToClickedSlide && s.clickedIndex !== undefined && s.clickedIndex !== s.activeIndex) {\n var slideToIndex = s.clickedIndex,\n realIndex,\n duplicatedSlides,\n slidesPerView = s.params.slidesPerView === 'auto' ? s.currentSlidesPerView() : s.params.slidesPerView;\n if (s.params.loop) {\n if (s.animating) return;\n realIndex = parseInt($(s.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (s.params.centeredSlides) {\n if ((slideToIndex < s.loopedSlides - slidesPerView/2) || (slideToIndex > s.slides.length - s.loopedSlides + slidesPerView/2)) {\n s.fixLoop();\n slideToIndex = s.wrapper.children('.' + s.params.slideClass + '[data-swiper-slide-index=\"' + realIndex + '\"]:not(.' + s.params.slideDuplicateClass + ')').eq(0).index();\n setTimeout(function () {\n s.slideTo(slideToIndex);\n }, 0);\n }\n else {\n s.slideTo(slideToIndex);\n }\n }\n else {\n if (slideToIndex > s.slides.length - slidesPerView) {\n s.fixLoop();\n slideToIndex = s.wrapper.children('.' + s.params.slideClass + '[data-swiper-slide-index=\"' + realIndex + '\"]:not(.' + s.params.slideDuplicateClass + ')').eq(0).index();\n setTimeout(function () {\n s.slideTo(slideToIndex);\n }, 0);\n }\n else {\n s.slideTo(slideToIndex);\n }\n }\n }\n else {\n s.slideTo(slideToIndex);\n }\n }\n };\n\n var isTouched,\n isMoved,\n allowTouchCallbacks,\n touchStartTime,\n isScrolling,\n currentTranslate,\n startTranslate,\n allowThresholdMove,\n // Form elements to match\n formElements = 'input, select, textarea, button, video',\n // Last click time\n lastClickTime = Date.now(), clickTimeout,\n //Velocities\n velocities = [],\n allowMomentumBounce;\n\n // Animating Flag\n s.animating = false;\n\n // Touches information\n s.touches = {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n };\n\n // Touch handlers\n var isTouchEvent, startMoving;\n s.onTouchStart = function (e) {\n if (e.originalEvent) e = e.originalEvent;\n isTouchEvent = e.type === 'touchstart';\n if (!isTouchEvent && 'which' in e && e.which === 3) return;\n if (s.params.noSwiping && findElementInEvent(e, '.' + s.params.noSwipingClass)) {\n s.allowClick = true;\n return;\n }\n if (s.params.swipeHandler) {\n if (!findElementInEvent(e, s.params.swipeHandler)) return;\n }\n\n var startX = s.touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n var startY = s.touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n if(s.device.ios && s.params.iOSEdgeSwipeDetection && startX <= s.params.iOSEdgeSwipeThreshold) {\n return;\n }\n\n isTouched = true;\n isMoved = false;\n allowTouchCallbacks = true;\n isScrolling = undefined;\n startMoving = undefined;\n s.touches.startX = startX;\n s.touches.startY = startY;\n touchStartTime = Date.now();\n s.allowClick = true;\n s.updateContainerSize();\n s.swipeDirection = undefined;\n if (s.params.threshold > 0) allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($(e.target).is(formElements)) preventDefault = false;\n if (document.activeElement && $(document.activeElement).is(formElements)) {\n document.activeElement.blur();\n }\n if (preventDefault) {\n e.preventDefault();\n }\n }\n s.emit('onTouchStart', s, e);\n };\n\n s.onTouchMove = function (e) {\n if (e.originalEvent) e = e.originalEvent;\n if (isTouchEvent && e.type === 'mousemove') return;\n if (e.preventedByNestedSwiper) {\n s.touches.startX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n s.touches.startY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n return;\n }\n if (s.params.onlyExternal) {\n // isMoved = true;\n s.allowClick = false;\n if (isTouched) {\n s.touches.startX = s.touches.currentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n s.touches.startY = s.touches.currentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n touchStartTime = Date.now();\n }\n return;\n }\n if (isTouchEvent && s.params.touchReleaseOnEdges && !s.params.loop) {\n if (!s.isHorizontal()) {\n // Vertical\n if (\n (s.touches.currentY < s.touches.startY && s.translate <= s.maxTranslate()) ||\n (s.touches.currentY > s.touches.startY && s.translate >= s.minTranslate())\n ) {\n return;\n }\n }\n else {\n if (\n (s.touches.currentX < s.touches.startX && s.translate <= s.maxTranslate()) ||\n (s.touches.currentX > s.touches.startX && s.translate >= s.minTranslate())\n ) {\n return;\n }\n }\n }\n if (isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(formElements)) {\n isMoved = true;\n s.allowClick = false;\n return;\n }\n }\n if (allowTouchCallbacks) {\n s.emit('onTouchMove', s, e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n s.touches.currentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n s.touches.currentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (typeof isScrolling === 'undefined') {\n var touchAngle;\n if (s.isHorizontal() && s.touches.currentY === s.touches.startY || !s.isHorizontal() && s.touches.currentX === s.touches.startX) {\n isScrolling = false;\n }\n else {\n touchAngle = Math.atan2(Math.abs(s.touches.currentY - s.touches.startY), Math.abs(s.touches.currentX - s.touches.startX)) * 180 / Math.PI;\n isScrolling = s.isHorizontal() ? touchAngle > s.params.touchAngle : (90 - touchAngle > s.params.touchAngle);\n }\n }\n if (isScrolling) {\n s.emit('onTouchMoveOpposite', s, e);\n }\n if (typeof startMoving === 'undefined') {\n if (s.touches.currentX !== s.touches.startX || s.touches.currentY !== s.touches.startY) {\n startMoving = true;\n }\n }\n if (!isTouched) return;\n if (isScrolling) {\n isTouched = false;\n return;\n }\n if (!startMoving) {\n return;\n }\n s.allowClick = false;\n s.emit('onSliderMove', s, e);\n e.preventDefault();\n if (s.params.touchMoveStopPropagation && !s.params.nested) {\n e.stopPropagation();\n }\n\n if (!isMoved) {\n if (params.loop) {\n s.fixLoop();\n }\n startTranslate = s.getWrapperTranslate();\n s.setWrapperTransition(0);\n if (s.animating) {\n s.wrapper.trigger('webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd');\n }\n if (s.params.autoplay && s.autoplaying) {\n if (s.params.autoplayDisableOnInteraction) {\n s.stopAutoplay();\n }\n else {\n s.pauseAutoplay();\n }\n }\n allowMomentumBounce = false;\n //Grab Cursor\n if (s.params.grabCursor && (s.params.allowSwipeToNext === true || s.params.allowSwipeToPrev === true)) {\n s.setGrabCursor(true);\n }\n }\n isMoved = true;\n\n var diff = s.touches.diff = s.isHorizontal() ? s.touches.currentX - s.touches.startX : s.touches.currentY - s.touches.startY;\n\n diff = diff * s.params.touchRatio;\n if (s.rtl) diff = -diff;\n\n s.swipeDirection = diff > 0 ? 'prev' : 'next';\n currentTranslate = diff + startTranslate;\n\n var disableParentSwiper = true;\n if ((diff > 0 && currentTranslate > s.minTranslate())) {\n disableParentSwiper = false;\n if (s.params.resistance) currentTranslate = s.minTranslate() - 1 + Math.pow(-s.minTranslate() + startTranslate + diff, s.params.resistanceRatio);\n }\n else if (diff < 0 && currentTranslate < s.maxTranslate()) {\n disableParentSwiper = false;\n if (s.params.resistance) currentTranslate = s.maxTranslate() + 1 - Math.pow(s.maxTranslate() - startTranslate - diff, s.params.resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!s.params.allowSwipeToNext && s.swipeDirection === 'next' && currentTranslate < startTranslate) {\n currentTranslate = startTranslate;\n }\n if (!s.params.allowSwipeToPrev && s.swipeDirection === 'prev' && currentTranslate > startTranslate) {\n currentTranslate = startTranslate;\n }\n\n\n // Threshold\n if (s.params.threshold > 0) {\n if (Math.abs(diff) > s.params.threshold || allowThresholdMove) {\n if (!allowThresholdMove) {\n allowThresholdMove = true;\n s.touches.startX = s.touches.currentX;\n s.touches.startY = s.touches.currentY;\n currentTranslate = startTranslate;\n s.touches.diff = s.isHorizontal() ? s.touches.currentX - s.touches.startX : s.touches.currentY - s.touches.startY;\n return;\n }\n }\n else {\n currentTranslate = startTranslate;\n return;\n }\n }\n\n if (!s.params.followFinger) return;\n\n // Update active index in free mode\n if (s.params.freeMode || s.params.watchSlidesProgress) {\n s.updateActiveIndex();\n }\n if (s.params.freeMode) {\n //Velocity\n if (velocities.length === 0) {\n velocities.push({\n position: s.touches[s.isHorizontal() ? 'startX' : 'startY'],\n time: touchStartTime\n });\n }\n velocities.push({\n position: s.touches[s.isHorizontal() ? 'currentX' : 'currentY'],\n time: (new window.Date()).getTime()\n });\n }\n // Update progress\n s.updateProgress(currentTranslate);\n // Update translate\n s.setWrapperTranslate(currentTranslate);\n };\n s.onTouchEnd = function (e) {\n if (e.originalEvent) e = e.originalEvent;\n if (allowTouchCallbacks) {\n s.emit('onTouchEnd', s, e);\n }\n allowTouchCallbacks = false;\n if (!isTouched) return;\n //Return Grab Cursor\n if (s.params.grabCursor && isMoved && isTouched && (s.params.allowSwipeToNext === true || s.params.allowSwipeToPrev === true)) {\n s.setGrabCursor(false);\n }\n\n // Time diff\n var touchEndTime = Date.now();\n var timeDiff = touchEndTime - touchStartTime;\n\n // Tap, doubleTap, Click\n if (s.allowClick) {\n s.updateClickedSlide(e);\n s.emit('onTap', s, e);\n if (timeDiff < 300 && (touchEndTime - lastClickTime) > 300) {\n if (clickTimeout) clearTimeout(clickTimeout);\n clickTimeout = setTimeout(function () {\n if (!s) return;\n if (s.params.paginationHide && s.paginationContainer.length > 0 && !$(e.target).hasClass(s.params.bulletClass)) {\n s.paginationContainer.toggleClass(s.params.paginationHiddenClass);\n }\n s.emit('onClick', s, e);\n }, 300);\n\n }\n if (timeDiff < 300 && (touchEndTime - lastClickTime) < 300) {\n if (clickTimeout) clearTimeout(clickTimeout);\n s.emit('onDoubleTap', s, e);\n }\n }\n\n lastClickTime = Date.now();\n setTimeout(function () {\n if (s) s.allowClick = true;\n }, 0);\n\n if (!isTouched || !isMoved || !s.swipeDirection || s.touches.diff === 0 || currentTranslate === startTranslate) {\n isTouched = isMoved = false;\n return;\n }\n isTouched = isMoved = false;\n\n var currentPos;\n if (s.params.followFinger) {\n currentPos = s.rtl ? s.translate : -s.translate;\n }\n else {\n currentPos = -currentTranslate;\n }\n if (s.params.freeMode) {\n if (currentPos < -s.minTranslate()) {\n s.slideTo(s.activeIndex);\n return;\n }\n else if (currentPos > -s.maxTranslate()) {\n if (s.slides.length < s.snapGrid.length) {\n s.slideTo(s.snapGrid.length - 1);\n }\n else {\n s.slideTo(s.slides.length - 1);\n }\n return;\n }\n\n if (s.params.freeModeMomentum) {\n if (velocities.length > 1) {\n var lastMoveEvent = velocities.pop(), velocityEvent = velocities.pop();\n\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n s.velocity = distance / time;\n s.velocity = s.velocity / 2;\n if (Math.abs(s.velocity) < s.params.freeModeMinimumVelocity) {\n s.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 || (new window.Date().getTime() - lastMoveEvent.time) > 300) {\n s.velocity = 0;\n }\n } else {\n s.velocity = 0;\n }\n s.velocity = s.velocity * s.params.freeModeMomentumVelocityRatio;\n\n velocities.length = 0;\n var momentumDuration = 1000 * s.params.freeModeMomentumRatio;\n var momentumDistance = s.velocity * momentumDuration;\n\n var newPosition = s.translate + momentumDistance;\n if (s.rtl) newPosition = - newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(s.velocity) * 20 * s.params.freeModeMomentumBounceRatio;\n if (newPosition < s.maxTranslate()) {\n if (s.params.freeModeMomentumBounce) {\n if (newPosition + s.maxTranslate() < -bounceAmount) {\n newPosition = s.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = s.maxTranslate();\n doBounce = true;\n allowMomentumBounce = true;\n }\n else {\n newPosition = s.maxTranslate();\n }\n }\n else if (newPosition > s.minTranslate()) {\n if (s.params.freeModeMomentumBounce) {\n if (newPosition - s.minTranslate() > bounceAmount) {\n newPosition = s.minTranslate() + bounceAmount;\n }\n afterBouncePosition = s.minTranslate();\n doBounce = true;\n allowMomentumBounce = true;\n }\n else {\n newPosition = s.minTranslate();\n }\n }\n else if (s.params.freeModeSticky) {\n var j = 0,\n nextSlide;\n for (j = 0; j < s.snapGrid.length; j += 1) {\n if (s.snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n\n }\n if (Math.abs(s.snapGrid[nextSlide] - newPosition) < Math.abs(s.snapGrid[nextSlide - 1] - newPosition) || s.swipeDirection === 'next') {\n newPosition = s.snapGrid[nextSlide];\n } else {\n newPosition = s.snapGrid[nextSlide - 1];\n }\n if (!s.rtl) newPosition = - newPosition;\n }\n //Fix duration\n if (s.velocity !== 0) {\n if (s.rtl) {\n momentumDuration = Math.abs((-newPosition - s.translate) / s.velocity);\n }\n else {\n momentumDuration = Math.abs((newPosition - s.translate) / s.velocity);\n }\n }\n else if (s.params.freeModeSticky) {\n s.slideReset();\n return;\n }\n\n if (s.params.freeModeMomentumBounce && doBounce) {\n s.updateProgress(afterBouncePosition);\n s.setWrapperTransition(momentumDuration);\n s.setWrapperTranslate(newPosition);\n s.onTransitionStart();\n s.animating = true;\n s.wrapper.transitionEnd(function () {\n if (!s || !allowMomentumBounce) return;\n s.emit('onMomentumBounce', s);\n\n s.setWrapperTransition(s.params.speed);\n s.setWrapperTranslate(afterBouncePosition);\n s.wrapper.transitionEnd(function () {\n if (!s) return;\n s.onTransitionEnd();\n });\n });\n } else if (s.velocity) {\n s.updateProgress(newPosition);\n s.setWrapperTransition(momentumDuration);\n s.setWrapperTranslate(newPosition);\n s.onTransitionStart();\n if (!s.animating) {\n s.animating = true;\n s.wrapper.transitionEnd(function () {\n if (!s) return;\n s.onTransitionEnd();\n });\n }\n\n } else {\n s.updateProgress(newPosition);\n }\n\n s.updateActiveIndex();\n }\n if (!s.params.freeModeMomentum || timeDiff >= s.params.longSwipesMs) {\n s.updateProgress();\n s.updateActiveIndex();\n }\n return;\n }\n\n // Find current slide\n var i, stopIndex = 0, groupSize = s.slidesSizesGrid[0];\n for (i = 0; i < s.slidesGrid.length; i += s.params.slidesPerGroup) {\n if (typeof s.slidesGrid[i + s.params.slidesPerGroup] !== 'undefined') {\n if (currentPos >= s.slidesGrid[i] && currentPos < s.slidesGrid[i + s.params.slidesPerGroup]) {\n stopIndex = i;\n groupSize = s.slidesGrid[i + s.params.slidesPerGroup] - s.slidesGrid[i];\n }\n }\n else {\n if (currentPos >= s.slidesGrid[i]) {\n stopIndex = i;\n groupSize = s.slidesGrid[s.slidesGrid.length - 1] - s.slidesGrid[s.slidesGrid.length - 2];\n }\n }\n }\n\n // Find current slide size\n var ratio = (currentPos - s.slidesGrid[stopIndex]) / groupSize;\n\n if (timeDiff > s.params.longSwipesMs) {\n // Long touches\n if (!s.params.longSwipes) {\n s.slideTo(s.activeIndex);\n return;\n }\n if (s.swipeDirection === 'next') {\n if (ratio >= s.params.longSwipesRatio) s.slideTo(stopIndex + s.params.slidesPerGroup);\n else s.slideTo(stopIndex);\n\n }\n if (s.swipeDirection === 'prev') {\n if (ratio > (1 - s.params.longSwipesRatio)) s.slideTo(stopIndex + s.params.slidesPerGroup);\n else s.slideTo(stopIndex);\n }\n }\n else {\n // Short swipes\n if (!s.params.shortSwipes) {\n s.slideTo(s.activeIndex);\n return;\n }\n if (s.swipeDirection === 'next') {\n s.slideTo(stopIndex + s.params.slidesPerGroup);\n\n }\n if (s.swipeDirection === 'prev') {\n s.slideTo(stopIndex);\n }\n }\n };\n /*=========================\n Transitions\n ===========================*/\n s._slideTo = function (slideIndex, speed) {\n return s.slideTo(slideIndex, speed, true, true);\n };\n s.slideTo = function (slideIndex, speed, runCallbacks, internal) {\n if (typeof runCallbacks === 'undefined') runCallbacks = true;\n if (typeof slideIndex === 'undefined') slideIndex = 0;\n if (slideIndex < 0) slideIndex = 0;\n s.snapIndex = Math.floor(slideIndex / s.params.slidesPerGroup);\n if (s.snapIndex >= s.snapGrid.length) s.snapIndex = s.snapGrid.length - 1;\n\n var translate = - s.snapGrid[s.snapIndex];\n // Stop autoplay\n if (s.params.autoplay && s.autoplaying) {\n if (internal || !s.params.autoplayDisableOnInteraction) {\n s.pauseAutoplay(speed);\n }\n else {\n s.stopAutoplay();\n }\n }\n // Update progress\n s.updateProgress(translate);\n\n // Normalize slideIndex\n if(s.params.normalizeSlideIndex){\n for (var i = 0; i < s.slidesGrid.length; i++) {\n if (- Math.floor(translate * 100) >= Math.floor(s.slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n\n // Directions locks\n if (!s.params.allowSwipeToNext && translate < s.translate && translate < s.minTranslate()) {\n return false;\n }\n if (!s.params.allowSwipeToPrev && translate > s.translate && translate > s.maxTranslate()) {\n if ((s.activeIndex || 0) !== slideIndex ) return false;\n }\n\n // Update Index\n if (typeof speed === 'undefined') speed = s.params.speed;\n s.previousIndex = s.activeIndex || 0;\n s.activeIndex = slideIndex;\n s.updateRealIndex();\n if ((s.rtl && -translate === s.translate) || (!s.rtl && translate === s.translate)) {\n // Update Height\n if (s.params.autoHeight) {\n s.updateAutoHeight();\n }\n s.updateClasses();\n if (s.params.effect !== 'slide') {\n s.setWrapperTranslate(translate);\n }\n return false;\n }\n s.updateClasses();\n s.onTransitionStart(runCallbacks);\n\n if (speed === 0 || s.browser.lteIE9) {\n s.setWrapperTranslate(translate);\n s.setWrapperTransition(0);\n s.onTransitionEnd(runCallbacks);\n }\n else {\n s.setWrapperTranslate(translate);\n s.setWrapperTransition(speed);\n if (!s.animating) {\n s.animating = true;\n s.wrapper.transitionEnd(function () {\n if (!s) return;\n s.onTransitionEnd(runCallbacks);\n });\n }\n\n }\n\n return true;\n };\n\n s.onTransitionStart = function (runCallbacks) {\n if (typeof runCallbacks === 'undefined') runCallbacks = true;\n if (s.params.autoHeight) {\n s.updateAutoHeight();\n }\n if (s.lazy) s.lazy.onTransitionStart();\n if (runCallbacks) {\n s.emit('onTransitionStart', s);\n if (s.activeIndex !== s.previousIndex) {\n s.emit('onSlideChangeStart', s);\n if (s.activeIndex > s.previousIndex) {\n s.emit('onSlideNextStart', s);\n }\n else {\n s.emit('onSlidePrevStart', s);\n }\n }\n\n }\n };\n s.onTransitionEnd = function (runCallbacks) {\n s.animating = false;\n s.setWrapperTransition(0);\n if (typeof runCallbacks === 'undefined') runCallbacks = true;\n if (s.lazy) s.lazy.onTransitionEnd();\n if (runCallbacks) {\n s.emit('onTransitionEnd', s);\n if (s.activeIndex !== s.previousIndex) {\n s.emit('onSlideChangeEnd', s);\n if (s.activeIndex > s.previousIndex) {\n s.emit('onSlideNextEnd', s);\n }\n else {\n s.emit('onSlidePrevEnd', s);\n }\n }\n }\n if (s.params.history && s.history) {\n s.history.setHistory(s.params.history, s.activeIndex);\n }\n if (s.params.hashnav && s.hashnav) {\n s.hashnav.setHash();\n }\n\n };\n s.slideNext = function (runCallbacks, speed, internal) {\n if (s.params.loop) {\n if (s.animating) return false;\n s.fixLoop();\n var clientLeft = s.container[0].clientLeft;\n return s.slideTo(s.activeIndex + s.params.slidesPerGroup, speed, runCallbacks, internal);\n }\n else return s.slideTo(s.activeIndex + s.params.slidesPerGroup, speed, runCallbacks, internal);\n };\n s._slideNext = function (speed) {\n return s.slideNext(true, speed, true);\n };\n s.slidePrev = function (runCallbacks, speed, internal) {\n if (s.params.loop) {\n if (s.animating) return false;\n s.fixLoop();\n var clientLeft = s.container[0].clientLeft;\n return s.slideTo(s.activeIndex - 1, speed, runCallbacks, internal);\n }\n else return s.slideTo(s.activeIndex - 1, speed, runCallbacks, internal);\n };\n s._slidePrev = function (speed) {\n return s.slidePrev(true, speed, true);\n };\n s.slideReset = function (runCallbacks, speed, internal) {\n return s.slideTo(s.activeIndex, speed, runCallbacks);\n };\n\n s.disableTouchControl = function () {\n s.params.onlyExternal = true;\n return true;\n };\n s.enableTouchControl = function () {\n s.params.onlyExternal = false;\n return true;\n };\n\n /*=========================\n Translate/transition helpers\n ===========================*/\n s.setWrapperTransition = function (duration, byController) {\n s.wrapper.transition(duration);\n if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n s.effects[s.params.effect].setTransition(duration);\n }\n if (s.params.parallax && s.parallax) {\n s.parallax.setTransition(duration);\n }\n if (s.params.scrollbar && s.scrollbar) {\n s.scrollbar.setTransition(duration);\n }\n if (s.params.control && s.controller) {\n s.controller.setTransition(duration, byController);\n }\n s.emit('onSetTransition', s, duration);\n };\n s.setWrapperTranslate = function (translate, updateActiveIndex, byController) {\n var x = 0, y = 0, z = 0;\n if (s.isHorizontal()) {\n x = s.rtl ? -translate : translate;\n }\n else {\n y = translate;\n }\n\n if (s.params.roundLengths) {\n x = round(x);\n y = round(y);\n }\n\n if (!s.params.virtualTranslate) {\n if (s.support.transforms3d) s.wrapper.transform('translate3d(' + x + 'px, ' + y + 'px, ' + z + 'px)');\n else s.wrapper.transform('translate(' + x + 'px, ' + y + 'px)');\n }\n\n s.translate = s.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n var progress;\n var translatesDiff = s.maxTranslate() - s.minTranslate();\n if (translatesDiff === 0) {\n progress = 0;\n }\n else {\n progress = (translate - s.minTranslate()) / (translatesDiff);\n }\n if (progress !== s.progress) {\n s.updateProgress(translate);\n }\n\n if (updateActiveIndex) s.updateActiveIndex();\n if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n s.effects[s.params.effect].setTranslate(s.translate);\n }\n if (s.params.parallax && s.parallax) {\n s.parallax.setTranslate(s.translate);\n }\n if (s.params.scrollbar && s.scrollbar) {\n s.scrollbar.setTranslate(s.translate);\n }\n if (s.params.control && s.controller) {\n s.controller.setTranslate(s.translate, byController);\n }\n s.emit('onSetTranslate', s, s.translate);\n };\n\n s.getTranslate = function (el, axis) {\n var matrix, curTransform, curStyle, transformMatrix;\n\n // automatic axis detection\n if (typeof axis === 'undefined') {\n axis = 'x';\n }\n\n if (s.params.virtualTranslate) {\n return s.rtl ? -s.translate : s.translate;\n }\n\n curStyle = window.getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function(a){\n return a.replace(',','.');\n }).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 }\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)\n curTransform = transformMatrix.m41;\n //Crazy IE10 Matrix\n else if (matrix.length === 16)\n curTransform = parseFloat(matrix[12]);\n //Normal Browsers\n else\n curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n //Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix)\n curTransform = transformMatrix.m42;\n //Crazy IE10 Matrix\n else if (matrix.length === 16)\n curTransform = parseFloat(matrix[13]);\n //Normal Browsers\n else\n curTransform = parseFloat(matrix[5]);\n }\n if (s.rtl && curTransform) curTransform = -curTransform;\n return curTransform || 0;\n };\n s.getWrapperTranslate = function (axis) {\n if (typeof axis === 'undefined') {\n axis = s.isHorizontal() ? 'x' : 'y';\n }\n return s.getTranslate(s.wrapper[0], axis);\n };\n\n /*=========================\n Observer\n ===========================*/\n s.observers = [];\n function initObserver(target, options) {\n options = options || {};\n // create an observer instance\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n mutations.forEach(function (mutation) {\n s.onResize(true);\n s.emit('onObserverUpdate', s, mutation);\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 s.observers.push(observer);\n }\n s.initObservers = function () {\n if (s.params.observeParents) {\n var containerParents = s.container.parents();\n for (var i = 0; i < containerParents.length; i++) {\n initObserver(containerParents[i]);\n }\n }\n\n // Observe container\n initObserver(s.container[0], {childList: false});\n\n // Observe wrapper\n initObserver(s.wrapper[0], {attributes: false});\n };\n s.disconnectObservers = function () {\n for (var i = 0; i < s.observers.length; i++) {\n s.observers[i].disconnect();\n }\n s.observers = [];\n };\n /*=========================\n Loop\n ===========================*/\n // Create looped slides\n s.createLoop = function () {\n // Remove duplicated slides\n s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass).remove();\n\n var slides = s.wrapper.children('.' + s.params.slideClass);\n\n if(s.params.slidesPerView === 'auto' && !s.params.loopedSlides) s.params.loopedSlides = slides.length;\n\n s.loopedSlides = parseInt(s.params.loopedSlides || s.params.slidesPerView, 10);\n s.loopedSlides = s.loopedSlides + s.params.loopAdditionalSlides;\n if (s.loopedSlides > slides.length) {\n s.loopedSlides = slides.length;\n }\n\n var prependSlides = [], appendSlides = [], i;\n slides.each(function (index, el) {\n var slide = $(this);\n if (index < s.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - s.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (i = 0; i < appendSlides.length; i++) {\n s.wrapper.append($(appendSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass));\n }\n for (i = prependSlides.length - 1; i >= 0; i--) {\n s.wrapper.prepend($(prependSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass));\n }\n };\n s.destroyLoop = function () {\n s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass).remove();\n s.slides.removeAttr('data-swiper-slide-index');\n };\n s.reLoop = function (updatePosition) {\n var oldIndex = s.activeIndex - s.loopedSlides;\n s.destroyLoop();\n s.createLoop();\n s.updateSlidesSize();\n if (updatePosition) {\n s.slideTo(oldIndex + s.loopedSlides, 0, false);\n }\n\n };\n s.fixLoop = function () {\n var newIndex;\n //Fix For Negative Oversliding\n if (s.activeIndex < s.loopedSlides) {\n newIndex = s.slides.length - s.loopedSlides * 3 + s.activeIndex;\n newIndex = newIndex + s.loopedSlides;\n s.slideTo(newIndex, 0, false, true);\n }\n //Fix For Positive Oversliding\n else if ((s.params.slidesPerView === 'auto' && s.activeIndex >= s.loopedSlides * 2) || (s.activeIndex > s.slides.length - s.params.slidesPerView * 2)) {\n newIndex = -s.slides.length + s.activeIndex + s.loopedSlides;\n newIndex = newIndex + s.loopedSlides;\n s.slideTo(newIndex, 0, false, true);\n }\n };\n /*=========================\n Append/Prepend/Remove Slides\n ===========================*/\n s.appendSlide = function (slides) {\n if (s.params.loop) {\n s.destroyLoop();\n }\n if (typeof slides === 'object' && slides.length) {\n for (var i = 0; i < slides.length; i++) {\n if (slides[i]) s.wrapper.append(slides[i]);\n }\n }\n else {\n s.wrapper.append(slides);\n }\n if (s.params.loop) {\n s.createLoop();\n }\n if (!(s.params.observer && s.support.observer)) {\n s.update(true);\n }\n };\n s.prependSlide = function (slides) {\n if (s.params.loop) {\n s.destroyLoop();\n }\n var newActiveIndex = s.activeIndex + 1;\n if (typeof slides === 'object' && slides.length) {\n for (var i = 0; i < slides.length; i++) {\n if (slides[i]) s.wrapper.prepend(slides[i]);\n }\n newActiveIndex = s.activeIndex + slides.length;\n }\n else {\n s.wrapper.prepend(slides);\n }\n if (s.params.loop) {\n s.createLoop();\n }\n if (!(s.params.observer && s.support.observer)) {\n s.update(true);\n }\n s.slideTo(newActiveIndex, 0, false);\n };\n s.removeSlide = function (slidesIndexes) {\n if (s.params.loop) {\n s.destroyLoop();\n s.slides = s.wrapper.children('.' + s.params.slideClass);\n }\n var newActiveIndex = s.activeIndex,\n indexToRemove;\n if (typeof slidesIndexes === 'object' && slidesIndexes.length) {\n for (var i = 0; i < slidesIndexes.length; i++) {\n indexToRemove = slidesIndexes[i];\n if (s.slides[indexToRemove]) s.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex--;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n else {\n indexToRemove = slidesIndexes;\n if (s.slides[indexToRemove]) s.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex--;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (s.params.loop) {\n s.createLoop();\n }\n\n if (!(s.params.observer && s.support.observer)) {\n s.update(true);\n }\n if (s.params.loop) {\n s.slideTo(newActiveIndex + s.loopedSlides, 0, false);\n }\n else {\n s.slideTo(newActiveIndex, 0, false);\n }\n\n };\n s.removeAllSlides = function () {\n var slidesIndexes = [];\n for (var i = 0; i < s.slides.length; i++) {\n slidesIndexes.push(i);\n }\n s.removeSlide(slidesIndexes);\n };\n\n\n /*=========================\n Effects\n ===========================*/\n s.effects = {\n fade: {\n setTranslate: function () {\n for (var i = 0; i < s.slides.length; i++) {\n var slide = s.slides.eq(i);\n var offset = slide[0].swiperSlideOffset;\n var tx = -offset;\n if (!s.params.virtualTranslate) tx = tx - s.translate;\n var ty = 0;\n if (!s.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n var slideOpacity = s.params.fade.crossFade ?\n Math.max(1 - Math.abs(slide[0].progress), 0) :\n 1 + Math.min(Math.max(slide[0].progress, -1), 0);\n slide\n .css({\n opacity: slideOpacity\n })\n .transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px)');\n\n }\n\n },\n setTransition: function (duration) {\n s.slides.transition(duration);\n if (s.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n s.slides.transitionEnd(function () {\n if (eventTriggered) return;\n if (!s) return;\n eventTriggered = true;\n s.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'];\n for (var i = 0; i < triggerEvents.length; i++) {\n s.wrapper.trigger(triggerEvents[i]);\n }\n });\n }\n }\n },\n flip: {\n setTranslate: function () {\n for (var i = 0; i < s.slides.length; i++) {\n var slide = s.slides.eq(i);\n var progress = slide[0].progress;\n if (s.params.flip.limitRotation) {\n progress = Math.max(Math.min(slide[0].progress, 1), -1);\n }\n var offset = slide[0].swiperSlideOffset;\n var rotate = -180 * progress,\n rotateY = rotate,\n rotateX = 0,\n tx = -offset,\n ty = 0;\n if (!s.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n }\n else if (s.rtl) {\n rotateY = -rotateY;\n }\n\n slide[0].style.zIndex = -Math.abs(Math.round(progress)) + s.slides.length;\n\n if (s.params.flip.slideShadows) {\n //Set shadows\n var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '\"></div>');\n slide.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '\"></div>');\n slide.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 slide\n .transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)');\n }\n },\n setTransition: function (duration) {\n s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n if (s.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n s.slides.eq(s.activeIndex).transitionEnd(function () {\n if (eventTriggered) return;\n if (!s) return;\n if (!$(this).hasClass(s.params.slideActiveClass)) return;\n eventTriggered = true;\n s.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'];\n for (var i = 0; i < triggerEvents.length; i++) {\n s.wrapper.trigger(triggerEvents[i]);\n }\n });\n }\n }\n },\n cube: {\n setTranslate: function () {\n var wrapperRotate = 0, cubeShadow;\n if (s.params.cube.shadow) {\n if (s.isHorizontal()) {\n cubeShadow = s.wrapper.find('.swiper-cube-shadow');\n if (cubeShadow.length === 0) {\n cubeShadow = $('<div class=\"swiper-cube-shadow\"></div>');\n s.wrapper.append(cubeShadow);\n }\n cubeShadow.css({height: s.width + 'px'});\n }\n else {\n cubeShadow = s.container.find('.swiper-cube-shadow');\n if (cubeShadow.length === 0) {\n cubeShadow = $('<div class=\"swiper-cube-shadow\"></div>');\n s.container.append(cubeShadow);\n }\n }\n }\n for (var i = 0; i < s.slides.length; i++) {\n var slide = s.slides.eq(i);\n var slideAngle = i * 90;\n var round = Math.floor(slideAngle / 360);\n if (s.rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n var progress = Math.max(Math.min(slide[0].progress, 1), -1);\n var tx = 0, ty = 0, tz = 0;\n if (i % 4 === 0) {\n tx = - round * 4 * s.size;\n tz = 0;\n }\n else if ((i - 1) % 4 === 0) {\n tx = 0;\n tz = - round * 4 * s.size;\n }\n else if ((i - 2) % 4 === 0) {\n tx = s.size + round * 4 * s.size;\n tz = s.size;\n }\n else if ((i - 3) % 4 === 0) {\n tx = - s.size;\n tz = 3 * s.size + s.size * 4 * round;\n }\n if (s.rtl) {\n tx = -tx;\n }\n\n if (!s.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n var transform = 'rotateX(' + (s.isHorizontal() ? 0 : -slideAngle) + 'deg) rotateY(' + (s.isHorizontal() ? slideAngle : 0) + 'deg) translate3d(' + tx + 'px, ' + ty + 'px, ' + tz + 'px)';\n if (progress <= 1 && progress > -1) {\n wrapperRotate = i * 90 + progress * 90;\n if (s.rtl) wrapperRotate = -i * 90 - progress * 90;\n }\n slide.transform(transform);\n if (s.params.cube.slideShadows) {\n //Set shadows\n var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '\"></div>');\n slide.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '\"></div>');\n slide.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 s.wrapper.css({\n '-webkit-transform-origin': '50% 50% -' + (s.size / 2) + 'px',\n '-moz-transform-origin': '50% 50% -' + (s.size / 2) + 'px',\n '-ms-transform-origin': '50% 50% -' + (s.size / 2) + 'px',\n 'transform-origin': '50% 50% -' + (s.size / 2) + 'px'\n });\n\n if (s.params.cube.shadow) {\n if (s.isHorizontal()) {\n cubeShadow.transform('translate3d(0px, ' + (s.width / 2 + s.params.cube.shadowOffset) + 'px, ' + (-s.width / 2) + 'px) rotateX(90deg) rotateZ(0deg) scale(' + (s.params.cube.shadowScale) + ')');\n }\n else {\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n var scale1 = s.params.cube.shadowScale,\n scale2 = s.params.cube.shadowScale / multiplier,\n offset = s.params.cube.shadowOffset;\n cubeShadow.transform('scale3d(' + scale1 + ', 1, ' + scale2 + ') translate3d(0px, ' + (s.height / 2 + offset) + 'px, ' + (-s.height / 2 / scale2) + 'px) rotateX(-90deg)');\n }\n }\n var zFactor = (s.isSafari || s.isUiWebView) ? (-s.size / 2) : 0;\n s.wrapper.transform('translate3d(0px,0,' + zFactor + 'px) rotateX(' + (s.isHorizontal() ? 0 : wrapperRotate) + 'deg) rotateY(' + (s.isHorizontal() ? -wrapperRotate : 0) + 'deg)');\n },\n setTransition: function (duration) {\n s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n if (s.params.cube.shadow && !s.isHorizontal()) {\n s.container.find('.swiper-cube-shadow').transition(duration);\n }\n }\n },\n coverflow: {\n setTranslate: function () {\n var transform = s.translate;\n var center = s.isHorizontal() ? -transform + s.width / 2 : -transform + s.height / 2;\n var rotate = s.isHorizontal() ? s.params.coverflow.rotate: -s.params.coverflow.rotate;\n var translate = s.params.coverflow.depth;\n //Each slide offset from center\n for (var i = 0, length = s.slides.length; i < length; i++) {\n var slide = s.slides.eq(i);\n var slideSize = s.slidesSizesGrid[i];\n var slideOffset = slide[0].swiperSlideOffset;\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * s.params.coverflow.modifier;\n\n var rotateY = s.isHorizontal() ? rotate * offsetMultiplier : 0;\n var rotateX = s.isHorizontal() ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n var translateZ = -translate * Math.abs(offsetMultiplier);\n\n var translateY = s.isHorizontal() ? 0 : s.params.coverflow.stretch * (offsetMultiplier);\n var translateX = s.isHorizontal() ? s.params.coverflow.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 var slideTransform = 'translate3d(' + translateX + 'px,' + translateY + 'px,' + translateZ + 'px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)';\n\n slide.transform(slideTransform);\n slide[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (s.params.coverflow.slideShadows) {\n //Set shadows\n var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '\"></div>');\n slide.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '\"></div>');\n slide.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfter.length) shadowAfter[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\n }\n }\n\n //Set correct perspective for IE10\n if (s.browser.ie) {\n var ws = s.wrapper[0].style;\n ws.perspectiveOrigin = center + 'px 50%';\n }\n },\n setTransition: function (duration) {\n s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n }\n };\n\n\n /*=========================\n Plugins API. Collect all and init all plugins\n ===========================*/\n s._plugins = [];\n for (var plugin in s.plugins) {\n var p = s.plugins[plugin](s, s.params[plugin]);\n if (p) s._plugins.push(p);\n }\n // Method to call all plugins event/method\n s.callPlugins = function (eventName) {\n for (var i = 0; i < s._plugins.length; i++) {\n if (eventName in s._plugins[i]) {\n s._plugins[i][eventName](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n }\n }\n };\n\n\n /*=========================\n Events/Callbacks/Plugins Emitter\n ===========================*/\n function normalizeEventName (eventName) {\n if (eventName.indexOf('on') !== 0) {\n if (eventName[0] !== eventName[0].toUpperCase()) {\n eventName = 'on' + eventName[0].toUpperCase() + eventName.substring(1);\n }\n else {\n eventName = 'on' + eventName;\n }\n }\n return eventName;\n }\n s.emitterEventListeners = {\n\n };\n s.emit = function (eventName) {\n // Trigger callbacks\n if (s.params[eventName]) {\n s.params[eventName](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n }\n var i;\n // Trigger events\n if (s.emitterEventListeners[eventName]) {\n for (i = 0; i < s.emitterEventListeners[eventName].length; i++) {\n s.emitterEventListeners[eventName][i](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n }\n }\n // Trigger plugins\n if (s.callPlugins) s.callPlugins(eventName, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n };\n s.on = function (eventName, handler) {\n eventName = normalizeEventName(eventName);\n if (!s.emitterEventListeners[eventName]) s.emitterEventListeners[eventName] = [];\n s.emitterEventListeners[eventName].push(handler);\n return s;\n };\n s.off = function (eventName, handler) {\n var i;\n eventName = normalizeEventName(eventName);\n if (typeof handler === 'undefined') {\n // Remove all handlers for such event\n s.emitterEventListeners[eventName] = [];\n return s;\n }\n if (!s.emitterEventListeners[eventName] || s.emitterEventListeners[eventName].length === 0) return;\n for (i = 0; i < s.emitterEventListeners[eventName].length; i++) {\n if(s.emitterEventListeners[eventName][i] === handler) s.emitterEventListeners[eventName].splice(i, 1);\n }\n return s;\n };\n s.once = function (eventName, handler) {\n eventName = normalizeEventName(eventName);\n var _handler = function () {\n handler(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);\n s.off(eventName, _handler);\n };\n s.on(eventName, _handler);\n return s;\n };\n\n\n /*=========================\n Init/Destroy\n ===========================*/\n s.init = function () {\n if (s.params.loop) s.createLoop();\n s.updateContainerSize();\n s.updateSlidesSize();\n s.updatePagination();\n if (s.params.scrollbar && s.scrollbar) {\n s.scrollbar.set();\n if (s.params.scrollbarDraggable) {\n s.scrollbar.enableDraggable();\n }\n }\n if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n if (!s.params.loop) s.updateProgress();\n s.effects[s.params.effect].setTranslate();\n }\n if (s.params.loop) {\n s.slideTo(s.params.initialSlide + s.loopedSlides, 0, s.params.runCallbacksOnInit);\n }\n else {\n s.slideTo(s.params.initialSlide, 0, s.params.runCallbacksOnInit);\n if (s.params.initialSlide === 0) {\n if (s.parallax && s.params.parallax) s.parallax.setTranslate();\n if (s.lazy && s.params.lazyLoading) {\n s.lazy.load();\n s.lazy.initialImageLoaded = true;\n }\n }\n }\n s.attachEvents();\n if (s.params.observer && s.support.observer) {\n s.initObservers();\n }\n if (s.params.preloadImages && !s.params.lazyLoading) {\n s.preloadImages();\n }\n if (s.params.zoom && s.zoom) {\n s.zoom.init();\n }\n if (s.params.autoplay) {\n s.startAutoplay();\n }\n if (s.params.keyboardControl) {\n if (s.enableKeyboardControl) s.enableKeyboardControl();\n }\n if (s.params.mousewheelControl) {\n if (s.enableMousewheelControl) s.enableMousewheelControl();\n }\n // Deprecated hashnavReplaceState changed to replaceState for use in hashnav and history\n if (s.params.hashnavReplaceState) {\n s.params.replaceState = s.params.hashnavReplaceState;\n }\n if (s.params.history) {\n if (s.history) s.history.init();\n }\n if (s.params.hashnav) {\n if (s.hashnav) s.hashnav.init();\n }\n if (s.params.a11y && s.a11y) s.a11y.init();\n s.emit('onInit', s);\n };\n\n // Cleanup dynamic styles\n s.cleanupStyles = function () {\n // Container\n s.container.removeClass(s.classNames.join(' ')).removeAttr('style');\n\n // Wrapper\n s.wrapper.removeAttr('style');\n\n // Slides\n if (s.slides && s.slides.length) {\n s.slides\n .removeClass([\n s.params.slideVisibleClass,\n s.params.slideActiveClass,\n s.params.slideNextClass,\n s.params.slidePrevClass\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-column')\n .removeAttr('data-swiper-row');\n }\n\n // Pagination/Bullets\n if (s.paginationContainer && s.paginationContainer.length) {\n s.paginationContainer.removeClass(s.params.paginationHiddenClass);\n }\n if (s.bullets && s.bullets.length) {\n s.bullets.removeClass(s.params.bulletActiveClass);\n }\n\n // Buttons\n if (s.params.prevButton) $(s.params.prevButton).removeClass(s.params.buttonDisabledClass);\n if (s.params.nextButton) $(s.params.nextButton).removeClass(s.params.buttonDisabledClass);\n\n // Scrollbar\n if (s.params.scrollbar && s.scrollbar) {\n if (s.scrollbar.track && s.scrollbar.track.length) s.scrollbar.track.removeAttr('style');\n if (s.scrollbar.drag && s.scrollbar.drag.length) s.scrollbar.drag.removeAttr('style');\n }\n };\n\n // Destroy\n s.destroy = function (deleteInstance, cleanupStyles) {\n // Detach evebts\n s.detachEvents();\n // Stop autoplay\n s.stopAutoplay();\n // Disable draggable\n if (s.params.scrollbar && s.scrollbar) {\n if (s.params.scrollbarDraggable) {\n s.scrollbar.disableDraggable();\n }\n }\n // Destroy loop\n if (s.params.loop) {\n s.destroyLoop();\n }\n // Cleanup styles\n if (cleanupStyles) {\n s.cleanupStyles();\n }\n // Disconnect observer\n s.disconnectObservers();\n\n // Destroy zoom\n if (s.params.zoom && s.zoom) {\n s.zoom.destroy();\n }\n // Disable keyboard/mousewheel\n if (s.params.keyboardControl) {\n if (s.disableKeyboardControl) s.disableKeyboardControl();\n }\n if (s.params.mousewheelControl) {\n if (s.disableMousewheelControl) s.disableMousewheelControl();\n }\n // Disable a11y\n if (s.params.a11y && s.a11y) s.a11y.destroy();\n // Delete history popstate\n if (s.params.history && !s.params.replaceState) {\n window.removeEventListener('popstate', s.history.setHistoryPopState);\n }\n if (s.params.hashnav && s.hashnav) {\n s.hashnav.destroy();\n }\n // Destroy callback\n s.emit('onDestroy');\n // Delete instance\n if (deleteInstance !== false) s = null;\n };\n\n s.init();\n\n\n\n // Return swiper instance\n return s;\n };\n\n\n /*==================================================\n Prototype\n ====================================================*/\n Swiper.prototype = {\n isSafari: (function () {\n var ua = window.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n })(),\n isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n isArray: function (arr) {\n return Object.prototype.toString.apply(arr) === '[object Array]';\n },\n /*==================================================\n Browser\n ====================================================*/\n browser: {\n ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled,\n ieTouch: (window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1) || (window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1),\n lteIE9: (function() {\n // create temporary DIV\n var div = document.createElement('div');\n // add content to tmp DIV which is wrapped into the IE HTML conditional statement\n div.innerHTML = '<!--[if lte IE 9]><i></i><![endif]-->';\n // return true / false value based on what will browser render\n return div.getElementsByTagName('i').length === 1;\n })()\n },\n /*==================================================\n Devices\n ====================================================*/\n device: (function () {\n var ua = window.navigator.userAgent;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/);\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n return {\n ios: ipad || iphone || ipod,\n android: android\n };\n })(),\n /*==================================================\n Feature Detection\n ====================================================*/\n support: {\n touch : (window.Modernizr && Modernizr.touch === true) || (function () {\n return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);\n })(),\n\n transforms3d : (window.Modernizr && Modernizr.csstransforms3d === true) || (function () {\n var div = document.createElement('div').style;\n return ('webkitPerspective' in div || 'MozPerspective' in div || 'OPerspective' in div || 'MsPerspective' in div || 'perspective' in div);\n })(),\n\n flexbox: (function () {\n var div = document.createElement('div').style;\n var styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');\n for (var i = 0; i < styles.length; i++) {\n if (styles[i] in div) return true;\n }\n })(),\n\n observer: (function () {\n return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n })(),\n\n passiveListener: (function () {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {}\n return supportsPassive;\n })(),\n\n gestures: (function () {\n return 'ongesturestart' in window;\n })()\n },\n /*==================================================\n Plugins\n ====================================================*/\n plugins: {}\n };\n\n\n /*===========================\n Dom7 Library\n ===========================*/\n var Dom7 = (function () {\n var Dom7 = function (arr) {\n var _this = this, i = 0;\n // Create array-like object\n for (i = 0; i < arr.length; i++) {\n _this[i] = arr[i];\n }\n _this.length = arr.length;\n // Return collection with methods\n return this;\n };\n var $ = function (selector, context) {\n var arr = [], 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 var els, tempParent, html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n tempParent = document.createElement(toCreate);\n tempParent.innerHTML = selector;\n for (i = 0; i < tempParent.childNodes.length; i++) {\n arr.push(tempParent.childNodes[i]);\n }\n }\n else {\n if (!context && selector[0] === '#' && !selector.match(/[ .<>:~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.split('#')[1])];\n }\n else {\n // Other selectors\n els = (context || document).querySelectorAll(selector);\n }\n for (i = 0; i < els.length; i++) {\n if (els[i]) arr.push(els[i]);\n }\n }\n }\n // Node/element\n else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n }\n //Array of elements or instance of Dom\n else if (selector.length > 0 && selector[0].nodeType) {\n for (i = 0; i < selector.length; i++) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n };\n Dom7.prototype = {\n // Classes and attriutes\n addClass: function (className) {\n if (typeof className === 'undefined') {\n return this;\n }\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i++) {\n for (var j = 0; j < this.length; j++) {\n this[j].classList.add(classes[i]);\n }\n }\n return this;\n },\n removeClass: function (className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i++) {\n for (var j = 0; j < this.length; j++) {\n this[j].classList.remove(classes[i]);\n }\n }\n return this;\n },\n hasClass: function (className) {\n if (!this[0]) return false;\n else return this[0].classList.contains(className);\n },\n toggleClass: function (className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i++) {\n for (var j = 0; j < this.length; j++) {\n this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n },\n attr: function (attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n else return undefined;\n }\n else {\n // Set attrs\n for (var i = 0; i < this.length; i++) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n }\n else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n }\n },\n removeAttr: function (attr) {\n for (var i = 0; i < this.length; i++) {\n this[i].removeAttribute(attr);\n }\n return this;\n },\n data: function (key, value) {\n if (typeof value === 'undefined') {\n // Get value\n if (this[0]) {\n var dataKey = this[0].getAttribute('data-' + key);\n if (dataKey) return dataKey;\n else if (this[0].dom7ElementDataStorage && (key in this[0].dom7ElementDataStorage)) return this[0].dom7ElementDataStorage[key];\n else return undefined;\n }\n else return undefined;\n }\n else {\n // Set value\n for (var i = 0; i < this.length; i++) {\n var el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n }\n },\n // Transforms\n transform : function (transform) {\n for (var i = 0; i < this.length; i++) {\n var elStyle = this[i].style;\n elStyle.webkitTransform = elStyle.MsTransform = elStyle.msTransform = elStyle.MozTransform = elStyle.OTransform = elStyle.transform = transform;\n }\n return this;\n },\n transition: function (duration) {\n if (typeof duration !== 'string') {\n duration = duration + 'ms';\n }\n for (var i = 0; i < this.length; i++) {\n var elStyle = this[i].style;\n elStyle.webkitTransitionDuration = elStyle.MsTransitionDuration = elStyle.msTransitionDuration = elStyle.MozTransitionDuration = elStyle.OTransitionDuration = elStyle.transitionDuration = duration;\n }\n return this;\n },\n //Events\n on: function (eventName, targetSelector, listener, capture) {\n function handleLiveEvent(e) {\n var target = e.target;\n if ($(target).is(targetSelector)) listener.call(target, e);\n else {\n var parents = $(target).parents();\n for (var k = 0; k < parents.length; k++) {\n if ($(parents[k]).is(targetSelector)) listener.call(parents[k], e);\n }\n }\n }\n var events = eventName.split(' ');\n var i, j;\n for (i = 0; i < this.length; i++) {\n if (typeof targetSelector === 'function' || targetSelector === false) {\n // Usual events\n if (typeof targetSelector === 'function') {\n listener = arguments[1];\n capture = arguments[2] || false;\n }\n for (j = 0; j < events.length; j++) {\n this[i].addEventListener(events[j], listener, capture);\n }\n }\n else {\n //Live events\n for (j = 0; j < events.length; j++) {\n if (!this[i].dom7LiveListeners) this[i].dom7LiveListeners = [];\n this[i].dom7LiveListeners.push({listener: listener, liveListener: handleLiveEvent});\n this[i].addEventListener(events[j], handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n },\n off: function (eventName, targetSelector, listener, capture) {\n var events = eventName.split(' ');\n for (var i = 0; i < events.length; i++) {\n for (var j = 0; j < this.length; j++) {\n if (typeof targetSelector === 'function' || targetSelector === false) {\n // Usual events\n if (typeof targetSelector === 'function') {\n listener = arguments[1];\n capture = arguments[2] || false;\n }\n this[j].removeEventListener(events[i], listener, capture);\n }\n else {\n // Live event\n if (this[j].dom7LiveListeners) {\n for (var k = 0; k < this[j].dom7LiveListeners.length; k++) {\n if (this[j].dom7LiveListeners[k].listener === listener) {\n this[j].removeEventListener(events[i], this[j].dom7LiveListeners[k].liveListener, capture);\n }\n }\n }\n }\n }\n }\n return this;\n },\n once: function (eventName, targetSelector, listener, capture) {\n var dom = this;\n if (typeof targetSelector === 'function') {\n targetSelector = false;\n listener = arguments[1];\n capture = arguments[2];\n }\n function proxy(e) {\n listener(e);\n dom.off(eventName, targetSelector, proxy, capture);\n }\n dom.on(eventName, targetSelector, proxy, capture);\n },\n trigger: function (eventName, eventData) {\n for (var i = 0; i < this.length; i++) {\n var evt;\n try {\n evt = new window.CustomEvent(eventName, {detail: eventData, bubbles: true, cancelable: true});\n }\n catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(eventName, true, true);\n evt.detail = eventData;\n }\n this[i].dispatchEvent(evt);\n }\n return this;\n },\n transitionEnd: function (callback) {\n var events = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'],\n i, j, dom = this;\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++) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i++) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n },\n // Sizing/Styles\n width: function () {\n if (this[0] === window) {\n return window.innerWidth;\n }\n else {\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n else {\n return null;\n }\n }\n },\n outerWidth: function (includeMargins) {\n if (this.length > 0) {\n if (includeMargins)\n return this[0].offsetWidth + parseFloat(this.css('margin-right')) + parseFloat(this.css('margin-left'));\n else\n return this[0].offsetWidth;\n }\n else return null;\n },\n height: function () {\n if (this[0] === window) {\n return window.innerHeight;\n }\n else {\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n else {\n return null;\n }\n }\n },\n outerHeight: function (includeMargins) {\n if (this.length > 0) {\n if (includeMargins)\n return this[0].offsetHeight + parseFloat(this.css('margin-top')) + parseFloat(this.css('margin-bottom'));\n else\n return this[0].offsetHeight;\n }\n else return null;\n },\n offset: function () {\n if (this.length > 0) {\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = window.pageYOffset || el.scrollTop;\n var scrollLeft = window.pageXOffset || el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n else {\n return null;\n }\n },\n css: function (props, value) {\n var i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n }\n else {\n for (i = 0; i < this.length; i++) {\n for (var 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++) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n },\n\n //Dom manipulation\n each: function (callback) {\n for (var i = 0; i < this.length; i++) {\n callback.call(this[i], i, this[i]);\n }\n return this;\n },\n html: function (html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n else {\n for (var i = 0; i < this.length; i++) {\n this[i].innerHTML = html;\n }\n return this;\n }\n },\n text: function (text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n else return null;\n }\n else {\n for (var i = 0; i < this.length; i++) {\n this[i].textContent = text;\n }\n return this;\n }\n },\n is: function (selector) {\n if (!this[0]) return false;\n var compareWith, i;\n if (typeof selector === 'string') {\n var el = this[0];\n if (el === document) return selector === document;\n if (el === window) return selector === window;\n\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.mozMatchesSelector) return el.mozMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n else {\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i++) {\n if (compareWith[i] === this[0]) return true;\n }\n return false;\n }\n }\n else if (selector === document) return this[0] === document;\n else if (selector === window) return this[0] === window;\n else {\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i++) {\n if (compareWith[i] === this[0]) return true;\n }\n return false;\n }\n return false;\n }\n\n },\n index: function () {\n if (this[0]) {\n var child = this[0];\n var i = 0;\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i++;\n }\n return i;\n }\n else return undefined;\n },\n eq: function (index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n var 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 else return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n },\n append: function (newChild) {\n var i, j;\n for (i = 0; i < this.length; i++) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n }\n else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j++) {\n this[i].appendChild(newChild[j]);\n }\n }\n else {\n this[i].appendChild(newChild);\n }\n }\n return this;\n },\n prepend: function (newChild) {\n var i, j;\n for (i = 0; i < this.length; i++) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j--) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n // this[i].insertAdjacentHTML('afterbegin', newChild);\n }\n else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j++) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n }\n else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n },\n insertBefore: function (selector) {\n var before = $(selector);\n for (var i = 0; i < this.length; i++) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n }\n else if (before.length > 1) {\n for (var j = 0; j < before.length; j++) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n },\n insertAfter: function (selector) {\n var after = $(selector);\n for (var i = 0; i < this.length; i++) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n }\n else if (after.length > 1) {\n for (var j = 0; j < after.length; j++) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n },\n next: function (selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) return new Dom7([this[0].nextElementSibling]);\n else return new Dom7([]);\n }\n else {\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n else return new Dom7([]);\n }\n }\n else return new Dom7([]);\n },\n nextAll: function (selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n var next = el.nextElementSibling;\n if (selector) {\n if($(next).is(selector)) nextEls.push(next);\n }\n else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n },\n prev: function (selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].previousElementSibling && $(this[0].previousElementSibling).is(selector)) return new Dom7([this[0].previousElementSibling]);\n else return new Dom7([]);\n }\n else {\n if (this[0].previousElementSibling) return new Dom7([this[0].previousElementSibling]);\n else return new Dom7([]);\n }\n }\n else return new Dom7([]);\n },\n prevAll: function (selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n var prev = el.previousElementSibling;\n if (selector) {\n if($(prev).is(selector)) prevEls.push(prev);\n }\n else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n },\n parent: function (selector) {\n var parents = [];\n for (var i = 0; i < this.length; i++) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n }\n else {\n parents.push(this[i].parentNode);\n }\n }\n return $($.unique(parents));\n },\n parents: function (selector) {\n var parents = [];\n for (var i = 0; i < this.length; i++) {\n var parent = this[i].parentNode;\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n }\n else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $($.unique(parents));\n },\n find : function (selector) {\n var foundElements = [];\n for (var i = 0; i < this.length; i++) {\n var found = this[i].querySelectorAll(selector);\n for (var j = 0; j < found.length; j++) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n },\n children: function (selector) {\n var children = [];\n for (var i = 0; i < this.length; i++) {\n var childNodes = this[i].childNodes;\n\n for (var j = 0; j < childNodes.length; j++) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n }\n else {\n if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) children.push(childNodes[j]);\n }\n }\n }\n return new Dom7($.unique(children));\n },\n remove: function () {\n for (var i = 0; i < this.length; i++) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n },\n add: function () {\n var dom = this;\n var i, j;\n for (i = 0; i < arguments.length; i++) {\n var toAdd = $(arguments[i]);\n for (j = 0; j < toAdd.length; j++) {\n dom[dom.length] = toAdd[j];\n dom.length++;\n }\n }\n return dom;\n }\n };\n $.fn = Dom7.prototype;\n $.unique = function (arr) {\n var unique = [];\n for (var i = 0; i < arr.length; i++) {\n if (unique.indexOf(arr[i]) === -1) unique.push(arr[i]);\n }\n return unique;\n };\n\n return $;\n })();\n\n\n /*===========================\n Get Dom libraries\n ===========================*/\n var swiperDomPlugins = ['jQuery', 'Zepto', 'Dom7'];\n for (var i = 0; i < swiperDomPlugins.length; i++) {\n \tif (window[swiperDomPlugins[i]]) {\n \t\taddLibraryPlugin(window[swiperDomPlugins[i]]);\n \t}\n }\n // Required DOM Plugins\n var domLib;\n if (typeof Dom7 === 'undefined') {\n \tdomLib = window.Dom7 || window.Zepto || window.jQuery;\n }\n else {\n \tdomLib = Dom7;\n }\n\n\n /*===========================\n Add .swiper plugin from Dom libraries\n ===========================*/\n function addLibraryPlugin(lib) {\n lib.fn.swiper = function (params) {\n var firstInstance;\n lib(this).each(function () {\n var s = new Swiper(this, params);\n if (!firstInstance) firstInstance = s;\n });\n return firstInstance;\n };\n }\n\n if (domLib) {\n if (!('transitionEnd' in domLib.fn)) {\n domLib.fn.transitionEnd = function (callback) {\n var events = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'],\n i, j, dom = this;\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++) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i++) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n };\n }\n if (!('transform' in domLib.fn)) {\n domLib.fn.transform = function (transform) {\n for (var i = 0; i < this.length; i++) {\n var elStyle = this[i].style;\n elStyle.webkitTransform = elStyle.MsTransform = elStyle.msTransform = elStyle.MozTransform = elStyle.OTransform = elStyle.transform = transform;\n }\n return this;\n };\n }\n if (!('transition' in domLib.fn)) {\n domLib.fn.transition = function (duration) {\n if (typeof duration !== 'string') {\n duration = duration + 'ms';\n }\n for (var i = 0; i < this.length; i++) {\n var elStyle = this[i].style;\n elStyle.webkitTransitionDuration = elStyle.MsTransitionDuration = elStyle.msTransitionDuration = elStyle.MozTransitionDuration = elStyle.OTransitionDuration = elStyle.transitionDuration = duration;\n }\n return this;\n };\n }\n if (!('outerWidth' in domLib.fn)) {\n domLib.fn.outerWidth = function (includeMargins) {\n if (this.length > 0) {\n if (includeMargins)\n return this[0].offsetWidth + parseFloat(this.css('margin-right')) + parseFloat(this.css('margin-left'));\n else\n return this[0].offsetWidth;\n }\n else return null;\n };\n }\n }\n\n\n window.Swiper = Swiper;\n})();\n\nexport default window.Swiper\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/nespresso-components/swiper/swiper.core.js","<style lang=\"sass\">\n @import swiper\n</style>\n\n<template>\n <div class=\"v_swiper\" :id=\"'v_swiper_id_' + _uid\">\n <slot name=\"button-prev\"></slot>\n <div class=\"v_swiperOverflow\">\n <div class=\"swiper-container\" ref=\"container\">\n <slot name=\"parallax-bg\"></slot>\n <div v-if=\"isDiv\" class=\"swiper-wrapper\" ref=\"wrapper\">\n <slot></slot>\n </div>\n <ul v-else class=\"swiper-wrapper\" ref=\"wrapper\">\n <slot></slot>\n </ul>\n </div>\n </div>\n <slot name=\"button-next\"></slot>\n <slot name=\"pagination\"></slot>\n <slot name=\"scrollbar\"></slot>\n </div>\n</template>\n\n<script>\nimport { css } from 'gaspard'\nimport Swiper from './swiper.core'\nimport isTouch from 'nespresso-library/src/utils/isTouch'\n\nexport default {\n name: 'swiper',\n props: {\n options: {\n type: Object\n },\n isDiv: {\n type: Boolean,\n default: false\n }\n },\n mounted() {\n const mount = () => {\n if (!this.swiper) {\n delete this.options.nextTick\n let options = Object.assign({}, this.options, this.refineClasses())\n options.virtualTranslate = isTouch // For addToCart with QS on Touch Devices\n this.swiper = new Swiper(this.$refs.container, options)\n }\n }\n\n this.options.nextTick ? this.$nextTick(mount) : mount()\n },\n methods: {\n refineClasses () {\n let overwritedOptions = {}\n if (this.options) {\n if (this.options.pagination) {\n overwritedOptions.pagination = `#v_swiper_id_${this._uid} ${this.options.pagination}`\n if (!this.options.paginationBulletRender) {\n this.options.paginationBulletRender = (swiper, index, className) => {\n return '<div><span class=\"' + className + '\">' + (index + 1) + '</span></div>'\n }\n }\n }\n if (this.options.nextButton) {\n overwritedOptions.nextButton = `#v_swiper_id_${this._uid} ${this.options.nextButton}`\n }\n if (this.options.prevButton) {\n overwritedOptions.prevButton = `#v_swiper_id_${this._uid} ${this.options.prevButton}`\n }\n if (this.options.scrollbar) {\n overwritedOptions.scrollbar = `#v_swiper_id_${this._uid} ${this.options.scrollbar}`\n }\n if (this.options.virtualTranslate) {\n this.options.onSetTranslate = (swiper) => {\n css(this.$refs.wrapper, 'left', swiper.translate + 'px')\n }\n }\n }\n return overwritedOptions\n }\n },\n updated(){\n if (this.swiper) {\n this.swiper.update()\n }\n },\n beforeDestroy() {\n if (this.swiper) {\n this.swiper.destroy()\n delete this.swiper\n }\n }\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// node_modules/nespresso-components/swiper/Swiper.vue","function injectStyle (context) {\n require(\"!!../../extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-6ec9b3c8\\\",\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader?{\\\"indentedSyntax\\\":true,\\\"sourceMap\\\":true}!sass-resources-loader?{\\\"resources\\\":\\\"/Users/thomas/Documents/DEV/awaken-machines/src/assets/sass/_variables.sass\\\"}!../../vue-loader/lib/selector?type=styles&index=0!./Swiper.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../vue-loader/lib/selector?type=script&index=0!./Swiper.vue\"\nimport __vue_script__ from \"!!babel-loader!../../vue-loader/lib/selector?type=script&index=0!./Swiper.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6ec9b3c8\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../vue-loader/lib/selector?type=template&index=0!./Swiper.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/nespresso-components/swiper/Swiper.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"v_swiper\",attrs:{\"id\":'v_swiper_id_' + _vm._uid}},[_vm._t(\"button-prev\"),_vm._v(\" \"),_c('div',{staticClass:\"v_swiperOverflow\"},[_c('div',{ref:\"container\",staticClass:\"swiper-container\"},[_vm._t(\"parallax-bg\"),_vm._v(\" \"),(_vm.isDiv)?_c('div',{ref:\"wrapper\",staticClass:\"swiper-wrapper\"},[_vm._t(\"default\")],2):_c('ul',{ref:\"wrapper\",staticClass:\"swiper-wrapper\"},[_vm._t(\"default\")],2)],2)]),_vm._v(\" \"),_vm._t(\"button-next\"),_vm._v(\" \"),_vm._t(\"pagination\"),_vm._v(\" \"),_vm._t(\"scrollbar\")],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-6ec9b3c8\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./node_modules/nespresso-components/swiper/Swiper.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}