{"version":3,"sources":["webpack://webpack-frontend-boilerplate/./node_modules/aos/dist/aos.js","webpack://webpack-frontend-boilerplate/./node_modules/share-url/index.js","webpack://webpack-frontend-boilerplate/./node_modules/smooth-scroll/dist/smooth-scroll.polyfills.min.js","webpack://webpack-frontend-boilerplate/webpack/bootstrap","webpack://webpack-frontend-boilerplate/webpack/runtime/compat get default export","webpack://webpack-frontend-boilerplate/webpack/runtime/define property getters","webpack://webpack-frontend-boilerplate/webpack/runtime/global","webpack://webpack-frontend-boilerplate/webpack/runtime/hasOwnProperty shorthand","webpack://webpack-frontend-boilerplate/./node_modules/auto-bind/index.js","webpack://webpack-frontend-boilerplate/./src/scripts/components/DesktopMenu.js","webpack://webpack-frontend-boilerplate/./node_modules/toggle-all/dist/bundle.esm.js","webpack://webpack-frontend-boilerplate/./node_modules/tua-body-scroll-lock/dist/tua-bsl.esm.js","webpack://webpack-frontend-boilerplate/./src/scripts/components/MobileMenu.js","webpack://webpack-frontend-boilerplate/./src/scripts/components/StickyHeader.js","webpack://webpack-frontend-boilerplate/./node_modules/ssr-window/ssr-window.esm.js","webpack://webpack-frontend-boilerplate/./node_modules/dom7/dom7.esm.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/shared/dom.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/shared/utils.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/shared/get-support.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/shared/get-device.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/shared/get-browser.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/events-emitter.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/transition/transitionEmit.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/events/onTouchStart.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/events/onTouchMove.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/events/onTouchEnd.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/events/onResize.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/events/onClick.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/events/onScroll.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/events/index.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/defaults.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/moduleExtendParams.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/core.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/update/index.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/update/updateSize.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/update/updateSlides.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/update/updateProgress.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/translate/index.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/translate/getTranslate.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/translate/setTranslate.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/translate/minTranslate.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/translate/maxTranslate.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/translate/translateTo.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/transition/index.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/transition/setTransition.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/transition/transitionStart.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/transition/transitionEnd.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/slide/index.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/slide/slideTo.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/slide/slideToLoop.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/slide/slideNext.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/slide/slidePrev.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/slide/slideReset.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/slide/slideToClosest.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/loop/index.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/loop/loopCreate.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/loop/loopFix.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/loop/loopDestroy.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/grab-cursor/index.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/breakpoints/index.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/check-overflow/index.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/classes/index.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/classes/addClasses.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/classes/removeClasses.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/images/index.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/images/loadImage.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/images/preloadImages.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/modules/resize/resize.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/core/modules/observer/observer.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/shared/classes-to-selector.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/modules/pagination/pagination.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://webpack-frontend-boilerplate/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://webpack-frontend-boilerplate/./src/scripts/components/TeamMemberCard.js","webpack://webpack-frontend-boilerplate/./src/scripts/components/Tabs.js","webpack://webpack-frontend-boilerplate/./src/scripts/components/ShareLocation.js","webpack://webpack-frontend-boilerplate/./src/scripts/components/FooterAccordion.js","webpack://webpack-frontend-boilerplate/./src/scripts/components/InputFile.js","webpack://webpack-frontend-boilerplate/./src/scripts/app.js","webpack://webpack-frontend-boilerplate/./src/scripts/components/TestimonialsCarousel.js"],"names":["module","exports","e","t","o","n","i","id","loaded","call","m","c","p","__esModule","default","Object","assign","arguments","length","prototype","hasOwnProperty","a","u","s","d","b","y","h","w","k","x","offset","delay","easing","duration","disable","once","startEvent","throttleDelay","debounceDelay","disableMutationObserver","j","O","init","document","all","window","atob","mobile","phone","tablet","S","forEach","node","removeAttribute","isSupported","console","info","querySelector","setAttribute","indexOf","readyState","addEventListener","ready","refresh","refreshHard","v","g","apply","r","setTimeout","f","M","_","this","TypeError","leading","maxWait","trailing","cancel","clearTimeout","flush","valueOf","replace","l","test","slice","Symbol","iterator","constructor","NaN","parseInt","self","Function","toString","Math","max","min","Date","now","dataset","aos","children","MutationObserver","WebKitMutationObserver","MozMutationObserver","Array","addedNodes","removedNodes","concat","defineProperty","value","observe","documentElement","childList","subtree","navigator","userAgent","vendor","opera","enumerable","configurable","writable","key","substr","pageYOffset","innerHeight","getAttribute","position","classList","add","remove","anchor","anchorPlacement","isNaN","querySelectorAll","top","offsetHeight","offsetLeft","offsetTop","tagName","scrollLeft","scrollTop","offsetParent","left","map","root","ENDPOINTS","facebook","data","_generateUrlParams","twitter","googlePlus","pinterest","reddit","delicious","linkedin","email","to","params","keys","propertyName","encodeURIComponent","join","factory","Element","closest","ownerDocument","item","parentElement","bubbles","cancelable","detail","createEvent","initCustomEvent","CustomEvent","Event","requestAnimationFrame","cancelAnimationFrame","getTime","q","ignore","header","topOnEmptyHash","speed","speedAsDuration","durationMax","durationMin","clip","customEasing","updateURL","popstate","emitEvents","I","charAt","String","charCodeAt","InvalidCharacterError","F","body","scrollHeight","clientHeight","focus","activeElement","style","outline","scrollTo","H","toggle","dispatchEvent","A","C","cancelScroll","getComputedStyle","height","L","abs","E","floor","history","pushState","smoothScroll","JSON","stringify","title","matchMedia","matches","defaultPrevented","button","metaKey","ctrlKey","shiftKey","target","toLowerCase","hostname","location","pathname","href","decodeURIComponent","hash","preventDefault","replaceState","state","animateScroll","destroy","removeEventListener","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","get","globalThis","obj","prop","autoBind","include","exclude","filter","match","pattern","some","object","properties","Set","Reflect","ownKeys","getPrototypeOf","getAllProperties","descriptor","getOwnPropertyDescriptor","bind","DesktopMenu","element","AutoBind","el","items","from","ev","handleMouseOverItems","handleMouseOutItems","link","getOwnPropertySymbols","push","getOwnPropertyDescriptors","defineProperties","isArray","msMatchesSelector","webkitMatchesSelector","parentNode","nodeType","code","pointerType","error","addListener","getPropertyValue","exist","type","animation","nextElementSibling","contains","hasAttribute","role","active","isAnimate","eventType","tabActive","reduce","enterLocked","D","V","T","N","B","P","getBoundingClientRect","bottom","right","innerWidth","clientWidth","any","PointerEvent","end","enter","leave","checkValidity","scrollBy","behavior","pop","splice","display","visibility","unshift","G","selectorToggle","selectorTogglePrevent","selectorGlobal","selectorGroup","selectorValidate","selectorRole","selectorBack","selectorNext","selectorAnimate","selectorHover","toggleActiveClass","toggleErrorClass","toggleCollapseClass","toggleShowClass","toggleCurrentClass","onHover","onMediaQuery","disableIfMedia","disableIfNotMedia","stopVideo","callbackOpen","callbackClose","callbackToggle","R","Q","W","K","U","z","J","X","Y","Z","$","ee","te","ne","splitselectorToggle","oe","re","splitselectorTogglePrevent","ie","splitselectorValidate","ae","le","splitselectorGroup","se","ce","splitselectorAnimate","ue","de","splitselectorHover","ve","ge","splitselectorRole","pe","fe","splitselectorBack","me","he","be","ye","Oe","Le","we","Pe","ke","Ee","Se","Me","Ae","Ce","qe","Te","je","xe","isServer","detectOS","ua","ipad","ios","android","lockedNum","initialClientY","initialClientX","unLockCallback","documentListenerAdded","lockedElements","eventListenerOptions","options","Error","isSupportOptions","listenerOptions","noop","testEvent","capture","getEventListenerOptions","passive","supportsNativeSmoothScroll","event","MobileMenu","Toggle","onToggle","targetElement","index","ontouchmove","ontouchstart","$body","bodyStyle","scrollBarWidth","targetTouches","clientY","clientX","scrollWidth","isVertical","stopPropagation","handleScroll","$html","htmlStyle","overflow","width","setOverflowHiddenMobile","boxSizing","paddingRight","lock","StickyHeader","wrapper","toggleSticky","extend","src","ssrDocument","nodeName","getElementById","createElement","childNodes","getElementsByTagName","createElementNS","importNode","host","origin","protocol","search","doc","ssrWindow","screen","callback","win","Dom7","super","proto","__proto__","makeReactive","arrayFlat","arr","res","arrayFilter","selector","context","html","trim","toCreate","tempParent","innerHTML","qsa","uniqueArray","arrayUnique","fn","noTrigger","split","shortcut","name","args","trigger","on","Methods","addClass","classes","classNames","removeClass","hasClass","className","toggleClass","attr","attrs","attrName","removeAttr","transform","transition","transitionDuration","targetSelector","listener","handleLiveEvent","eventData","dom7EventData","is","parents","handleEvent","events","dom7LiveListeners","proxyListener","dom7Listeners","off","handlers","handler","dom7proxy","evt","dataIndex","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","box","clientTop","clientLeft","scrollY","scrollX","css","props","each","text","textContent","compareWith","child","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","find","foundElements","found","removeChild","methodName","noExtend","nextSource","HTMLElement","keysArray","nextIndex","len","nextKey","desc","__swiper__","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","startTime","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","progress","easeProgress","cos","PI","currentPosition","support","deviceCached","browser","getSupport","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","priority","method","eventsListeners","onceHandler","__emitterProxy","eventsAnyListeners","eventHandler","transitionEmit","runCallbacks","direction","step","activeIndex","previousIndex","emit","onTouchStart","touchEventsData","touches","enabled","animating","preventInteractionOnTransition","cssMode","loop","loopFix","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","focusableElements","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","rtlTranslate","rtl","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","maxTranslate","minTranslate","diffX","diffY","sqrt","touchAngle","isHorizontal","atan2","touchMoveStopPropagation","nested","startTranslate","getTranslate","setTransition","$wrapperEl","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","updateActiveIndex","updateSlidesClasses","updateProgress","setTranslate","onTouchEnd","slidesGrid","touchEndTime","timeDiff","pathTree","composedPath","updateClickedSlide","lastClickTime","destroyed","currentPos","stopIndex","groupSize","slidesSizesGrid","slidesPerGroupSkip","slidesPerGroup","increment","ratio","longSwipesMs","longSwipes","slideTo","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","snapGrid","updateSlides","slidesPerView","isEnd","isBeginning","centeredSlides","slides","autoplay","running","paused","run","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","newProgress","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","touchEvents","device","domMethod","swiperMethod","start","passiveListeners","move","updateOnWindowResize","isGridEnabled","grid","rows","initialSlide","resizeObserver","createElements","url","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","rewind","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","update","$el","Number","size","getDirectionLabel","property","getDirectionPropertyValue","label","swiperSize","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","gridEnabled","slideSize","initSlides","shouldResetSlideSize","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","visibleSlides","ceil","swiperSlideOffset","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","wasBeginning","wasEnd","realIndex","activeSlide","nextSlide","prevSlide","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","skip","initialized","slideFound","clickedSlide","clickedIndex","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","translateTo","translateBounds","internal","newTranslate","isH","onTranslateToWrapperTransitionEnd","transitionStart","initial","indexAsNumber","isFinite","normalizedTranslate","normalizedGrid","normalizedGridNext","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerViewDynamic","_clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","currentSnap","slideToIndex","loopCreate","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","directionChanged","needsReLoop","changeDirection","isEnabled","enable","containerEl","currentHeight","points","point","minRatio","sort","wasLocked","lastSlideIndex","lastSlideRightEdge","addClasses","suffixes","entries","prefix","resultClasses","prepareClasses","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","Image","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","overrides","platform","screenWidth","screenHeight","ipod","iphone","windows","macos","os","calcDevice","getDevice","isSafari","isWebView","calcBrowser","modules","__modules__","mod","extendParams","swiperParams","defaults","passedParams","eventName","onAny","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","cls","slideEl","updates","getSlideClasses","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","getWrapper","mount","deleteInstance","cleanStyles","deleteProps","newDefaults","installModule","prototypeGroup","protoMethod","use","observer","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","unobserve","observers","attach","WebkitMutationObserver","mutations","observerUpdate","attributes","characterData","observeParents","observeSlideChildren","containerParents","disconnect","Pagination","pfx","bulletSize","pagination","bulletElement","clickable","hideOnClick","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","horizontalClass","verticalClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","lastIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","checkProps","_s","targetEl","isHidden","Autoplay","timeout","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","stop","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","pauseOnMouseEnter","TeamMemberCard","card","details","closeBtn","displayDetails","removeDetails","Tabs","tabs","handleTabs","SmoothScroll","urlParams","URLSearchParams","tabItem","itemIndex","currentTarget","ShareLocation","shareItems","share","shareItem","shareUrl","ShareUrl","open","subject","FooterAccordion","mediaQuery","handleState","footerAccordion","toggleItem","InputFile","input","labelValue","fileName","Aos"],"mappings":"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","file":"scripts/main.339cafa5feadf1aafc70.bundle.js","sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p=\"dist/\",t(0)}([function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},M=function(){w.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\")})},S=function(e){return e===!0||\"mobile\"===e&&p.default.mobile()||\"phone\"===e&&p.default.phone()||\"tablet\"===e&&p.default.tablet()||\"function\"==typeof e&&e()===!0},_=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?M():(x.disableMutationObserver||d.default.isSupported()||(console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '),x.disableMutationObserver=!0),document.querySelector(\"body\").setAttribute(\"data-aos-easing\",x.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",x.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",x.delay),\"DOMContentLoaded\"===x.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1?j(!0):\"load\"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener(\"resize\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"orientationchange\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"scroll\",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||d.default.ready(\"[data-aos]\",O),w)};e.exports={init:_,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){\"use strict\";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(f,t),M?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=O();return c(e)?d(e):void(h=setTimeout(f,a(e)))}function d(e){return h=void 0,_&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),o(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,k=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(s);return t=u(t)||0,i(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?x(u(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(s);return i(o)&&(r=\"leading\"in o?!!o.leading:r,a=\"trailing\"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t=\"undefined\"==typeof e?\"undefined\":c(e);return!!e&&(\"object\"==t||\"function\"==t)}function r(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":c(e))}function a(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":c(e))||r(e)&&k.call(e)==d}function u(e){if(\"number\"==typeof e)return e;if(a(e))return f;if(i(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(l,\"\");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?f:+e}var c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},s=\"Expected a function\",f=NaN,d=\"[object Symbol]\",l=/^\\s+|\\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y=\"object\"==(\"undefined\"==typeof t?\"undefined\":c(t))&&t&&t.Object===Object&&t,g=\"object\"==(\"undefined\"==typeof self?\"undefined\":c(self))&&self&&self.Object===Object&&self,h=y||g||Function(\"return this\")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){\"use strict\";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(f,t),M?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function s(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=j();return s(e)?d(e):void(h=setTimeout(f,u(e)))}function d(e){return h=void 0,_&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=s(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),i(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,O=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?k(a(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e){var t=\"undefined\"==typeof e?\"undefined\":u(e);return!!e&&(\"object\"==t||\"function\"==t)}function i(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":u(e))}function r(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":u(e))||i(e)&&w.call(e)==f}function a(e){if(\"number\"==typeof e)return e;if(r(e))return s;if(o(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(d,\"\");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?s:+e}var u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},c=\"Expected a function\",s=NaN,f=\"[object Symbol]\",d=/^\\s+|\\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v=\"object\"==(\"undefined\"==typeof t?\"undefined\":u(t))&&t&&t.Object===Object&&t,y=\"object\"==(\"undefined\"==typeof self?\"undefined\":u(self))&&self&&self.Object===Object&&self,g=v||y||Function(\"return this\")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){\"use strict\";function n(e){var t=void 0,o=void 0,i=void 0;for(t=0;te.position?e.node.classList.add(\"aos-animate\"):\"undefined\"!=typeof o&&(\"false\"===o||!n&&\"true\"!==o)&&e.node.classList.remove(\"aos-animate\")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add(\"aos-init\"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute(\"data-aos-offset\"),anchor:e.getAttribute(\"data-aos-anchor\"),anchorPlacement:e.getAttribute(\"data-aos-anchor-placement\")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case\"top-bottom\":break;case\"center-bottom\":n+=e.offsetHeight/2;break;case\"bottom-bottom\":n+=e.offsetHeight;break;case\"top-center\":n+=i/2;break;case\"bottom-center\":n+=i/2+e.offsetHeight;break;case\"center-center\":n+=i/2+e.offsetHeight/2;break;case\"top-top\":n+=i;break;case\"bottom-top\":n+=e.offsetHeight+i;break;case\"center-top\":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){return e=e||document.querySelectorAll(\"[data-aos]\"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});","/**\n * share-url v1.0.0\n * @link https://github.com/noeldelgado/share-url\n * @license MIT\n */\n(function(root, factory) {\n if (typeof exports === 'object') module.exports = factory(root);\n else root.ShareUrl = factory(root);\n}(this, function factory(root) {\n var ENDPOINTS = {\n facebook : 'https://www.facebook.com/sharer/sharer.php?',\n twitter : 'https://twitter.com/share?',\n googlePlus : 'https://plus.google.com/share?',\n pinterest : 'https://pinterest.com/pin/create/button/?',\n reddit : 'http://www.reddit.com/submit?',\n delicious : 'https://delicious.com/save?',\n linkedin : 'https://www.linkedin.com/shareArticle?'\n };\n\n return {\n facebook : facebook,\n twitter : twitter,\n googlePlus : googlePlus,\n pinterest : pinterest,\n reddit : reddit,\n delicious : delicious,\n linkedin : linkedin,\n email : email\n };\n\n function _generateUrlParams(data) {\n return Object.keys(data || {}).map(function(propertyName) {\n return propertyName + '=' + encodeURIComponent(data[propertyName]);\n }).join('&');\n }\n\n /* Compose the share on facebook url string.\n * @argument data [Object] \n * @argument data.u [String] \n * @return url\n */\n function facebook(data) {\n return ENDPOINTS.facebook + _generateUrlParams(data);\n }\n\n /* Compose the share on twitter url string.\n * @argument data [Object] \n * @argument data.text [String] Pre-populated text highlighted in the Tweet composer.\n * @argument data.in_reply_to [String] Status ID string of a parent Tweet such as a Tweet from your account (if applicable).\n * @argument data.url [String] URL included with the Tweet.\n * @argument data.hashtags [String] A comma-separated list of hashtags to be appended to default Tweet text.\n * @argument data.via [String] Attribute the source of a Tweet to a Twitter username.\n * @argument data.related [String] A comma-separated list of accounts related to the content of the shared URI.\n * @info https://dev.twitter.com/web/tweet-button/parameters\n * @return url\n */\n function twitter(data) {\n return ENDPOINTS.twitter + _generateUrlParams(data);\n }\n\n /* Compose the share on google+ url string.\n * @argument data [Object] \n * @argument data.url [String] The URL of the page to share.\n * @info https://developers.google.com/+/web/share/\n * @return url\n */\n function googlePlus(data) {\n return ENDPOINTS.googlePlus + _generateUrlParams(data);\n }\n\n /* Compose the share on pinterest url string.\n * @argument data [Object] \n * @argument data.url \n * @argument data.media \n * @argument data.description \n * @info https://developers.pinterest.com/pin_it/\n * @return url\n */\n function pinterest(data) {\n return ENDPOINTS.pinterest + _generateUrlParams(data);\n }\n\n /* Compose the submit to reddit url string.\n * @argument data [Object] \n * @argument data.url \n * @argument data.title \n * @info http://www.reddit.com/buttons/\n * @return url\n */\n function reddit(data) {\n return ENDPOINTS.reddit + _generateUrlParams(data);\n }\n\n /* Compose the url string to post on delicious.\n * @argument data [Object] \n * @argument url [String] \n * @argument title [String] \n * @info https://delicious.com/tools\n * @return url\n */\n function delicious(data) {\n return ENDPOINTS.delicious + _generateUrlParams(data);\n }\n\n /* Compose the share article on linkedin url string.\n * @argument data [Object] \n * @argument data.url [String, 1024] The url-encoded URL of the page that you wish to share.\n * @argument data.mini [Boolean] A required argument who's value must always be: true\n * @argument title [String, 200] The url-encoded title value that you wish you use.\n * @argument summary [String, 256] The url-encoded description that you wish you use.\n * @argument source [String, 200] The url-encoded source of the content (e.g. your website or application name)\n * @info https://developer.linkedin.com/docs/share-on-linkedin\n * @return url\n */\n function linkedin(data) {\n return ENDPOINTS.linkedin + _generateUrlParams(data);\n }\n\n /* Compose the send email url string.\n * @argument data [Object] \n * @argument to [String] \n * @argument subject [String] \n * @argument cc [String] \n * @argument bcc [String] \n * @argument body [String] \n * @info https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Email_links\n * @return url\n */\n function email(data) {\n var to = data.to;\n delete data.to;\n var params = _generateUrlParams(data);\n return 'mailto:' + (params.length ? (to + '?' + params) : to);\n }\n}));\n","/*! smooth-scroll v16.1.3 | (c) 2020 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */\nwindow.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;0<=--t&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}),(function(){if(\"function\"==typeof window.CustomEvent)return;function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e})(),(function(){for(var r=0,e=[\"ms\",\"moz\",\"webkit\",\"o\"],t=0;to.durationMax?o.durationMax:o.durationMin&&u=v)return C.cancelScroll(!0),x(a,t,c),H(\"scrollStop\",i,a,r),!(O=l=null)})(d,g)||(O=M.requestAnimationFrame(E),l=e)};0===M.pageYOffset&&M.scrollTo(0,0),f=a,h=i,c||history.pushState&&h.updateURL&&history.pushState({smoothScroll:JSON.stringify(h),anchor:f.id},document.title,f===document.documentElement?\"#top\":\"#\"+f.id),\"matchMedia\"in M&&M.matchMedia(\"(prefers-reduced-motion)\").matches?x(a,Math.floor(g),!1):(H(\"scrollStart\",i,a,r),C.cancelScroll(!0),M.requestAnimationFrame(E))}};var t=function(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&\"closest\"in e.target&&(a=e.target.closest(o))&&\"a\"===a.tagName.toLowerCase()&&!e.target.closest(b.ignore)&&a.hostname===M.location.hostname&&a.pathname===M.location.pathname&&/#/.test(a.href)){var t,n;try{t=r(decodeURIComponent(a.hash))}catch(e){t=r(a.hash)}if(\"#\"===t){if(!b.topOnEmptyHash)return;n=document.documentElement}else n=document.querySelector(t);(n=n||\"#top\"!==t?n:document.documentElement)&&(e.preventDefault(),(function(e){if(history.replaceState&&e.updateURL&&!history.state){var t=M.location.hash;t=t||\"\",history.replaceState({smoothScroll:JSON.stringify(e),anchor:t||M.pageYOffset},document.title,t||M.location.href)}})(b),C.animateScroll(n,a))}},n=function(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(b)){var t=history.state.anchor;\"string\"==typeof t&&t&&!(t=document.querySelector(r(history.state.anchor)))||C.animateScroll(t,null,{updateURL:!1})}};C.destroy=function(){b&&(document.removeEventListener(\"click\",t,!1),M.removeEventListener(\"popstate\",n,!1),C.cancelScroll(),O=A=a=b=null)};return (function(){if(!(\"querySelector\"in document&&\"addEventListener\"in M&&\"requestAnimationFrame\"in M&&\"closest\"in M.Element.prototype))throw\"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.\";C.destroy(),b=I(q,e||{}),A=b.header?document.querySelector(b.header):null,document.addEventListener(\"click\",t,!1),b.updateURL&&b.popstate&&M.addEventListener(\"popstate\",n,!1)})(),C}}));","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// Gets all non-builtin properties up the prototype chain.\nconst getAllProperties = object => {\n\tconst properties = new Set();\n\n\tdo {\n\t\tfor (const key of Reflect.ownKeys(object)) {\n\t\t\tproperties.add([object, key]);\n\t\t}\n\t} while ((object = Reflect.getPrototypeOf(object)) && object !== Object.prototype);\n\n\treturn properties;\n};\n\nexport default function autoBind(self, {include, exclude} = {}) {\n\tconst filter = key => {\n\t\tconst match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key);\n\n\t\tif (include) {\n\t\t\treturn include.some(match); // eslint-disable-line unicorn/no-array-callback-reference\n\t\t}\n\n\t\tif (exclude) {\n\t\t\treturn !exclude.some(match); // eslint-disable-line unicorn/no-array-callback-reference\n\t\t}\n\n\t\treturn true;\n\t};\n\n\tfor (const [object, key] of getAllProperties(self.constructor.prototype)) {\n\t\tif (key === 'constructor' || !filter(key)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst descriptor = Reflect.getOwnPropertyDescriptor(object, key);\n\t\tif (descriptor && typeof descriptor.value === 'function') {\n\t\t\tself[key] = self[key].bind(self);\n\t\t}\n\t}\n\n\treturn self;\n}\n","import AutoBind from 'auto-bind'\n\nlet el\nlet items\n\nexport default class DesktopMenu {\n\n constructor (element) {\n AutoBind(this)\n\n if(element) {\n this.el = element\n this.init()\n }\n }\n\n init() {\n this.items = Array.from(this.el.querySelectorAll('[data-desktop-menu-item]'))\n\n this.items.forEach((item) => {\n item.addEventListener('mouseover', ev => {\n this.handleMouseOverItems(item)\n })\n\n item.addEventListener('mouseout', ev => {\n this.handleMouseOutItems(item)\n })\n })\n }\n\n handleMouseOverItems(link) {\n this.items.forEach((item) => {\n if(link != item) {\n item.classList.add('is-lighter')\n }\n })\n }\n\n handleMouseOutItems(link) {\n this.items.forEach((item) => {\n item.classList.remove('is-lighter')\n })\n }\n}\n","function e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function n(n){for(var o=1;o0&&D(e)&&V(r)}o===T||o!==T&&!e.active?function(e){l=!0,e.value.removeAttribute(\"data-toggle-hidden\",!0),\"overlay\"===e.role&&N(i),window.requestAnimationFrame((function(){e.value.classList.add(n),window.requestAnimationFrame((function(){e.value.classList.add(t),e.value.addEventListener(\"transitionend\",c)}))}))}(e):(o===x||o!==T&&e.active)&&function(e){\"tab\"===e.role?(e.value.classList.remove(t),e.value.classList.remove(n)):(e.value.setAttribute(\"data-toggle-hidden\",!0),\"overlay\"===e.role&&B(i),e.value.addEventListener(\"transitionend\",s),e.value.classList.remove(t),a=!0)}(e)},C=function(e,t,n,o){function r(t){t.target.removeEventListener(\"transitionend\",r),c(t.target),v.length>0&&D(e)&&V(o)}function i(e){e.target.removeEventListener(\"transitionend\",i),s(e.target)}var s=function(e){e.classList.remove(t),e.classList.remove(n),e.style.height=null,a=!1},c=function(e){e.classList.remove(t),e.style.height=null,l=!1};return e.active?function(e){a=!0;var n=e.value.scrollHeight;e.value.setAttribute(\"data-toggle-hidden\",!0),window.requestAnimationFrame((function(){e.value.style.height=n+\"px\",e.value.classList.add(t),window.requestAnimationFrame((function(){e.value.addEventListener(\"transitionend\",i),e.value.style.height=\"0px\"}))}))}(e):function(e){l=!0,e.value.classList.add(n),e.value.classList.add(t);var o=e.value.scrollHeight;e.value.style.height=o+\"px\",e.value.removeAttribute(\"data-toggle-hidden\",!0),e.value.addEventListener(\"transitionend\",r)}(e)},P=function(e){if(\"toggle\"!==e.type){e.value.setAttribute(\"style\",\"position: absolute; visibility: hidden; display: block; pointer-events: none\"),e.value.classList.remove(\"is--position-bottom\",\"is--position-top\",\"is--position-left\",\"is--position-right\");var t,n,o,r=(t=e.value,n=t.getBoundingClientRect(),(o={}).top=n.top<0,o.left=n.left<0,o.bottom=n.bottom>(window.innerHeight||document.documentElement.clientHeight),o.right=n.right>(window.innerWidth||document.documentElement.clientWidth),o.any=o.top||o.left||o.bottom||o.right,o.all=o.top&&o.left&&o.bottom&&o.right,o);e.value.removeAttribute(\"style\"),r.top&&(e.value.classList.add(\"is--position-bottom\"),e.value.classList.remove(\"is--position-top\")),r.bottom&&(e.value.classList.add(\"is--position-top\"),e.value.classList.remove(\"is--position-bottom\")),r.left&&(e.value.classList.add(\"is--position-left\"),e.value.classList.remove(\"is--position-right\")),r.right&&(e.value.classList.add(\"is--position-right\"),e.value.classList.remove(\"is--position-left\"))}},S=window.PointerEvent?{end:\"pointerup\",enter:\"pointerenter\",leave:\"pointerleave\"}:{end:\"touchend\",enter:\"mouseenter\",leave:\"mouseleave\"},T=S.enter,x=S.leave,j=[T,x],q=function(e,t,n){return{item:e.querySelector(n),type:t}},M=function(e,t,n){var o=!(\"drop\"!==e.type||!e.value.hasAttribute(t))&&e.value.querySelectorAll(\"[required]\");if(!o)return!1;if(o){var r=0!==[].slice.call(o).filter((function(e){return!e.checkValidity()})).length&&r;return r?(r[0].focus(),r[0].classList.add(n),setTimeout((function(){var e=r[0].getBoundingClientRect().top;window.scrollBy({top:e,left:0,behavior:\"smooth\"})}),250),!0):(o.forEach((function(e){return e.classList.contains(n)&&e.classList.remove(n)})),!1)}},H=function(e,t,n,o){if(v.forEach((function(e){return e.element.classList.contains(o)&&e.element.classList.remove(o)})),v.length>0&&!v[0].element.contains(t))for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:e.eventType;return(\"click\"===t||\"keydown\"===t)&&\"drop\"===e.type&&\"tab\"!==e.role&&\"accordion\"!==e.role},N=function(e){return e.classList.add(\"is--overlay\")},B=function(e){return e.classList.remove(\"is--overlay\")},G={selectorToggle:\"[data-toggle]\",selectorTogglePrevent:\"[data-toggle-prevent]\",selectorGlobal:\"[data-toggle-global]\",selectorGroup:\"[data-toggle-group]\",selectorValidate:\"[data-toggle-validate]\",selectorRole:\"[data-toggle-role]\",selectorBack:\"[data-toggle-back]\",selectorNext:\"[data-toggle-next]\",selectorAnimate:\"[data-toggle-animate]\",selectorHover:\"[data-toggle-hover]\",toggleActiveClass:\"is--active\",toggleErrorClass:\"is--error\",toggleCollapseClass:\"is--collapsing\",toggleShowClass:\"is--show\",toggleCurrentClass:\"is--current\",onHover:!1,onMediaQuery:\"(max-width: 992px)\",disableIfMedia:\"[data-toggle-media]\",disableIfNotMedia:\"[data-toggle-not-media]\",stopVideo:!0,callbackOpen:!1,callbackClose:!1,callbackToggle:!1};export default function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=n({},G,{},e),c=t.selectorToggle,m=t.selectorTogglePrevent,y=t.selectorGlobal,L=t.selectorGroup,E=t.selectorValidate,S=t.selectorRole,I=t.selectorBack,R=t.selectorNext,F=t.selectorAnimate,Q=t.selectorHover,W=t.toggleActiveClass,K=t.toggleErrorClass,U=t.toggleCollapseClass,z=t.toggleShowClass,J=t.toggleCurrentClass,X=t.onHover,Y=t.onMediaQuery,Z=t.disableIfMedia,$=t.disableIfNotMedia,_=(t.stopVideo,t.callbackOpen),ee=t.callbackClose,te=t.callbackToggle,ne=t.splitselectorToggle,oe=void 0===ne?c.replace(/\\[|\\]/g,\"\"):ne,re=t.splitselectorTogglePrevent,ie=(void 0===re&&m.replace(/\\[|\\]/g,\"\"),t.splitselectorValidate),ae=void 0===ie?E.replace(/\\[|\\]/g,\"\"):ie,le=t.splitselectorGroup,se=void 0===le?L.replace(/\\[|\\]/g,\"\"):le,ce=t.splitselectorAnimate,ue=void 0===ce?F.replace(/\\[|\\]/g,\"\"):ce,de=t.splitselectorHover,ve=void 0===de?Q.replace(/\\[|\\]/g,\"\"):de,ge=t.splitselectorRole,pe=void 0===ge?S.replace(/\\[|\\]/g,\"\"):ge,fe=t.splitselectorBack,me=(void 0===fe&&I.replace(/\\[|\\]/g,\"\"),r(\"body\")),he=!!navigator.userAgent.match(/(iPad|iPhone|iPod)/g),be=function(){ye(),he&&me.classList.add(\"is--ios\"),X&&h(Q,Y,f,Oe),Le()},ye=function(){he&&me.classList.remove(\"is--ios\"),document.removeEventListener(\"click\",we,!1),document.removeEventListener(\"keydown\",Pe,!1),X&&d&&s.map((function(e){j.map((function(t){e.removeEventListener(t,ke)}))}))},Le=function(){document.addEventListener(\"click\",we,!1),document.addEventListener(\"keydown\",Pe,!1)},Ee=function(e){return\"mouse\"===u&&e.target.closest(c)&&e.target.closest(c).parentElement.hasAttribute(ve)||e.target.closest(Z)&&d||e.target.closest($)&&!d},we=function(e){Ee(e)||(e.target.closest(c)||e.target.closest(I)?(e.preventDefault(),l||a||Se(e)):Me(e))},Ae=function(e){return!e.target.matches(Q)||e.target.closest(Z)&&d||e.target.closest($)&&!d};function ke(e){if(!Ae(e)&&(e.type===T&&(this.enterLocked=!0),this.enterLocked||e.type!==T)){var t=q(e.target,e.type,c);t.active||Se(t)}}var Oe=function(e){\"touch\"===e&&s.map((function(e){e.removeEventListener(T,ke,!1),e.removeEventListener(x,ke,!1)})),\"mouse\"===e&&s.map((function(e){e.addEventListener(T,ke,!1),e.addEventListener(x,ke,!1)}))},Ce=function(e){return!e.target.closest(c)||!e.target.closest(Q)||\"Enter\"!==e.code||e.target.closest(Z)&&d||e.target.closest($)&&!d},Pe=function(e){l||a||Ce(e)&&!p(e)||(Ce(e)?p(e)&&v.length>0&&qe(e):(e.preventDefault(),Se(e)))},Se=function(e){var t=e.target?e.target.closest(c)||e.target.closest(I).parentNode.parentNode.querySelector(c):e.item,n=!!e.type&&e.type;te&&te(t);var r=t.getAttribute(oe),i=t.getAttribute(se),a=t.getAttribute(pe),l=t.closest(R),s=i?w(t,W,i,a,oe,se,n,l,ue):[],u=A(t,W,r,a,l,oe,n),d=k(t,W,r,a,l,oe,n,ue),v=[].concat(o(s),o(u),o(d));if(!u[0].tabActive){var g=v.filter((function(e){return e.active&&\"drop\"===e.type&&e.value.hasAttribute(ae)}));if(g)if(M(g,ae,K))return;for(var p=0;p0&&D(e)&&V(J)},je=function(e){ee&&ee(e),\"overlay\"===e.role&&B(me),e.value.classList.remove(W),\"toggle\"===e.type&&e.value.setAttribute(\"aria-expanded\",!1),\"drop\"===e.type&&e.value.setAttribute(\"data-toggle-hidden\",!0)},qe=function(e){var t={item:v[0].active,type:e.type},n=g[1],o=g[g.length-1];\"Tab\"===e.code?e.shiftKey?document.activeElement===n&&Se(t):document.activeElement===o&&Se(t):\"Escape\"===e.code&&(g[0].focus(),Se(t))},Me=function(e){var t=[].slice.call(i(\"\".concat(y,\".\").concat(W)));if(0!==t.length&&null===e.target.closest(t[0].getAttribute(oe))){var n=t.map((function(e){return r(\"\".concat(e.getAttribute(oe),\".\").concat(W))}));t.forEach((function(e){return e.classList.remove(W)})),n.forEach((function(e){null!==e&&(e.classList.remove(W),e.classList.contains(z)&&e.classList.remove(z))}))}};be()}\n","/**\n * tua-body-scroll-lock v1.2.1\n * (c) 2021 Evinma, BuptStEve\n * @license MIT\n */\n\nvar isServer = function isServer() {\n return typeof window === 'undefined';\n};\nvar detectOS = function detectOS(ua) {\n ua = ua || navigator.userAgent;\n var ipad = /(iPad).*OS\\s([\\d_]+)/.test(ua);\n var iphone = !ipad && /(iPhone\\sOS)\\s([\\d_]+)/.test(ua);\n var android = /(Android);?[\\s/]+([\\d.]+)?/.test(ua);\n var ios = iphone || ipad;\n return {\n ios: ios,\n android: android\n };\n};\nfunction getEventListenerOptions(options) {\n /* istanbul ignore if */\n if (isServer()) return false;\n\n if (!options) {\n throw new Error('options must be provided');\n }\n\n var isSupportOptions = false;\n var listenerOptions = {\n get passive() {\n isSupportOptions = true;\n return;\n }\n\n };\n /* istanbul ignore next */\n\n var noop = function noop() {};\n\n var testEvent = '__TUA_BSL_TEST_PASSIVE__';\n window.addEventListener(testEvent, noop, listenerOptions);\n window.removeEventListener(testEvent, noop, listenerOptions);\n var capture = options.capture;\n /* istanbul ignore next */\n\n return isSupportOptions ? options : typeof capture !== 'undefined' ? capture : false;\n}\n\nvar lockedNum = 0;\nvar initialClientY = 0;\nvar initialClientX = 0;\nvar unLockCallback = null;\nvar documentListenerAdded = false;\nvar lockedElements = [];\nvar eventListenerOptions = getEventListenerOptions({\n passive: false\n});\nvar supportsNativeSmoothScroll = !isServer() && 'scrollBehavior' in document.documentElement.style;\n\nvar setOverflowHiddenPc = function setOverflowHiddenPc() {\n var $body = document.body;\n var bodyStyle = Object.assign({}, $body.style);\n var scrollBarWidth = window.innerWidth - $body.clientWidth;\n $body.style.overflow = 'hidden';\n $body.style.boxSizing = 'border-box';\n $body.style.paddingRight = \"\".concat(scrollBarWidth, \"px\");\n return function () {\n ['overflow', 'boxSizing', 'paddingRight'].forEach(function (x) {\n $body.style[x] = bodyStyle[x] || '';\n });\n };\n};\n\nvar setOverflowHiddenMobile = function setOverflowHiddenMobile() {\n var $html = document.documentElement;\n var $body = document.body;\n var scrollTop = $html.scrollTop || $body.scrollTop;\n var htmlStyle = Object.assign({}, $html.style);\n var bodyStyle = Object.assign({}, $body.style);\n $html.style.height = '100%';\n $html.style.overflow = 'hidden';\n $body.style.top = \"-\".concat(scrollTop, \"px\");\n $body.style.width = '100%';\n $body.style.height = 'auto';\n $body.style.position = 'fixed';\n $body.style.overflow = 'hidden';\n return function () {\n $html.style.height = htmlStyle.height || '';\n $html.style.overflow = htmlStyle.overflow || '';\n ['top', 'width', 'height', 'overflow', 'position'].forEach(function (x) {\n $body.style[x] = bodyStyle[x] || '';\n });\n supportsNativeSmoothScroll ? window.scrollTo({\n top: scrollTop,\n // @ts-ignore\n behavior: 'instant'\n }) : window.scrollTo(0, scrollTop);\n };\n};\n\nvar preventDefault = function preventDefault(event) {\n if (!event.cancelable) return;\n event.preventDefault();\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n if (targetElement) {\n var scrollTop = targetElement.scrollTop,\n scrollLeft = targetElement.scrollLeft,\n scrollWidth = targetElement.scrollWidth,\n scrollHeight = targetElement.scrollHeight,\n clientWidth = targetElement.clientWidth,\n clientHeight = targetElement.clientHeight;\n var clientX = event.targetTouches[0].clientX - initialClientX;\n var clientY = event.targetTouches[0].clientY - initialClientY;\n var isVertical = Math.abs(clientY) > Math.abs(clientX);\n var isOnTop = clientY > 0 && scrollTop === 0;\n var isOnLeft = clientX > 0 && scrollLeft === 0;\n var isOnRight = clientX < 0 && scrollLeft + clientWidth + 1 >= scrollWidth;\n var isOnBottom = clientY < 0 && scrollTop + clientHeight + 1 >= scrollHeight;\n\n if (isVertical && (isOnTop || isOnBottom) || !isVertical && (isOnLeft || isOnRight)) {\n return preventDefault(event);\n }\n }\n\n event.stopPropagation();\n return true;\n};\n\nvar checkTargetElement = function checkTargetElement(targetElement) {\n if (targetElement) return;\n if (targetElement === null) return;\n if (process.env.NODE_ENV === 'production') return;\n console.warn(\"If scrolling is also required in the floating layer, \" + \"the target element must be provided.\");\n};\n\nvar lock = function lock(targetElement) {\n if (isServer()) return;\n checkTargetElement(targetElement);\n\n if (detectOS().ios) {\n // iOS\n if (targetElement) {\n var elementArray = Array.isArray(targetElement) ? targetElement : [targetElement];\n elementArray.forEach(function (element) {\n if (element && lockedElements.indexOf(element) === -1) {\n element.ontouchstart = function (event) {\n initialClientY = event.targetTouches[0].clientY;\n initialClientX = event.targetTouches[0].clientX;\n };\n\n element.ontouchmove = function (event) {\n if (event.targetTouches.length !== 1) return;\n handleScroll(event, element);\n };\n\n lockedElements.push(element);\n }\n });\n }\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, eventListenerOptions);\n documentListenerAdded = true;\n }\n } else if (lockedNum <= 0) {\n unLockCallback = detectOS().android ? setOverflowHiddenMobile() : setOverflowHiddenPc();\n }\n\n lockedNum += 1;\n};\n\nvar unlock = function unlock(targetElement) {\n if (isServer()) return;\n checkTargetElement(targetElement);\n lockedNum -= 1;\n if (lockedNum > 0) return;\n\n if (!detectOS().ios && typeof unLockCallback === 'function') {\n unLockCallback();\n return;\n } // iOS\n\n\n if (targetElement) {\n var elementArray = Array.isArray(targetElement) ? targetElement : [targetElement];\n elementArray.forEach(function (element) {\n var index = lockedElements.indexOf(element);\n\n if (index !== -1) {\n element.ontouchmove = null;\n element.ontouchstart = null;\n lockedElements.splice(index, 1);\n }\n });\n }\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, eventListenerOptions);\n documentListenerAdded = false;\n }\n};\n\nvar clearBodyLocks = function clearBodyLocks() {\n if (isServer()) return;\n lockedNum = 0;\n\n if (!detectOS().ios && typeof unLockCallback === 'function') {\n unLockCallback();\n return;\n } // IOS\n\n\n if (lockedElements.length) {\n // clear events\n var element = lockedElements.pop();\n\n while (element) {\n element.ontouchmove = null;\n element.ontouchstart = null;\n element = lockedElements.pop();\n }\n }\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, eventListenerOptions);\n documentListenerAdded = false;\n }\n};\n\nexport { clearBodyLocks, lock, unlock };\n","import AutoBind from 'auto-bind'\nimport Toggle from 'toggle-all'\nimport { lock, unlock } from 'tua-body-scroll-lock'\n\nexport default class MobileMenu {\n constructor (element) {\n AutoBind(this)\n\n this.element = document.querySelector(element)\n\n this.init()\n }\n\n init() {\n const toggleNav = new Toggle({\n selectorToggle: '[data-toggle-nav]',\n toggleActiveClass: 'is-active',\n callbackToggle: this.onToggle\n })\n }\n\n onToggle() {\n if (this.element.classList.contains('is-active')) {\n // Menu is closed\n unlock(this.element)\n } else {\n // Menu is opened\n lock(this.element)\n }\n }\n}\n","import AutoBind from 'auto-bind'\n\nlet wrapper\nlet header\nlet offset\n\nexport default class StickyHeader {\n\n constructor (wrapper, header) {\n AutoBind(this)\n\n this.wrapper = wrapper\n\n this.header = header\n\n this.init()\n }\n\n init() {\n this.offset = this.header.offsetTop\n\n this.toggleSticky()\n\n window.addEventListener('scroll', this.toggleSticky)\n }\n\n toggleSticky() {\n if (window.pageYOffset >= this.offset) {\n this.wrapper.classList.add('has-sticky-header')\n } else {\n this.wrapper.classList.remove('has-sticky-header')\n }\n }\n}\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let 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 const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 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 (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const 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 (let 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 (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const 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 let 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 const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const 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 const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const 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 (const 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 const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let 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 (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let 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 (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const 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 const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\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 (let k = handlers.length - 1; k >= 0; k -= 1) {\n const 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(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\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(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const 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 const 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 const 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 const styles = this.styles();\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 const 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 const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.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 const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const 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 const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let 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 (const 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((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const 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 (let 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 (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let 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 let child = this[0];\n let 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 const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\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 const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\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 const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const 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 const 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 const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const 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 const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let 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 let 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 const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let 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 (let 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(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let 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 let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\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(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const 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(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const 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\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\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\n 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\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let 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(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const 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\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(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 = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).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 && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\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 };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\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 const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $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; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[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 const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let 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 const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const 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 Object.assign(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.focusableElements)) {\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 const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\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 && !params.cssMode) {\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 let 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 let disableParentSwiper = true;\n let 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 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // 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 }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\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.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let 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 const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let 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 (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\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 const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const 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 const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\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 let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\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\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 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 // 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 // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-',\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};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\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 extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // 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(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\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 focusableElements: swiper.params.focusableElements,\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 });\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 enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // 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 const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\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 changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const 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(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 mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // 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 && swiper.enabled) {\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, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\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(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 static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $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.height !== 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 Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\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 marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const 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 const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\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 slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\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\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 $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= 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 const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\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) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\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(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // 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 const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const 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 Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let 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 let 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 let 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}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // 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 const 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 const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\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 = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.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 let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // 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 let 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 const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else 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 return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\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 if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\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 const 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 const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n return swiper.slideTo(swiper.slides.length - 1, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let 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(() => {\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(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.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 const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const 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 (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const 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 const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const 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 (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n 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 observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\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: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const 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 const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const 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 setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let 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) {\n for (let 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 setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(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 emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(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 emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $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); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n 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', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let 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(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","import AutoBind from 'auto-bind'\n\nlet card\nlet details\nlet closeBtn\n\nexport default class TeamMemberCard {\n\n constructor (element) {\n AutoBind(this)\n\n this.card = element\n this.details = element.querySelector('[data-team-member-details]')\n this.closeBtn = element.querySelector('[data-team-member-details-close]')\n\n this.init()\n }\n\n init() {\n this.card.addEventListener('click', this.displayDetails)\n this.closeBtn.addEventListener('click', this.removeDetails)\n }\n\n displayDetails(ev) {\n this.card.classList.add('has-details-open')\n }\n\n removeDetails(ev) {\n ev.preventDefault()\n ev.stopPropagation()\n this.card.classList.remove('has-details-open')\n }\n}\n","import AutoBind from 'auto-bind'\nimport SmoothScroll from 'smooth-scroll'\n\nlet urlParams\nlet el\nlet tabs\nlet items\nlet itemIndex\nlet scrollTo\n\nexport default class Tabs {\n\n constructor (element) {\n AutoBind(this)\n\n this.el = element\n\n if(this.el) {\n this.init()\n }\n }\n\n init() {\n this.tabs = Array.from(this.el.querySelectorAll('[data-tab]'))\n this.items = Array.from(this.el.querySelectorAll('[data-tab-item]'))\n\n this.tabs.forEach((item) => {\n item.addEventListener('click', this.handleTabs)\n })\n\n this.scrollTo = new SmoothScroll()\n\n this.handleTabs()\n }\n\n handleTabs(ev) {\n if(ev == undefined) {\n this.urlParams = new URLSearchParams(window.location.search)\n\n if(this.urlParams.get('type')) {\n this.items.forEach((item, index) => {\n if(this.urlParams.get('type') == item.dataset.tabItem) {\n this.itemIndex = index\n }\n })\n }else{\n this.itemIndex = 0\n }\n }else{\n ev.preventDefault()\n this.itemIndex = this.tabs.indexOf(ev.currentTarget)\n }\n\n this.tabs.forEach((item) => {\n item.classList.remove('is-active')\n })\n this.tabs[this.itemIndex].classList.add('is-active')\n\n this.items.forEach((item) => {\n item.classList.remove('is-active')\n })\n this.items[this.itemIndex].classList.add('is-active')\n\n if((ev != undefined) || this.urlParams.get('type')) {\n this.scrollTo.animateScroll(document.querySelector('#services'), null, {\n offset: 110,\n speed: 1200\n })\n }\n }\n}\n","import AutoBind from 'auto-bind'\nimport ShareUrl from 'share-url'\n\nlet el\nlet url\nlet shareItems\n\nexport default class ShareLocation {\n\n constructor (element) {\n AutoBind(this)\n\n if(element) {\n this.el = element\n this.url = window.location.href\n this.init()\n }\n }\n\n init() {\n this.shareItems = Array.from(this.el.querySelectorAll('[data-share-item]'))\n\n this.shareItems.forEach((item) => {\n item.addEventListener('click', this.share)\n })\n }\n\n share(ev) {\n ev.preventDefault()\n\n let shareUrl\n\n switch (ev.currentTarget.dataset.shareItem) {\n case 'facebook':\n this.shareUrl = ShareUrl.facebook({ u: this.url })\n window.open(this.shareUrl, '_blank').focus();\n break;\n case 'linkedin':\n this.shareUrl = ShareUrl.linkedin({ url: this.url })\n window.open(this.shareUrl, '_blank').focus();\n break;\n case 'twitter':\n this.shareUrl = ShareUrl.twitter({ url: this.url })\n window.open(this.shareUrl, '_blank').focus();\n break;\n case 'email':\n this.shareUrl = ShareUrl.email({ subject: 'Commandare Technologies', body: this.url })\n window.open(this.shareUrl).focus();\n break;\n default:\n break;\n }\n }\n}\n","import AutoBind from 'auto-bind'\n\nlet el\nlet mediaQuery\n\nexport default class FooterAccordion {\n\n constructor (element) {\n AutoBind(this)\n\n this.el = element\n this.mediaQuery = window.matchMedia('(min-width: 992px)')\n\n if(this.el) {\n this.init()\n }\n }\n\n init() {\n this.handleState(this.mediaQuery)\n\n this.mediaQuery.addEventListener('change', this.handleState)\n }\n\n handleState(ev) {\n if(!ev.matches) { // Mobile\n this.el.dataset.footerAccordion = 'mobile'\n\n let items = Array.from(this.el.querySelectorAll('[aria-expanded]'))\n\n items.forEach((item) => {\n item.addEventListener('click', this.toggleItem)\n })\n }else{ //Desktop\n this.el.dataset.footerAccordion = 'desktop'\n\n let items = Array.from(this.el.querySelectorAll('[aria-expanded]'))\n\n items.forEach((item) => {\n item.removeEventListener('click', this.toggleItem)\n })\n }\n }\n\n toggleItem(ev) {\n if(ev.currentTarget.getAttribute('aria-expanded') == 'true') {\n ev.currentTarget.setAttribute('aria-expanded', 'false')\n }else{\n ev.currentTarget.setAttribute('aria-expanded', 'true')\n }\n }\n}\n","import AutoBind from 'auto-bind'\n\nlet el\nlet input\nlet label\nlet labelValue\n\nexport default class InputFile {\n\n constructor (element) {\n AutoBind(this)\n\n if(element) {\n this.el = element\n this.input = this.el.querySelector('input')\n this.label = this.el.querySelector('[data-input-file-value]')\n this.labelValue = this.el.querySelector('[data-input-file-value]').innerHTML\n this.init()\n }\n }\n\n init() {\n this.input.addEventListener('change', ev => {\n let fileName = ''\n fileName = ev.target.value.split('\\\\').pop()\n\n if( fileName ) {\n this.label.innerHTML = fileName\n }else{\n this.label.innerHTML = this.labelValue\n }\n })\n }\n}\n","document.documentElement.classList.remove('no-js');\n\nimport DesktopMenu from './components/DesktopMenu'\nimport MobileMenu from './components/MobileMenu'\nimport StickyHeader from './components/StickyHeader'\nimport TestimonialsCarousel from './components/TestimonialsCarousel'\nimport TeamMemberCard from './components/TeamMemberCard'\nimport Tabs from './components/Tabs'\nimport ShareLocation from './components/ShareLocation'\nimport FooterAccordion from './components/FooterAccordion'\nimport InputFile from './components/InputFile'\nimport Aos from 'aos'\nimport 'aos/dist/aos.css'\n\nAos.init({\n disable: window.innerWidth < 992\n})\n\nconst stickyHeader = new StickyHeader(document.querySelector('.c-wrapper'), document.querySelector('[data-sticky-header]'))\n\nconst desktopMenu = new DesktopMenu(document.querySelector('[data-desktop-menu]'))\n\nconst mobileMenu = new MobileMenu('[data-mobile-menu]')\n\nconst testimonials = new TestimonialsCarousel(document.querySelector('[data-testimonials-carousel]'))\n\nconst teamMembers = Array.from(document.querySelectorAll('[data-team-member'))\nteamMembers.forEach((item) => {\n let member = new TeamMemberCard(item)\n})\n\nconst servicesTabs = new Tabs(document.querySelector('[data-tabs]'))\n\nconst shareLocation = new ShareLocation(document.querySelector('[data-share]'))\n\nconst footerAccordion = new FooterAccordion(document.querySelector('[data-footer-accordion'))\n\nconst inputFiles = Array.from(document.querySelectorAll('[data-input-file]'))\n\ninputFiles.forEach((item) => {\n let inputFile = new InputFile(item)\n})\n","import Swiper, { Pagination, Autoplay } from 'swiper'\nimport 'swiper/css'\nimport 'swiper/css/pagination'\n\nexport default class TestimonialsCarousel {\n constructor (element) {\n Swiper.use([Pagination, Autoplay])\n\n let swiper = new Swiper(element, {\n autoplay: {\n delay: 3000\n },\n speed: 1200,\n loop: true,\n pagination: {\n el: '.swiper-pagination',\n clickable: true\n },\n });\n }\n}\n"],"sourceRoot":""}