{"version":3,"sources":["webpack:///./src/components/hero/hero.module.scss","webpack:///./src/components/modal/iframe/iframe.component.jsx","webpack:///./src/components/resource-card/resource-card.component.jsx","webpack:///./src/components/resource-card/resource-card.module.scss","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/swiper.esm.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/swiper/esm/react/utils.js","webpack:///./node_modules/swiper/esm/react/params-list.js","webpack:///./node_modules/swiper/esm/react/loop.js","webpack:///./node_modules/swiper/esm/react/use-isomorphic-layout-effect.js","webpack:///./node_modules/swiper/esm/react/swiper.js","webpack:///./node_modules/swiper/esm/react/get-params.js","webpack:///./node_modules/swiper/esm/react/get-children.js","webpack:///./node_modules/swiper/esm/react/get-changed-params.js","webpack:///./node_modules/swiper/esm/react/update-swiper.js","webpack:///./node_modules/swiper/esm/react/virtual.js","webpack:///./node_modules/swiper/esm/react/init-swiper.js","webpack:///./node_modules/swiper/esm/react/swiper-slide.js","webpack:///./src/components/Carousel.js","webpack:///./src/components/hero/hero.component.jsx","webpack:///./src/components/modal/iframe/iframe.module.scss","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es6.number.is-nan.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es6.reflect.construct.js"],"names":["module","exports","IFrame","state","showModal","handleToogleShowModal","setState","renderBtn","props","children","btnClass","onClick","className","style","cursor","render","this","url","title","overrideProps","shouldCloseOnOverlayClick","styles","content","overlayClassName","base","ReactModal__Overlay","afterOpen","ReactModal__OverlayAfterOpen","beforeClose","ReactModal__OverlayBeforeClose","close","srText","iframe","src","scrolling","frameBorder","marginHeight","marginWidth","Component","ResourceCard","image","bynderImage","body","linkText","resourceFile","resourceUrl","iFrame","secured","card","cardImage","length","description","name","cardImageResponsive","alt","fields","file","fluid","renderImg","cardContent","cardTitle","text","cardBody","RenderMarkdown","renderBody","srcUrl","btn","href","target","rel","isObject","obj","constructor","Object","extend","keys","forEach","key","ssrDocument","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","prototype","toString","call","e","_construct","Parent","args","Class","a","push","apply","instance","Function","bind","arguments","_wrapNativeSuper","_cache","Map","undefined","fn","indexOf","TypeError","has","get","set","Wrapper","create","value","enumerable","writable","configurable","Dom7","_Array","subClass","superClass","items","concat","Array","arrayFlat","arr","res","el","isArray","arrayFilter","filter","$","selector","context","html","trim","toCreate","tempParent","innerHTML","i","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","split","shortcut","_len","_key","trigger","on","Methods","addClass","classes","classNames","map","c","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","contains","toggleClass","_len3","_key3","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","j","events","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","splice","_len9","_key9","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","offsetWidth","parseFloat","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","_prop","each","index","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","find","foundElements","found","removeChild","methodName","nextTick","delay","now","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","bindModuleMethods","subKey","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","defineProperty","gestures","calcSupport","browser","getDevice","overrides","_temp","support","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","toLowerCase","isWebView","test","calcBrowser","_defineProperties","descriptor","_extends","assign","source","hasOwnProperty","onTouchStart","touchEventsData","params","touches","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","type","which","button","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","preventDefault","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","emit","onTouchMove","rtl","rtlTranslate","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","loop","isVertical","translate","maxTranslate","minTranslate","diffX","diffY","Math","sqrt","pow","touchAngle","isHorizontal","atan2","abs","PI","cssMode","touchMoveStopPropagation","nested","stopPropagation","loopFix","startTranslate","getTranslate","setTransition","$wrapperEl","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","position","time","updateProgress","setTranslate","onTouchEnd","swiper","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","destroyed","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","run","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","progress","dummyEventAttached","dummyEventListener","defaults","init","direction","initialSlide","updateOnWindowResize","autoHeight","setWrapperSize","virtualTranslate","effect","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","modular","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","self","method","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","slice","eventsArray","update","$el","clientWidth","clientHeight","parseInt","Number","isNaN","size","swiperSize","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","slidesForMargin","slideEl","slideIndex","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","replace","virtualSize","marginLeft","marginTop","marginRight","marginBottom","floor","ceil","max","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","_boxSizing","swiperSlideSize","_i","slidesGridItem","_i2","_slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","initialized","slideFound","clickedSlide","clickedIndex","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","join","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","x","y","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","t","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","start","move","end","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","sort","b","_points$i","innerWidth","wasLocked","lastSlidePosition","addClasses","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","prototypeGroup","protoMethod","moduleParamName","swiperParams","passedParams","eventName","swipers","containerEl","newParams","desktop","shadowRoot","options","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","protoProps","staticProps","_proto","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","destroy","deleteInstance","cleanStyles","object","extendDefaults","newDefaults","installModule","use","m","Observer","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","observe","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","components","resize","resizeHandler","orientationChangeHandler","Autoplay","$activeSlideEl","timeout","reverseDirection","stopOnLastSlide","stop","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","disableOnInteraction","beforeTransitionStart","sliderFirstMove","touchEnd","Pagination","pagination","current","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","lockClass","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","hiddenClass","hideOnClick","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","click","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","calcLoopedSlides","useIsomorphicLayoutEffect","deps","externalElRef","_ref","_ref$tag","tag","Tag","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","rest","excluded","sourceKeys","_objectWithoutPropertiesLoose","_useState","containerClasses","setContainerClasses","_useState2","virtualData","setVirtualData","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","allowedParams","getParams","restProps","_getChildren","slots","processChildren","Children","toArray","Fragment","displayName","slot","getChildren","changedParams","oldParams","oldChildren","oldChildrenKeys","childrenKeys","getChangedParams","_containerClasses","_swiper","cache","renderExternal","renderExternalUpdate","needThumbsInit","needControllerInit","updateParams","includes","thumbs","controller","control","updateSwiper","lazy","load","paginationEl","scrollbarEl","initSwiper","ref","from","cloneElement","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop","SwiperSlide","externalRef","_ref$className","zoom","slideElRef","slideClasses","setSlideClasses","updateClasses","SwiperCore","Carousel","paginationOverrides","paginationClassOverride","swiperOptions","paginationClass","optionsPagination","HeroSlide","isExternal","childContentfulCtaBlockBodyTextNode","ctaText","ctaUrl","heroSlide","heroSlideHeader","heroSlideCopy","heroSlideCtaBtn","renderSlideBtn","HeroSlides","heroSlidesWrapper","heroSwiperPaginationBullet","heroSwiperPaginationBulletActive","heroSwiperPagination","Hero","imageObj","bannerCopy","bynderBackgroundImage","slidesArray","original","wrapperClasses","hero","heroNoBgImg","heroBgImgWrapper","heroBgImg","heroBannerCopy","heroBannerCopyNoBgImg","heroBannerCopy__inner","dangerouslySetInnerHTML","__html","renderBannerCopy","$export","S","aFunction","anObject","fails","rConstruct","NEW_TARGET_BUG","F","ARGS_BUG","Target","newTarget","$args","proto","result"],"mappings":"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","file":"6e729fc7877aebba4af3afd0e0d47d2be89c097e-893175b2a485e6fd4a7a.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"hero\":\"hero-module--hero--3KOUM\",\"heroBgImgWrapper\":\"hero-module--heroBgImgWrapper--1MvyQ\",\"heroBgImg\":\"hero-module--heroBgImg--lJXlr\",\"heroSlide\":\"hero-module--heroSlide--1UYjn\",\"heroSlideHeader\":\"hero-module--heroSlideHeader--2R7RG\",\"heroSlideCopy\":\"hero-module--heroSlideCopy--1dhQg\",\"heroSlideCtaBtn\":\"hero-module--heroSlideCtaBtn--3maEk\",\"heroSlidesWrapper\":\"hero-module--heroSlidesWrapper--2LKWN\",\"heroSwiperPagination\":\"hero-module--heroSwiperPagination--2Z3Kb\",\"heroSwiperPaginationBullet\":\"hero-module--heroSwiperPaginationBullet--2enBp\",\"heroSwiperPaginationBulletActive\":\"hero-module--heroSwiperPaginationBulletActive--1I59s\",\"heroBannerCopy\":\"hero-module--heroBannerCopy--3q-MJ\",\"heroBannerCopyNoBgImg\":\"hero-module--heroBannerCopy--no-bg-img--2mlPu\",\"heroBannerCopy__inner\":\"hero-module--heroBannerCopy__inner--1wK1D\"};","import React, { Component } from 'react';\nimport Modal from '~components/modal/modal.component';\nimport styles from './iframe.module.scss';\n\nclass IFrame extends Component {\n state = {\n showModal: false,\n }\n\n handleToogleShowModal = () => {\n this.setState({\n showModal: !this.state.showModal,\n })\n }\n\n renderBtn = () => {\n const { handleToogleShowModal } = this;\n const { children, btnClass } = this.props;\n return (\n \n {children}\n \n );\n }\n\n render() {\n const { handleToogleShowModal, renderBtn } = this;\n const { showModal } = this.state;\n const { url, title } = this.props;\n\n return (\n <>\n {renderBtn()}\n \n
\n \n Close Modal\n \n \n
\n \n \n \n );\n }\n}\n\nexport default IFrame;\n","import React from 'react';\nimport Img from 'gatsby-image';\nimport RenderMarkdown from '~components/RenderMarkdown';\nimport IFrame from '~components/modal/iframe/iframe.component';\n\nimport styles from './resource-card.module.scss';\n\nconst ResourceCard = (props) => {\n const {\n image,\n bynderImage,\n title,\n body,\n linkText,\n resourceFile,\n resourceUrl,\n iFrame,\n secured = false,\n } = props;\n\n const renderImg = () => {\n if (!image && !bynderImage) {\n return null;\n }\n\n if (bynderImage && bynderImage.length) {\n const {\n description,\n name,\n src,\n } = bynderImage[0];\n return (\n \n );\n }\n\n if (secured) {\n const {\n description,\n file: { url },\n } = image.fields;\n\n return (\n \n );\n }\n\n const {\n description,\n fluid,\n } = image;\n\n return (\n \n );\n }\n\n const renderBody = () => {\n if (!body) {\n return null;\n }\n\n const text = secured ? body : body.body;\n\n return (\n
\n \n
\n );\n }\n\n const renderBtn = () => {\n if (!linkText) {\n return null;\n }\n const srcUrl = iFrame\n ? iFrame\n : resourceUrl\n ? resourceUrl\n : resourceFile\n ? secured ? resourceFile.fields.file.url : resourceFile.file.url\n : null;\n\n if (srcUrl && iFrame) {\n return (\n \n {linkText}\n \n );\n }\n else if (srcUrl && resourceFile) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n return (\n
\n
\n {renderImg()}\n
\n
\n

\n {title}\n

\n {renderBody()}\n {renderBtn()}\n
\n
\n );\n}\n\nexport default ResourceCard;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn\":\"resource-card-module--btn--2GyMJ\",\"card\":\"resource-card-module--card--FpZG6\",\"cardImage\":\"resource-card-module--cardImage--8eYkR\",\"cardImageResponsive\":\"resource-card-module--cardImageResponsive--2d-MY\",\"cardContent\":\"resource-card-module--cardContent--38Zq_\",\"cardTitle\":\"resource-card-module--cardTitle--3hbND\",\"cardBody\":\"resource-card-module--cardBody--1E5Zn\"};","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.for-each\";\n\n/**\n * SSR Window 3.0.0-alpha.4\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 20, 2020\n */\n\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\n\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n\n if (src === void 0) {\n src = {};\n }\n\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\n\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\n};\n\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","import \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.function.bind\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\n\n/**\n * Dom7 3.0.0-alpha.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: June 22, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n return _Array.call.apply(_Array, [this].concat(items)) || this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\n\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transition = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n dom.push.apply(dom, arguments);\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.for-each\";\nimport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = Methods[methodName];\n});\nexport default $;","import \"core-js/modules/es6.object.define-property\";\nimport { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import \"core-js/modules/es6.function.bind\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.date.now\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.for-each\";\nimport { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods };","import \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.regexp.match\";\nimport { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/es6.array.index-of\";\nimport { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.number.is-nan\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.function.bind\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\n\n/**\n * Swiper 6.0.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://swiperjs.com\n *\n * Copyright 2014-2020 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: July 7, 2020\n */\nimport $ from './esm/utils/dom';\nimport { extend, getTranslate, nextTick, now, deleteProps, bindModuleMethods } from './esm/utils/utils';\nimport { getSupport } from './esm/utils/get-support';\nimport { getDevice } from './esm/utils/get-device';\nimport { getBrowser } from './esm/utils/get-browser';\nimport { getWindow, getDocument } from 'ssr-window';\nexport { default as Virtual } from './esm/components/virtual/virtual';\nexport { default as Keyboard } from './esm/components/keyboard/keyboard';\nexport { default as Mousewheel } from './esm/components/mousewheel/mousewheel';\nexport { default as Navigation } from './esm/components/navigation/navigation';\nexport { default as Pagination } from './esm/components/pagination/pagination';\nexport { default as Scrollbar } from './esm/components/scrollbar/scrollbar';\nexport { default as Parallax } from './esm/components/parallax/parallax';\nexport { default as Zoom } from './esm/components/zoom/zoom';\nexport { default as Lazy } from './esm/components/lazy/lazy';\nexport { default as Controller } from './esm/components/controller/controller';\nexport { default as A11y } from './esm/components/a11y/a11y';\nexport { default as History } from './esm/components/history/history';\nexport { default as HashNavigation } from './esm/components/hash-navigation/hash-navigation';\nexport { default as Autoplay } from './esm/components/autoplay/autoplay';\nexport { default as EffectFade } from './esm/components/effect-fade/effect-fade';\nexport { default as EffectCube } from './esm/components/effect-cube/effect-cube';\nexport { default as EffectFlip } from './esm/components/effect-flip/effect-flip';\nexport { default as EffectCoverflow } from './esm/components/effect-coverflow/effect-coverflow';\nexport { default as Thumbs } from './esm/components/thumbs/thumbs';\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar modular = {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.width !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n var swiper = this;\n var window = getWindow();\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = window.getComputedStyle(slide[0], null);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n var height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n\n var _boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (_boxSizing && _boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({\n marginLeft: spaceBetween + \"px\"\n });else slides.filter(slidesForMargin).css({\n marginRight: spaceBetween + \"px\"\n });\n } else slides.filter(slidesForMargin).css({\n marginBottom: spaceBetween + \"px\"\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n\nfunction updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n } // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}\n\nfunction updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\n\nfunction updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}\n\nfunction updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};\n\nfunction setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n\nvar transition = {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\n\n\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\n\n\nfunction slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\n\n\nfunction slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\n\n\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};\n\nfunction loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n\nfunction loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n\nvar loop = {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n\nfunction unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}\n\nvar grabCursor = {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};\n\nfunction appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}\n\nfunction prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}\n\nvar manipulation = {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};\n\nfunction onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.screen.width - edgeSwipeThreshold)) {\n return;\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n var swiper = this;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nvar events = {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};\n\nfunction setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}\n\nfunction getBreakpoints(breakpoints) {\n var window = getWindow(); // Get breakpoint for window width\n\n if (!breakpoints) return undefined;\n var breakpoint = false;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = window.innerHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoints\n};\n\nfunction addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device;\n var suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n\n if (rtl) {\n suffixes.push('rtl');\n }\n\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n\n if (device.android) {\n suffixes.push('android');\n }\n\n if (device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses: addClasses,\n removeClasses: removeClasses\n};\n\nfunction loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n\nfunction preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}\n\nvar images = {\n loadImage: loadImage,\n preloadImages: preloadImages\n};\n\nfunction checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nvar checkOverflow$1 = {\n checkOverflow: checkOverflow\n};\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow$1,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el; // Swiper Instance\n\n var swiper = this;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n Object.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n } // Save Dom lib\n\n\n swiper.$ = $; // Find el\n\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper; // Find Wrapper\n\n var $wrapperEl;\n\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n $wrapperEl.children = function (options) {\n return $el.children(options);\n };\n } else {\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n } // Extend Swiper\n\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n swiper.slides.each(function (slideEl) {\n var classes = slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n });\n swiper.emit('_slideClass', slideEl, classes.join(' '));\n });\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.init = function init() {\n var swiper = this;\n if (swiper.initialized) return;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nvar Resize = {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow(); // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends(_extends({}, Observer), {}, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n}; // Swiper Class\n\nvar components = [Resize, Observer$1];\nSwiper.use(components);\nexport default Swiper;\nexport { Swiper };","import \"core-js/modules/es6.object.assign\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n/* eslint no-underscore-dangle: \"off\" */\n\n\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends(_extends({}, Autoplay), {}, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","import \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/es6.object.assign\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(\".\" + params.currentClass).text(params.formatFractionCurrent(current + 1));\n $el.find(\".\" + params.totalClass).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(\".\" + params.progressbarFillClass).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(\".\" + params.bulletClass);\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', \".\" + params.bulletClass, function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', \".\" + params.bulletClass);\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n click: function click(swiper, e) {\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(e.target).hasClass(swiper.params.pagination.bulletClass)) {\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","import \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.for-each\";\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend(target, src) {\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.navigation && !params.navigation.nextEl && !params.navigation.prevEl;\n}\n\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.pagination && !params.pagination.el && !params.pagination.el;\n}\n\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.scrollbar && !params.scrollbar.el && !params.scrollbar.el;\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nvar paramsList = ['init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_freeModeMomentum', '_freeModeMomentumRatio', '_freeModeMomentumBounce', '_freeModeMomentumBounceRatio', '_freeModeMomentumVelocityRatio', '_freeModeSticky', '_freeModeMinimumVelocity', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_slidesPerColumn', '_slidesPerColumnFill', '_slidesPerGroup', '_slidesPerGroupSkip', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_watchSlidesVisibility', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', 'navigation', 'pagination', 'parallax', 'scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.array.map\";\nimport React from 'react';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || swiperParams.slidesPerView, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n return React.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return React.cloneElement(child, {\n key: child.key + \"-duplicate-\" + index + \"-\" + position,\n className: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: swiperParams.slideClass + \" \" + swiperParams.slideBlankClass\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n var prependSlides = [];\n var appendSlides = [];\n modifiedSlides.forEach(function (child, index) {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [].concat(prependSlides, modifiedSlides, appendSlides);\n}\n\nexport { calcLoopedSlides, renderLoop };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.object.assign\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params';\nimport { initSwiper } from './init-swiper';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses } from './utils';\nimport { renderLoop, calcLoopedSlides } from './loop';\nimport { getChangedParams } from './get-changed-params';\nimport { getChildren } from './get-children';\nimport { updateSwiper } from './update-swiper';\nimport { renderVirtual, updateOnVirtualData } from './virtual';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar Swiper = forwardRef(function (_temp, externalElRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n className = _ref.className,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$wrapperTag = _ref.wrapperTag,\n WrapperTag = _ref$wrapperTag === void 0 ? 'div' : _ref$wrapperTag,\n children = _ref.children,\n onSwiper = _ref.onSwiper,\n rest = _objectWithoutPropertiesLoose(_ref, [\"className\", \"tag\", \"wrapperTag\", \"children\", \"onSwiper\"]);\n\n var _useState = useState('swiper-container'),\n containerClasses = _useState[0],\n setContainerClasses = _useState[1];\n\n var _useState2 = useState(null),\n virtualData = _useState2[0],\n setVirtualData = _useState2[1];\n\n var initializedRef = useRef(false);\n var swiperElRef = useRef(null);\n var swiperRef = useRef(null);\n var oldPassedParamsRef = useRef(null);\n var oldSlides = useRef(null);\n var nextElRef = useRef(null);\n var prevElRef = useRef(null);\n var paginationElRef = useRef(null);\n var scrollbarElRef = useRef(null);\n\n var _getParams = getParams(rest),\n swiperParams = _getParams.params,\n passedParams = _getParams.passedParams,\n restProps = _getParams.rest;\n\n var _getChildren = getChildren(children),\n slides = _getChildren.slides,\n slots = _getChildren.slots;\n\n var changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n Object.assign(swiperParams.on, {\n _containerClasses: function _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n },\n _swiper: function _swiper(swiper) {\n swiper.loopCreate = function () {};\n\n swiper.loopDestroy = function () {};\n\n if (swiperParams.loop) {\n swiper.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n swiperRef.current = swiper;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.virtual.slides = slides;\n swiper.params.virtual.cache = false;\n swiper.params.virtual.renderExternal = setVirtualData;\n swiper.params.virtual.renderExternalUpdate = false;\n }\n }\n }); // set initialized flag\n\n useEffect(function () {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // watch for params change\n\n useIsomorphicLayoutEffect(function () {\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper(swiperRef.current, slides, passedParams, changedParams);\n }\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(function () {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // init swiper\n\n useIsomorphicLayoutEffect(function () {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n initSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return function () {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy();\n }\n };\n }, []); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(function (child) {\n return React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(\"\" + containerClasses + (className ? \" \" + className : ''))\n }, restProps), slots['container-start'], needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import \"core-js/modules/es6.regexp.search\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.map\";\n// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { isObject, extend } from './utils';\nimport { paramsList } from './params-list';\n\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n var params = {\n _emitClasses: true,\n on: {}\n };\n var passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n var rest = {};\n var allowedParams = paramsList.map(function (key) {\n return key.replace(/_/, '');\n });\n Object.keys(obj).forEach(function (key) {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n params.on[\"\" + key[2].toLowerCase() + key.substr(3)] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n return {\n params: params,\n passedParams: passedParams,\n rest: rest\n };\n}\n\nexport { getParams };","import \"core-js/modules/es6.array.for-each\";\nimport React from 'react';\n\nfunction getChildren(children) {\n var slides = [];\n var slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n\n function processChildren(c) {\n React.Children.toArray(c).forEach(function (child) {\n if (child.type === React.Fragment && child.props.children) {\n processChildren(child.props.children);\n return;\n }\n\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else {\n slots['container-end'].push(child);\n }\n });\n }\n\n processChildren(children);\n return {\n slides: slides,\n slots: slots\n };\n}\n\nexport { getChildren };","import \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.array.map\";\nimport { paramsList } from './params-list';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n var keys = [];\n if (!oldParams) return keys;\n var oldChildrenKeys = oldChildren.map(function (child) {\n return child.key;\n });\n var childrenKeys = children.map(function (child) {\n return child.key;\n });\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) keys.push('children');\n if (oldChildren.length !== children.length) keys.push('children');\n var watchParams = paramsList.filter(function (key) {\n return key[0] === '_';\n }).map(function (key) {\n return key.replace(/_/, '');\n });\n watchParams.forEach(function (key) {\n if (key in swiperParams && key in oldParams && swiperParams[key] !== oldParams[key]) {\n keys.push(key);\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.array.filter\";\nimport { isObject, extend } from './utils';\n\nfunction updateSwiper(swiper, slides, passedParams, changedParams) {\n var updateParams = changedParams.filter(function (key) {\n return key !== 'children' && key !== 'direction';\n });\n var needThumbsInit;\n var needControllerInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && swiper.params.thumbs && !swiper.params.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && swiper.params.controller && !swiper.params.controller.control) {\n needControllerInit = true;\n }\n\n updateParams.forEach(function (key) {\n if (isObject(swiper.params[key]) && isObject(passedParams[key])) {\n extend(swiper.params[key], passedParams[key]);\n } else {\n swiper.params[key] = passedParams[key];\n }\n });\n\n if (changedParams.includes('children') && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.virtual.slides = slides;\n swiper.virtual.update(true);\n }\n\n if (needThumbsInit) {\n var initialized = swiper.thumbs.init();\n if (initialized) swiper.thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = swiper.params.controller.control;\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.array.map\";\nimport React from 'react';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n var style = swiper.isHorizontal() ? {\n left: virtualData.offset + \"px\"\n } : {\n top: virtualData.offset + \"px\"\n };\n return slides.filter(function (child, index) {\n return index >= virtualData.from && index <= virtualData.to;\n }).map(function (child) {\n return React.cloneElement(child, {\n swiper: swiper,\n style: style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils';\n\nfunction initSwiper(_ref, swiperParams) {\n var el = _ref.el,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n paginationEl = _ref.paginationEl,\n scrollbarEl = _ref.scrollbarEl;\n\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n if (swiperParams.navigation === true) {\n swiperParams.navigation = {};\n }\n\n swiperParams.navigation.nextEl = nextEl;\n swiperParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n if (swiperParams.pagination === true) {\n swiperParams.pagination = {};\n }\n\n swiperParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n if (swiperParams.scrollbar === true) {\n swiperParams.scrollbar = {};\n }\n\n swiperParams.scrollbar.el = scrollbarEl;\n }\n\n return new Swiper(el, swiperParams);\n}\n\nexport { initSwiper };","import \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.object.assign\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useRef, useEffect, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils';\nvar SwiperSlide = forwardRef(function (_temp, externalRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n swiper = _ref.swiper,\n zoom = _ref.zoom,\n rest = _objectWithoutPropertiesLoose(_ref, [\"tag\", \"children\", \"className\", \"swiper\", \"zoom\"]);\n\n var slideElRef = useRef(null);\n\n var _useState = useState('swiper-slide'),\n slideClasses = _useState[0],\n setSlideClasses = _useState[1];\n\n function updateClasses(swiper, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useEffect(function () {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) return;\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return function () {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(\"\" + slideClasses + (className ? \" \" + className : ''))\n }, rest), zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, children) : children);\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","import React from 'react';\n// import Swiper core and required components\nimport SwiperCore, { Autoplay, Pagination } from 'swiper';\nimport { Swiper, SwiperSlide } from 'swiper/react';\n// Import Swiper styles.\n// Importing styles this way did not work with the Gatsby build process.\n// import 'swiper/swiper.scss';\n// import 'swiper/components/pagination/pagination.scss';\n\n// Install Swiper components\nSwiperCore.use([\n Autoplay,\n Pagination,\n]);\n\nconst Carousel = ({ slides, paginationOverrides, paginationClassOverride }) => {\n const swiperOptions = {\n slidesPerView: 1,\n /*\n autoplay: {\n delay: 5000,\n },\n */\n loop: true,\n }\n let paginationClass = 'swiper-pagination';\n\n if (slides.length > 1) {\n let optionsPagination = {\n el: `.${paginationClass}`,\n clickable: true,\n }\n if (paginationClassOverride) {\n optionsPagination.el = `.${paginationClassOverride}`;\n paginationClass = paginationClassOverride;\n }\n\n swiperOptions.pagination = {...optionsPagination, ...paginationOverrides};\n }\n\n const renderPagination = () => {\n if (slides.length < 2) {\n return null;\n }\n return
;\n }\n\n return (\n \n {slides.map(slide => {\n return {slide};\n })}\n\n {renderPagination()}\n \n );\n}\n\nexport default Carousel;\n","import React from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport { Link } from 'gatsby';\nimport Container from '~components/container/container.component';\nimport Carousel from '~components/Carousel';\n\nimport styles from './hero.module.scss';\n\nconst HeroSlide = props => {\n const { slide, isExternal } = props;\n let body;\n if (isExternal) {\n body = slide.body;\n }\n else {\n body = slide.childContentfulCtaBlockBodyTextNode\n ? slide.childContentfulCtaBlockBodyTextNode.body\n : slide.body\n ? slide.body.body\n : '';\n }\n const {\n title,\n ctaText,\n ctaUrl,\n linkText,\n resourceFile,\n resourceUrl,\n } = slide;\n\n const renderSlideBtn = () => {\n if (ctaUrl && ctaText) {\n return {ctaText};\n }\n else if (linkText && (resourceFile || resourceUrl)) {\n const srcUrl = resourceUrl\n ? resourceUrl\n : resourceFile\n ? isExternal ? resourceFile.fields.file.url : resourceFile.file.url\n : null;\n\n if (srcUrl) {\n return (\n \n {linkText}\n \n );\n }\n }\n return null;\n }\n\n return (\n
\n

{title}

\n
\n \n
\n {renderSlideBtn()}\n
\n )\n}\n\nconst HeroSlides = props => {\n const { slides, isExternal } = props;\n const renderSlides = () => {\n return slides.map((slide, i) => {\n return (\n \n );\n });\n }\n\n return (\n
\n \n
\n );\n}\n\nconst Hero = props => {\n const { isExternal } = props;\n const {\n bannerCopy,\n image,\n bynderBackgroundImage,\n slides,\n } = props.data;\n\n let imageObj;\n let slidesArray = [];\n if (bynderBackgroundImage && bynderBackgroundImage.length) {\n imageObj = {\n file: {url: bynderBackgroundImage[0].original},\n //description: bynderBackgroundImage[0].description ? bynderBackgroundImage[0].description : bynderBackgroundImage[0].name,\n };\n }\n else if (isExternal) {\n imageObj = image ? image.fields : null;\n }\n else {\n imageObj = image;\n }\n\n if (isExternal) {\n slidesArray = slides ? slides.map(slide => slide.fields) : null;\n }\n else {\n slidesArray = slides;\n }\n\n const renderBgImg = () => {\n if (!imageObj) {\n return null;\n }\n return (\n
\n \n
\n );\n }\n\n const renderBannerCopy = () => {\n if (!bannerCopy) {\n return null;\n }\n\n let classes = [\n styles.heroBannerCopy,\n ];\n\n if (!imageObj) {\n classes.push(styles.heroBannerCopyNoBgImg);\n }\n\n\n return (\n

\n \n \n \n

\n \n );\n }\n\n const renderSlides = () => {\n if (!slidesArray || !slidesArray.length) {\n return null;\n }\n return (\n \n );\n }\n\n let wrapperClasses = [\n styles.hero,\n ];\n\n if (!imageObj) {\n wrapperClasses.push(styles.heroNoBgImg);\n }\n\n return (\n
\n \n {renderBgImg()}\n {renderBannerCopy()}\n {renderSlides()}\n \n
\n );\n}\n\nexport default Hero;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"close\":\"iframe-module--close--lKttZ\",\"srText\":\"iframe-module--sr-text--1S--O\",\"content\":\"iframe-module--content--2HTSe\",\"iframe\":\"iframe-module--iframe--3ROBs\",\"ReactModal__Overlay\":\"iframe-module--ReactModal__Overlay--pn-7h\",\"ReactModal__OverlayAfterOpen\":\"iframe-module--ReactModal__Overlay--after-open--3XBEY\",\"ReactModal__OverlayBeforeClose\":\"iframe-module--ReactModal__Overlay--before-close--1WKKn\"};","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n"],"sourceRoot":""}