{"version":3,"sources":["webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/scrollmagic-plugin-gsap/index.js","webpack:///./node_modules/object-fit-images/dist/ofi.common-js.js","webpack:///./node_modules/gsap/Observer.js","webpack:///./node_modules/gsap/ScrollTrigger.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/tiny-slider/src/helpers/raf.js","webpack:///./node_modules/tiny-slider/src/helpers/caf.js","webpack:///./node_modules/tiny-slider/src/helpers/extend.js","webpack:///./node_modules/tiny-slider/src/helpers/checkStorageValue.js","webpack:///./node_modules/tiny-slider/src/helpers/setLocalStorage.js","webpack:///./node_modules/tiny-slider/src/helpers/getBody.js","webpack:///./node_modules/tiny-slider/src/helpers/docElement.js","webpack:///./node_modules/tiny-slider/src/helpers/setFakeBody.js","webpack:///./node_modules/tiny-slider/src/helpers/resetFakeBody.js","webpack:///./node_modules/tiny-slider/src/helpers/addCSSRule.js","webpack:///./node_modules/tiny-slider/src/helpers/getCssRulesLength.js","webpack:///./node_modules/tiny-slider/src/helpers/forEach.js","webpack:///./node_modules/tiny-slider/src/helpers/classListSupport.js","webpack:///./node_modules/tiny-slider/src/helpers/hasClass.js","webpack:///./node_modules/tiny-slider/src/helpers/addClass.js","webpack:///./node_modules/tiny-slider/src/helpers/removeClass.js","webpack:///./node_modules/tiny-slider/src/helpers/hasAttr.js","webpack:///./node_modules/tiny-slider/src/helpers/getAttr.js","webpack:///./node_modules/tiny-slider/src/helpers/isNodeList.js","webpack:///./node_modules/tiny-slider/src/helpers/setAttrs.js","webpack:///./node_modules/tiny-slider/src/helpers/removeAttrs.js","webpack:///./node_modules/tiny-slider/src/helpers/arrayFromNodeList.js","webpack:///./node_modules/tiny-slider/src/helpers/hideElement.js","webpack:///./node_modules/tiny-slider/src/helpers/showElement.js","webpack:///./node_modules/tiny-slider/src/helpers/isVisible.js","webpack:///./node_modules/tiny-slider/src/helpers/whichProperty.js","webpack:///./node_modules/tiny-slider/src/helpers/getEndProperty.js","webpack:///./node_modules/tiny-slider/src/helpers/passiveOption.js","webpack:///./node_modules/tiny-slider/src/helpers/addEvents.js","webpack:///./node_modules/tiny-slider/src/helpers/removeEvents.js","webpack:///./node_modules/tiny-slider/src/helpers/events.js","webpack:///./node_modules/tiny-slider/src/tiny-slider.js","webpack:///./node_modules/tiny-slider/src/helpers/calc.js","webpack:///./node_modules/tiny-slider/src/helpers/percentageLayout.js","webpack:///./node_modules/tiny-slider/src/helpers/mediaquerySupport.js","webpack:///./node_modules/tiny-slider/src/helpers/has3DTransforms.js","webpack:///./node_modules/tiny-slider/src/helpers/getSlideId.js","webpack:///./node_modules/tiny-slider/src/helpers/createStyleSheet.js","webpack:///./node_modules/tiny-slider/src/helpers/jsTransform.js","webpack:///./node_modules/tiny-slider/src/helpers/removeCSSRule.js","webpack:///./node_modules/tiny-slider/src/helpers/toDegree.js","webpack:///./node_modules/tiny-slider/src/helpers/getTouchDirection.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack:///./node_modules/gsap/gsap-core.js","webpack:///./node_modules/gsap/CSSPlugin.js","webpack:///./node_modules/gsap/index.js","webpack:///./node_modules/scrollmagic/scrollmagic/uncompressed/ScrollMagic.js"],"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","module","exports","ScrollMagicPluginGsap","ScrollMagic","TweenMax","Timeline","Tween","NAMESPACE","console","err","Function","prototype","bind","call","error","log","Scene","addOption","val","_tween","_log","Array","splice","arguments","apply","on","updateTweenProgress","e","removeTween","reset","progress","state","repeat","paused","play","pause","duration","reverse","tweenChanges","tweenTo","setTween","TweenObject","params","newTween","to","smoothChildTiming","add","yoyo","controller","triggerElement","loglevel","triggerTweens","getTweensOf","vertical","info","value","index","tweenvars","vars","css","undefined","top","bottom","left","right","parseFloat","version","thisTween","oldCallback","list","getChildren","newCallback","i","onOverwrite","kill","OFI","propRegex","testImg","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","getAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","img","width","height","placeholder","onImageReady","naturalWidth","fixOne","el","parsed","fontFamily","props","exec","getStyle","ofi","skipTest","srcset","naturalHeight","descriptors","get","prop","set","defineProperty","ss","keepSrcUsable","warn","picturefill","pf","_","ns","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundImage","replace","backgroundPosition","backgroundRepeat","backgroundOrigin","test","backgroundSize","fix","imgs","opts","startAutoMode","tagName","watchMQ","getOfiImageMaybe","name","HTMLImageElement","String","hijackAttributes","_defineProperties","descriptor","enumerable","configurable","writable","gsap","_coreInitted","_win","_doc","_docEl","_body","_isTouch","_pointerType","_root","_normalizer","_eventTypes","_context","_getGSAP","registerPlugin","_startup","_observers","_scrollers","_proxies","_getTime","now","_bridge","_getProxyProp","element","property","indexOf","_isViewport","_addListener","type","func","passive","capture","_removeListener","isPressed","cache","_scrollCacheFunc","f","doNotCache","cachingFunc","scrollRestoration","isNormalizing","v","Math","round","iOS","cacheID","offset","_horizontal","s","p","p2","os","os2","d","d2","a","sc","scrollTo","_vertical","pageXOffset","op","pageYOffset","_getTarget","t","self","_ctx","selector","utils","toArray","config","nullTargetWarn","_getScrollFunc","_ref","scrollingElement","push","prev","smooth","getProperty","_getVelocityProp","minTimeRefresh","useDelta","v1","v2","t1","t2","min","dropToZeroTime","max","update","force","getVelocity","latestValue","tOld","vOld","_getEvent","preventDefault","_gsapAllow","changedTouches","_getAbsoluteMax","abs","_setScrollTrigger","core","data","scrollers","proxies","globals","ScrollTrigger","bridge","_initCore","documentElement","clamp","context","Observer","isTouch","matches","maxTouchPoints","msMaxTouchPoints","eventTypes","split","init","Constructor","protoProps","staticProps","tolerance","dragMinimum","lineHeight","debounce","onStop","onStopDelay","ignore","wheelSpeed","event","onDragStart","onDragEnd","onDrag","onPress","onRelease","onRight","onLeft","onUp","onDown","onChangeX","onChangeY","onChange","onToggleX","onToggleY","onHover","onHoverEnd","onMove","ignoreCheck","isNormalizer","onGestureStart","onGestureEnd","onWheel","onEnable","onDisable","onClick","scrollSpeed","allowClicks","lockAxis","onLockAxis","onStopDelayedCall","dragged","moved","wheeled","locked","axis","prevDeltaX","prevDeltaY","scrollFuncX","scrollFuncY","scrollX","scrollY","limitToTouch","isViewport","ownerDoc","ownerDocument","deltaX","deltaY","onClickTime","clickCapture","_ignoreCheck","isPointerOrTouch","pointerType","dx","dy","changedX","changedY","onDelta","x","y","_vx","_vy","onTouchOrPointerDelta","_onDrag","clientX","clientY","isDragging","startX","startY","_onPress","button","_onRelease","isTrackingDrag","isNaN","wasDragging","isDragNotClick","eventData","delayedCall","defaultPrevented","click","syntheticEvent","initMouseEvent","screenX","screenY","dispatchEvent","isGesturing","restart","_onGestureStart","touches","_onGestureEnd","onScroll","_onWheel","multiplier","deltaMode","innerHeight","_onMove","_onHover","_onHoverEnd","_onClick","_dc","enable","isEnabled","disable","filter","o","revert","create","register","getAll","slice","getById","_resizeDelay","_toArray","_time2","_syncInterval","_refreshing","_pointerIsDown","_transformProp","_i","_prevWidth","_prevHeight","_autoRefresh","_sort","_suppressOverwrites","_ignoreResize","_ignoreMobileResize","_baseScreenHeight","_baseScreenWidth","_fixIOSBug","_scrollRestoration","_div100vh","_100vh","_isReverted","_clampingMax","_limitCallbacks","_rafID","_refreshingAll","_queueRefreshID","_primary","_time1","_lastScrollTime","_enabled","_parseClamp","_isString","substr","_keepClamp","_pointerDownHandler","_pointerUpHandler","_passThrough","_round","_windowExists","_getViewportDimension","dimensionProperty","_winOffsets","innerWidth","_getBounds","_ref2","_iterateAutoRefresh","events","_isFunction","_isNumber","_isObject","_endAnimation","animation","reversed","_callback","enabled","result","totalTime","callbackAnimation","_abs","_padding","_px","_getComputedStyle","_setDefaults","defaults","withoutTransforms","tween","xPercent","yPercent","rotation","rotationX","rotationY","scale","skewX","skewY","bounds","getBoundingClientRect","_getSize","_ref3","_getLabelRatioArray","timeline","labels","_snapDirectional","snapIncrementOrArray","snap","isArray","sort","b","direction","threshold","snapped","_multiListener","types","nonPassive","_wheelListener","scrollFunc","wheelHandler","_markerDefaults","startColor","endColor","indent","fontSize","fontWeight","_defaults","toggleActions","anticipatePin","_keywords","center","_offsetToPx","size","eqIndex","relative","charAt","container","_ref4","matchWidthEl","containerAnimation","useFixedPosition","isScroller","parent","isStart","color","offsetWidth","_isStart","cssText","innerText","insertBefore","appendChild","_offset","_positionMarker","marker","start","flipped","display","side","oppositeSide","_isFlipped","_triggers","_ids","_sync","_updateAll","clientWidth","_dispatch","_setBaseDimensions","fullscreenElement","webkitFullscreenElement","_listeners","_emptyArray","_softRefresh","map","_savedStyles","_revertRecorded","media","query","getBBox","uncache","_revertAll","trigger","rec","_refreshID","_refresh100vh","offsetHeight","removeChild","_hideAllMarkers","hide","skipRevert","isRefreshing","refreshInits","scrollBehavior","refresh","_subPinOffset","pin","horizontal","original","adjustPinSpacing","scroller","_dir","endClamp","end","_endClamp","startClamp","_startClamp","setPositions","render","onRefresh","_lastScroll","_direction","isUpdating","l","time","recordVelocity","scroll","_propNamesToCopy","_margin","_stateProps","concat","spacer","cs","spacerState","_gsap","swappedIn","spacerStyle","pinStyle","position","flexBasis","overflow","boxSizing","_setState","parentNode","_capsExp","getCache","removeProperty","toLowerCase","_getState","scrollerSize","markerScroller","scrollerBounds","borderWidth","scrollerMax","clampZeroProp","p1","seek","mapRange","scrollTrigger","localOffset","globalOffset","offsets","m","_caScrollDist","_prefixExp","_reparent","_stOrig","_interruptionTracker","getValueFunc","initialValue","onInterrupt","last1","last2","current","_shiftMarker","getScroll","getTween","change1","change2","onComplete","modifiers","checkForInterruption","inherit","ratio","onUpdate","pinCache","snapFunc","scroll1","scroll2","markerStart","markerEnd","markerStartTrigger","markerEndTrigger","markerVars","executingOnRefresh","change","pinOriginalState","pinActiveState","pinState","pinGetter","pinSetter","pinStart","pinChange","spacingStart","markerStartSetter","pinMoves","markerEndSetter","snap1","snap2","scrubTween","scrubSmooth","snapDurClamp","snapDelayedCall","prevScroll","prevAnimProgress","caMarkerSetter","customRevertReturn","_vars","nodeType","toggleClass","onToggle","scrub","pinSpacing","invalidateOnRefresh","onScrubComplete","onSnapComplete","once","pinReparent","pinSpacer","fastScrollEnd","preventOverlaps","isToggle","scrollerCache","pinType","callbacks","onEnter","onLeave","onEnterBack","onLeaveBack","markers","onRefreshInit","getScrollerSize","getScrollerOffsets","lastSnap","lastRefresh","prevProgress","refreshPriority","tweenScroll","scrubDuration","ease","totalProgress","lazy","_initted","isReverted","immediateRender","snapTo","_getClosestLabel","st","directional","delay","refreshedRecently","isActive","endValue","endScroll","velocity","naturalEnd","inertia","_snap","onStart","_onInterrupt","_onComplete","resetTo","_tTime","_tDur","stRevert","targets","className","nativeElement","spacerIsNative","classList","force3D","quickSetter","content","oldOnUpdate","oldParams","onUpdateParams","eventCallback","previous","next","temp","r","prevRefreshing","_swapPinOut","soft","pinOffset","invalidate","isVertical","override","curTrigger","curPin","oppositeScroll","initted","revertedPins","forcedOverflow","markerStartOffset","markerEndOffset","isFirstRefresh","otherPinOffset","parsedEnd","parsedEndTrigger","endTrigger","parsedStart","pinnedContainer","triggerIndex","unshift","_pinPush","normalize","_pinOffset","toUpperCase","ceil","omitOffsets","_copyState","endAnimation","labelToScroll","label","getTrailing","forceFake","toggleState","action","stateChanged","toggled","isAtMax","isTakingAction","clipped","_dp","_time","_start","n","newStart","newEnd","keepClamp","_change","amount","allowAnimation","onKill","updateFunc","_queueRefreshAll","clearInterval","suppressOverwrites","_rafBugFix","mm","bodyStyle","border","borderTopStyle","AnimationProto","Animation","setInterval","checkPrefix","w","h","hidden","limitCallbacks","ms","syncInterval","ignoreMobileResize","autoRefreshEvents","scrollerProxy","clearMatchMedia","isInViewport","positionInViewport","referencePoint","killAll","allowListeners","listeners","saveStyles","safe","clearScrollMemory","maxScroll","getScrollFunc","isScrolling","snapDirectional","batch","varsCopy","interval","batchMax","proxyCallback","elements","triggers","_inputIsFocused","_clampScrollAndGetDurationMultiplier","_allowNativePanning","touchAction","_overflow","auto","_nestedScroll","_ref5","node","_isScrollT","scrollHeight","clientHeight","scrollWidth","overflowY","overflowX","_isScroll","stopPropagation","inputs","nested","_captureInputs","_inputExp","isInput","maxY","lastRefreshID","skipTouchMove","startScrollX","startScrollY","_vars2","normalizeScrollX","momentum","allowNestedScroll","smoother","ScrollSmoother","smootherInstance","initialScale","visualViewport","outerWidth","wheelRefresh","resolveMomentumDuration","inputObserver","resumeTouchMove","scrollClampX","scrollClampY","updateClamps","removeContentOffset","transform","onResize","ignoreDrag","prevScale","currentScroll","dur","velocityX","velocityY","_ts","xArray","yArray","yClamped","ticker","observe","normalizeScroll","normalizer","_inputObserver","ref","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","toString","_construct","Parent","args","Class","instance","_wrapNativeSuper","_cache","Map","fn","TypeError","has","Wrapper","Dom7","_Array","subClass","superClass","items","_this","proto","ReferenceError","_assertThisInitialized","arrayFlat","arr","res","arrayFilter","$","html","trim","toCreate","tempParent","innerHTML","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","_len","_key","Methods","addClass","classes","classNames","c","_el$classList","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","contains","_len3","_key3","toggle","attr","attrs","attrName","removeAttr","removeAttribute","transition","transitionDuration","_len5","_key5","eventType","targetSelector","listener","handleLiveEvent","dom7EventData","is","_parents","parents","k","handleEvent","j","_event","dom7LiveListeners","proxyListener","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","_len9","_key9","evt","detail","bubbles","cancelable","dataIndex","transitionEnd","dom","fireCallBack","includeMargins","_styles","styles","outerHeight","_styles2","box","clientTop","clientLeft","scrollTop","scrollLeft","_prop","each","text","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","prepend","nextElementSibling","nextAll","nextEls","_next","previousElementSibling","prevAll","prevEls","_prev","_parent","closest","find","foundElements","found","methodName","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","cb","caf","mozCancelAnimationFrame","copy","checkStorageValue","JSON","parse","setLocalStorage","storage","access","setItem","getBody","fake","docElement","setFakeBody","docOverflow","background","resetFakeBody","addCSSRule","sheet","rules","insertRule","addRule","getCssRulesLength","cssRules","scope","classListSupport","str","hasAttr","hasAttribute","getAttr","isNodeList","item","setAttrs","els","removeAttrs","attrLength","arrayFromNodeList","nl","hideElement","forceHide","showElement","isVisible","whichProperty","Props","prefix","getEndProperty","propIn","propOut","endProp","supportsPassive","passiveOption","addEvents","preventScrolling","option","removeEvents","Events","topics","eventName","emit","object","hasOwnProperty","Element","tns","options","mode","gutter","edgePadding","fixedWidth","autoWidth","viewportMax","slideBy","controls","controlsPosition","controlsText","controlsContainer","prevButton","nextButton","nav","navPosition","navContainer","navAsThumbnails","arrowKeys","speed","autoplay","autoplayPosition","autoplayTimeout","autoplayDirection","autoplayText","autoplayHoverPause","autoplayButton","autoplayButtonOutput","autoplayResetOnVisibility","animateIn","animateOut","animateNormal","animateDelay","loop","rewind","autoHeight","responsive","lazyload","lazyloadSelector","touch","mouseDrag","swipeAngle","preventActionWhenRunning","preventScrollOnTouch","freezable","onInit","useLocalStorage","nonce","KEYS","ENTER","SPACE","LEFT","RIGHT","tnsStorage","localStorageAccess","browserInfo","uid","localStorage","getItem","removeItem","CALC","div","vals","calc","PERCENTAGELAYOUT","wrapper","outer","count","percentageLayout","CSSMQ","msMatchMedia","rule","styleSheet","createTextNode","currentStyle","mediaquerySupport","TRANSFORM","HAS3DTRANSFORMS","tf","has3d","cssTF","has3DTransforms","TRANSITIONDURATION","TRANSITIONDELAY","ANIMATIONDURATION","ANIMATIONDELAY","TRANSITIONEND","ANIMATIONEND","supportConsoleWarn","tnsList","optionsElements","carousel","responsiveTem","updateOptions","middleWrapper","breakpointZone","outerWrapper","innerWrapper","containerParent","containerHTML","outerHTML","slideItems","slideCount","windowWidth","getWindowWidth","isOn","setBreakpointZone","slidePositions","imgsComplete","liveregionCurrent","itemsMax","getOption","viewport","getViewportWidth","floor","fixedWidthViewportWidth","slideItemsOut","cloneCount","bp","tem","getItemsMax","hasOption","slideCountNew","hasRightDeadZone","rightBoundary","getRightBoundary","updateIndexBeforeTransform","transformAttr","transformPrefix","transformPostfix","getIndexMax","getStartIndex","indexCached","indexMin","getCurrentSlide","indexMax","moveDirectionExpected","running","newContainerClasses","slideId","tnsId","disabled","freeze","getFreeze","frozen","controlsEvents","onControlsClick","getEvent","keyIndex","keyCode","navEvents","onTransitionEnd","getTarget","navIndex","navClicked","Number","targetIndexBase","pages","goTo","navCurrentIndex","animating","stopAutoplay","curElement","setFocus","navItems","hoverEvents","stopAutoplayTimer","autoplayHoverPaused","setAutoplayTimer","visibilityEvent","autoplayVisibilityPaused","docmentKeydownEvent","touchEvents","onPanStart","onPanMove","onPanEnd","dragEvents","hasControls","hasNav","hasAutoplay","hasTouch","hasMouseDrag","slideActiveClass","imgCompleteClass","imgEvents","imgLoaded","imgCompleted","preventScroll","prevIsButton","nextIsButton","controlsContainerHTML","prevButtonHTML","nextButtonHTML","navContainerHTML","getPages","pagesCached","getCurrentNavIndex","navCurrentIndexCached","navActiveClass","navStr","navStrCurrent","autoplayTimer","autoplayUserPaused","autoplayButtonHTML","autoplayHtmlStrings","translateInit","rafIndex","initPosition","lastPosition","panStart","getDist","resetVariblesWhenDisable","fragmentBefore","createDocumentFragment","fragmentAfter","num","cloneFirst","cloneNode","cloneLast","initStructure","slide","marginLeft","getSlideMarginLeft","getTransitionDurationStyle","getInnerWrapperStyles","getContainerWidth","getSlideWidthStyle","getSlideGutterStyle","getAnimationDurationStyle","parseInt","middleWrapperStr","innerWrapperStr","containerStr","slideStr","itemsBP","fixedWidthBP","speedBP","edgePaddingBP","autoHeightBP","gutterBP","initSheet","initSliderTransform","updateIndex","leftEdge","rightEdge","transformCore","postfix","tick","unit","from","positionTick","resetDuration","doContainerTransform","getContainerTransformValue","moveElement","updateContentWrapperHeight","eve","animateSlide","getInfo","startAutoplay","updateSliderHeight","updateInnerWrapperHeight","destroy","ownerNode","toggleAutoplay","htmlList","prevEl","parentEl","firstElementChild","rebuild","condition","ind","getAbsIndex","absIndex","getInsertPosition","pos","gap","getClientWidth","rect","ww","edgePaddingTem","gutterTem","fixedWidthTem","speedTem","gutterTemUnit","itemsTem","dividend","getCSSPrefix","substring","imgsLoadedCheck","getImageArray","initSliderTransformStyleCheck","doContainerTransformSilent","initTools","initEvents","stylesApplicationCheck","initSliderTransformCore","setSlidePositions","updateSlideStatus","insertAdjacentHTML","getLiveRegionStr","txt","navHtml","hiddenStr","updateNavVisibility","isButton","updateControlsStatus","disableUI","resizeTasks","doAutoHeight","doLazyLoad","disableSlider","freezeSlider","additionalUpdates","bpChanged","breakpointZoneTem","needContainerTransform","indChanged","itemsChanged","disableTem","freezeTem","arrowKeysTem","controlsTem","navTem","touchTem","mouseDragTem","autoplayTem","autoplayHoverPauseTem","autoplayResetOnVisibilityTem","indexTem","autoHeightTem","controlsTextTem","centerTem","autoplayTextTem","classN","enableUI","enableSlider","margin","unfreezeSlider","len","updateLiveRegion","updateGallerySlidePositions","deleteRule","removeRule","removeCSSRule","vp","getVisibleSlideRange","rangestart","rangeend","point","cell","arg","imgSelector","complete","navPrev","navCurrent","updateNavStatus","getMaxSlideHeight","slideStart","slideRange","heights","maxHeight","wp","attr2","base","range","getLowerCaseNodeName","isAriaDisabled","disEnableElement","prevDisabled","nextDisabled","disablePrev","disableNext","getCenterGap","denominator","number","classOut","classIn","isOut","sliderMoved","strTrans","propertyName","targetIndex","indexGap","factor","dir","passEventObject","targetIn","updateAutoplayButton","focus","isTouchEvent","srcElement","preventDefaultBehavior","returnValue","getMoveDirectionExpected","angle","atan2","PI","panUpdate","dist","preventClick","indexMoved","rough","displayIndex","_extends","assign","source","Pagination","rtl","pagination","$el","slidesLength","virtual","slides","total","loopedSlides","slidesPerGroup","snapGrid","activeIndex","paginationType","snapIndex","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","isHorizontal","dynamicMainBullets","previousIndex","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scaleX","scaleY","progressbarFillClass","renderCustom","watchOverflow","isLocked","lockClass","paginationHTML","numberOfBullets","freeMode","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","swiper","createElements","uniqueNavElements","clickable","clickableClass","modifierClass","progressbarOppositeClass","slideTo","hiddenClass","hideOnClick","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","targetEl","navigation","nextEl","browser","getSupport","DocumentTouch","pointerEvents","PointerEvent","observer","passiveListener","gestures","calcSupport","getDevice","overrides","_temp","support","platform","ua","device","ios","android","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","calcDevice","getBrowser","isEdge","isSafari","isWebView","calcBrowser","resize","createObserver","destroyed","initialized","ResizeObserver","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","removeObserver","unobserve","orientationChangeHandler","resizeObserver","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","$wrapperEl","disconnect","onTouchStart","touchEventsData","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","which","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","startMoving","touchStartTime","updateSize","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","rtlTranslate","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","translate","maxTranslate","minTranslate","diffX","diffY","sqrt","pow","touchAngle","cssMode","touchMoveStopPropagation","loopFix","startTranslate","getTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","updateProgress","setTranslate","onTouchEnd","slidesGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","moveDistance","currentSlideSize","slidesSizesGrid","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","_increment","increment","longSwipes","longSwipesRatio","shortSwipes","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","run","checkOverflow","preventClicks","preventClicksPropagation","stopImmediatePropagation","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","initialSlide","updateOnWindowResize","url","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","modular","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","method","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","getDirectionLabel","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","previousSlidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginBottom","marginTop","marginRight","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","_slide$","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","slideIndex","allSlidesSize","slideSizeValue","maxSnap","_allSlidesSize","allSlidesOffset","updateSlidesOffset","updateAutoHeight","activeSlides","getSlideByIndex","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","byController","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","behavior","onTranslateToWrapperTransitionEnd","initial","Error","indexAsNumber","isFinite","normalizedTranslate","normalizedGird","normalizedGridNext","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","prevIndex","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","loopDestroy","moving","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","move","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","directionChanged","needsReLoop","changeDirection","containerEl","currentHeight","points","minRatio","_points$i","wasLocked","lastSlidePosition","addClasses","resultClasses","suffixes","join","removeClasses","images","loadImage","imageEl","sizes","checkForComplete","image","onReady","onload","onerror","imagesLoaded","imagesToLoad","extendedDefaults","Swiper","swipers","newParams","__swiper__","moduleParamName","desktop","swiperParams","passedParams","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","setProgress","getSlideClasses","slideEl","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","deleteProps","nextTick","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","HTMLElement","noExtend","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","checkProps","Navigation","toggleEl","disabledClass","_swiper$navigation","$nextEl","$prevEl","onPrevClick","onNextClick","_swiper$navigation2","toEdge","fromEdge","_swiper$navigation3","_swiper$navigation4","isHidden","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","isSupported","implementation","hasFeature","isEventSupported","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","shiftKey","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","handle","mousewheel","eventsTarget","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","positions","sensitivity","_newEvent","sign","ignoreWheelEvents","timeout","_recentWheelEvents","shift","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","newEvent","raw","prevEvent","animateSlider","releaseScroll","thresholdDelta","thresholdTime","getTime","_inheritsLoose","_reverting","_globalTimeline","_coreReady","_lastRenderedFrame","_quickTween","_tickerActive","n1","easeOut","_config","autoSleep","units","overwrite","_bigNum","_2PI","_HALF_PI","_gsID","_sqrt","_cos","cos","_sin","sin","_isUndefined","_isNotFalse","_isFuncOrString","_isTypedArray","ArrayBuffer","isView","_isArray","_strictNumExp","_numExp","_numWithUnitExp","_complexStringNumExp","_relExp","_delimitedValueExp","_unitExp","_globals","_installScope","_install","_merge","_missingPlugin","_warn","message","suppress","_addGlobal","_emptyFunc","_startAtRevertConfig","suppressEvents","_revertConfigNoKill","_revertConfig","_reservedProps","_lazyTweens","_lazyLookup","_plugins","_effects","_nextGCFrame","_harnessPlugins","_callbackNames","_harness","harnessPlugin","harness","targetTest","GSCache","_getCache","_getProperty","_forEachName","names","_roundPrecise","_parseRelative","operator","_arrayContainsAny","toSearch","toFind","_lazyRender","_lazy","_lazySafeRender","_startAt","_numericIfPossible","toMerge","_mergeDeep","_copyExcluding","excluding","_inheritDefaults","excludeDuration","keyframes","_addLinkedListItem","firstProp","lastProp","sortBy","_removeLinkedListItem","_removeFromParent","onlyIfParentHasAutoRemove","autoRemoveChildren","_act","_uncache","_end","_dur","_dirty","_recacheAncestors","totalDuration","_rewindStartAt","autoRevert","_elapsedCycleDuration","_repeat","_animationCycle","_rDelay","tTime","cycleDuration","whole","_parentToChildTotalTime","parentTime","_setEnd","_rts","_alignPlayhead","_postAddChecks","rawTime","_clamp","_zTime","_addToTimeline","skipChecks","_parsePosition","_delay","timeScale","_isFromOrFromStart","_recent","_scrollTrigger","_attemptInitTween","_initTween","_pt","_ticker","frame","_setDuration","skipUncache","leavePlayhead","_onUpdateTotalDuration","_zeroPosition","endTime","percentAnimation","isPercent","recent","clippedDuration","_createTweenType","irVars","isLegacy","varsIndex","runBackwards","startAt","_conditionalReturn","getUnit","_slice","_isArrayLike","nonEmpty","_flatten","ar","leaveStrings","accumulator","_accumulator","_wake","shuffle","random","distribute","_parseEase","isDecimal","ratios","ratioX","ratioY","edges","originX","originY","wrapAt","distances","grid","u","_invertEase","_roundModifier","radius","is2D","values","roundingIncrement","returnFunction","_wrapArray","_replaceRandom","nums","inMin","inMax","outMin","outMax","inRange","outRange","_getLabelInDirection","fromTime","backward","executeLazyFirst","prevContext","callbackScope","_interrupt","_registerPluginQueue","_createPlugin","headless","isFunc","Plugin","_props","instanceDefaults","_renderPropTweens","_addPropTween","_killPropTweensOf","modifier","_addPluginModifier","rawVars","statics","getSetter","_getSetter","aliases","PropTween","_colorLookup","aqua","lime","silver","black","maroon","teal","blue","navy","white","olive","yellow","orange","gray","purple","green","red","pink","cyan","transparent","_hue","m1","m2","splitColor","toHSL","forceAlpha","g","wasHSL","_colorOrderData","_colorExp","_formatColors","orderMatchData","shell","colors","RegExp","_hslExp","_colorStringFilter","combined","_id","_req","_raf","_self","_delta","_lagThreshold","_adjustedLag","_startTime","_lastUpdate","_gap","_nextTime","_tick","overlap","dispatch","elapsed","manual","deltaRatio","fps","wake","gsapVersions","GreenSockGlobals","sleep","lagSmoothing","adjustedLag","Infinity","_fps","prioritize","_easeMap","_customEaseExp","_quotesExp","_parseObjectInString","parsedVal","lastIndexOf","_propagateYoyoEase","isYoyo","_first","yoyoEase","_yoyo","_ease","_yEase","defaultEase","open","close","_CE","_configEaseFromString","_insertEase","easeIn","easeInOut","lowercaseName","_easeInOutFromOut","_configElastic","amplitude","period","p3","asin","_configBack","overshoot","power","Linear","easeNone","none","SteppedEase","steps","immediateStart","repeatDelay","startTime","_totalTime","_ptLookup","_pTime","iteration","_ps","includeRepeats","wrapRepeats","prevIsReverting","globalTime","_sat","includeDelay","atTime","resume","_onUpdate","then","onFulfilled","Promise","resolve","_resolve","_then","_prom","_Animation","sortChildren","_proto2","fromTo","fromVars","toVars","staggerTo","stagger","onCompleteAll","onCompleteAllParams","onCompleteParams","staggerFrom","staggerFromTo","prevPaused","pauseTween","prevStart","prevIteration","prevTime","tDur","crossingStart","_lock","rewinding","doesWrap","repeatRefresh","onRepeat","_hasPause","_forcing","_last","_findNextPauseTween","adjustedTime","_this2","addLabel","tweens","timelines","ignoreBeforeTime","animations","removeLabel","killTweensOf","_totalTime2","addPause","removePause","onlyActive","_overwritingTween","parsedTargets","isGlobalTime","_targets","tl","_onStart","onStartParams","tweenFromTo","fromPosition","toPosition","nextLabel","afterTime","previousLabel","beforeTime","currentLabel","shiftChildren","adjustLabels","clear","includeLabels","updateRoot","_forceAllPropTweens","_addComplexStringPropTween","setter","stringFilter","funcParam","startNums","endNum","chunk","startNum","hasRandom","pt","_renderComplexString","matchIndex","fp","optional","currentValue","_setterFuncWithParam","_setterFunc","_setterPlain","_renderBoolean","_renderPlain","_checkPlugin","plugin","ptLookup","_parseFuncOrString","_processVars","cleanVars","hasPriority","gsData","harnessVars","overwritten","prevStartAt","fullTargets","autoOverwrite","_overwrite","_from","_ptCache","_op","_sortPropTweensByPriority","_onInit","_parseKeyframe","allProps","easeEach","_staggerTweenProps","_staggerPropsToSkip","_Animation2","skipInherit","_this3","curTarget","staggerFunc","staggerVarsToMerge","_this3$vars","kf","_hasNoPausedAncestors","_proto3","isNegative","prevRatio","_parentPlayheadIsBeforeStart","_renderZeroDurationTween","startIsRelative","skipRecursion","rootPT","lookup","ptCache","_updatePropTweens","overwrittenProps","curLookup","curOverwriteProps","killingTargets","propTweenLookup","firstPT","a1","a2","_arraysMatch","propertyAliases","_addAliasesToVars","onReverseComplete","onReverseCompleteParams","_setterAttribute","hasNonDependentRemaining","dep","_setterWithModifier","mSet","mt","pt2","first","last","pr","renderer","TweenLite","TimelineLite","TimelineMax","_media","_lastMediaTime","_contextID","_onMediaChange","anyMatch","queries","conditions","onMatch","Context","_r","_proto5","prevSelector","getTweens","_this4","MatchMedia","contexts","_proto6","mq","active","cond","addListener","getter","format","setters","quickTo","_merge2","isTweening","registerEffect","plugins","extendTimeline","pluginName","registerEase","parseEase","exportRoot","includeDelayedCalls","matchMediaRefresh","wrap","wrapYoyo","pipe","functions","reduce","unitize","interpolate","mutate","interpolators","il","isString","master","install","effects","globalTimeline","reverting","toAdd","_getPluginPropTween","_buildModifierPlugin","_addModifiers","Power0","Power1","Power2","Power3","Power4","Quad","Cubic","Quart","Quint","Strong","Elastic","Back","Bounce","Sine","Expo","Circ","_docElement","_pluginInitted","_tempDiv","_recentSetterPlugin","_supports3D","_transformProps","_RAD2DEG","_DEG2RAD","_atan2","_horizontalExp","_complexExp","_propertyAliases","autoAlpha","alpha","_renderCSSProp","_renderPropWithEnd","_renderCSSPropWithBeginning","_renderRoundedCSSProp","_renderNonTweeningValue","_renderNonTweeningValueOnlyAtEnd","_setterCSSStyle","_setterCSSProp","setProperty","_setterTransform","_setterScale","_setterScaleWithRender","renderTransform","_setterTransformWithRender","_transformOriginProp","_saveStyle","isNotCSS","tfm","zOrigin","svg","svgo","_removeIndependentTransforms","_revertStyle","properties","saver","save","_createElement","_getComputedProperty","skipPrefixFallback","_checkPropPrefix","_prefixes","preferPrefix","_getBBoxHack","swapIfPossible","bbox","ownerSVGElement","oldParent","oldSibling","nextSibling","oldCSS","_gsapBBox","_getAttributeFallbacks","attributesArray","_getBBox","_isSVG","getCTM","_removeProperty","first2Chars","beginning","onlySetAtEnd","_nonConvertibleUnits","deg","rad","turn","_nonStandardLayouts","flex","_convertToUnit","px","isSVG","curValue","curUnit","isRootSVG","measureProperty","toPixels","toPercent","_firstTwoOnly","_specialProps","startValues","startValue","endUnit","startUnit","_keywordToPercent","_renderClearProps","clearTransforms","clearProps","_identity2DMatrix","_rotationalProperties","_isNullTransform","matrixString","force2D","addedToDOM","baseVal","consolidate","offsetParent","_applySVGOrigin","originIsAbsolute","matrixArray","pluginToAddPropTweensTo","determinant","xOriginOld","xOrigin","yOriginOld","yOrigin","xOffsetOld","xOffset","yOffsetOld","yOffset","tx","ty","originSplit","z","perspective","a12","a22","t3","a13","a23","a33","a42","a43","a32","invertedScaleX","rotate","forceCSS","transformPerspective","_renderCSSTransforms","_renderNon3DTransforms","transforms","use3D","a11","a21","tan","finalValue","cap","_assign","endCache","startCache","all","CSSPlugin","specialProp","isTransformRelated","transformPropTween","inlineProps","visibility","parseTransform","smoothOrigin","autoRound","_getMatrix","getStyleSaver","positionAndScale","gsapWithCSS","_util","Controller","_updateTimeout","_refreshTimeout","DEFAULT_OPTIONS","CONTROLLER_OPTIONS","_options","_sceneObjects","_updateScenesOnNextCycle","_scrollPos","_scrollDirection","_isDocument","_viewPortSize","scheduleRefresh","refreshInterval","getScrollPos","getViewportSize","setScrollPos","_setScrollPos","updateScenes","scenesToUpdate","oldScrollPos","deltaScroll","scrollPos","scene","debounceUpdate","rAF","resizeEvent","Event","output","sortScenes","ScenesArray","scenes","scrollOffset","addScene","newScene","addTo","globalSceneOptions","removeScene","updateScene","immediately","scrollTarget","additionalParameter","elem","containerOffset","elementOffset","scrollPosMethod","about","scrollDirection","isDocument","newLoglevel","newState","resetScenes","cAF","ri","defaultValue","extension","oldClass","$super","_durationUpdateMethod","_controller","SCENE_OPTIONS","_state","_progress","_scrollOffset","_triggerPos","fullname","nameparts","eventname","namespace","what","updateTriggerElementPosition","updateScrollOffset","validateOption","updateDuration","onContainerResize","tmpParent","newProgress","startPos","endPos","_pin","updatePinState","doUpdate","oldState","reverseOrForward","eventVars","_pinOptions","triggerHook","changeOption","newval","reason","elementPos","telem","controllerInfo","changed","_validate","validate","perc","check","optionName","logMSG","varname","oldval","addSceneOption","newVal","shifts","triggerPosition","durationChanged","updatePinDimensions","removePin","forceUnpin","containerInfo","pinTarget","newCSS","inFlow","pushFollowers","fixedPos","scrollDistance","during","marginCollapse","isMarginCollapseType","relSize","autoFullWidth","updatePinInContainer","updateRelativePinSpacer","onMousewheelOverPin","setPin","settings","pushFollowersActivelySet","spacerClass","parentDisplay","boundsParams","pinCSS","sizeCSS","spacerCSS","mozBoxSizing","webkitBoxSizing","___origStyle","pinInlineCSS","margins","_cssClasses","_cssClassElems","removeClassToggle","setClassToggle","elems","validationCallback","currentTarget","timeStamp","timestamp","U","floatval","_dimension","includeMargin","_type","DomElement","dimension","_camelCase","lastTime","vendors","_requestAnimationFrame","_cancelAnimationFrame","currTime","timeToCall","loglevels","getHours","getMinutes","getSeconds","getMilliseconds","SVGElement","_get","NodeList","relativeToViewport","classname","addIndicators","removeIndicators","setVelocity","removeVelocity"],"mappings":"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","file":"/vendor.js","sourcesContent":["/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/*!\n * @file ScrollMagic GSAP Animation Plugin.\n *\n * requires: GSAP ~1.14\n * Powered by the Greensock Animation Platform (GSAP): http://www.greensock.com/js\n * Greensock License info at http://www.greensock.com/licensing/\n */\n/**\n * This plugin is meant to be used in conjunction with the Greensock Animation Plattform.\n * It offers an easy API to trigger Tweens or synchronize them to the scrollbar movement.\n *\n * Both the `lite` and the `max` versions of the GSAP library are supported.\n * The most basic requirement is `TweenLite`.\n *\n * To have access to this extension, please include `plugins/animation.gsap.js`.\n * @requires {@link http://greensock.com/gsap|GSAP ~1.14.x}\n * @mixin animation.GSAP\n */\nvar ScrollMagicPluginGsap = function(ScrollMagic, TweenMax, Timeline) {\n var Tween = TweenMax;\n var NAMESPACE = \"animation.gsap\";\n\n // (BUILD) - REMOVE IN MINIFY - START\n var console = window.console || {},\n err = Function.prototype.bind.call(\n console.error || console.log || function() {},\n console\n );\n if (!ScrollMagic) {\n err(\n \"(\" +\n NAMESPACE +\n \") -> ERROR: The ScrollMagic main module could not be found. Please make sure it's loaded before this plugin or use an asynchronous loader like requirejs.\"\n );\n }\n if (!Tween) {\n err(\n \"(\" +\n NAMESPACE +\n \") -> ERROR: TweenLite or TweenMax could not be found. Please make sure GSAP is loaded before ScrollMagic or use an asynchronous loader like requirejs.\"\n );\n }\n // (BUILD) - REMOVE IN MINIFY - END\n\n /*\n * ----------------------------------------------------------------\n * Extensions for Scene\n * ----------------------------------------------------------------\n */\n /**\n * Every instance of ScrollMagic.Scene now accepts an additional option. \n * See {@link ScrollMagic.Scene} for a complete list of the standard options.\n * @memberof! animation.GSAP#\n * @method new ScrollMagic.Scene(options)\n * @example\n * var scene = new ScrollMagic.Scene({tweenChanges: true});\n *\n * @param {object} [options] - Options for the Scene. The options can be updated at any time.\n * @param {boolean} [options.tweenChanges=false] - Tweens Animation to the progress target instead of setting it. \n Does not affect animations where duration is `0`.\n */\n /**\n * **Get** or **Set** the tweenChanges option value.\n * This only affects scenes with a duration. If `tweenChanges` is `true`, the progress update when scrolling will not be immediate, but instead the animation will smoothly animate to the target state.\n * For a better understanding, try enabling and disabling this option in the [Scene Manipulation Example](../examples/basic/scene_manipulation.html).\n * @memberof! animation.GSAP#\n * @method Scene.tweenChanges\n *\n * @example\n * // get the current tweenChanges option\n * var tweenChanges = scene.tweenChanges();\n *\n * // set new tweenChanges option\n * scene.tweenChanges(true);\n *\n * @fires {@link Scene.change}, when used as setter\n * @param {boolean} [newTweenChanges] - The new tweenChanges setting of the scene.\n * @returns {boolean} `get` - Current tweenChanges option value.\n * @returns {Scene} `set` - Parent object for chaining.\n */\n // add option (TODO: DOC (private for dev))\n ScrollMagic.Scene.addOption(\n \"tweenChanges\", // name\n false, // default\n function(val) {\n // validation callback\n return !!val;\n }\n );\n // extend scene\n ScrollMagic.Scene.extend(function() {\n var Scene = this,\n _tween;\n\n // (BUILD) - REMOVE IN MINIFY - START\n var log = function() {\n if (Scene._log) {\n // not available, when main source minified\n Array.prototype.splice.call(\n arguments,\n 1,\n 0,\n \"(\" + NAMESPACE + \")\",\n \"->\"\n );\n Scene._log.apply(this, arguments);\n }\n };\n // (BUILD) - REMOVE IN MINIFY - END\n\n // set listeners\n Scene.on(\"progress.plugin_gsap\", function() {\n updateTweenProgress();\n });\n Scene.on(\"destroy.plugin_gsap\", function(e) {\n Scene.removeTween(e.reset);\n });\n\n /**\n * Update the tween progress to current position.\n * @private\n */\n var updateTweenProgress = function() {\n if (_tween) {\n var progress = Scene.progress(),\n state = Scene.state();\n if (_tween.repeat && _tween.repeat() === -1) {\n // infinite loop, so not in relation to progress\n if (state === \"DURING\" && _tween.paused()) {\n _tween.play();\n } else if (state !== \"DURING\" && !_tween.paused()) {\n _tween.pause();\n }\n } else if (progress != _tween.progress()) {\n // do we even need to update the progress?\n // no infinite loop - so should we just play or go to a specific point in time?\n if (Scene.duration() === 0) {\n // play the animation\n if (progress > 0) {\n // play from 0 to 1\n _tween.play();\n } else {\n // play from 1 to 0\n _tween.reverse();\n }\n } else {\n // go to a specific point in time\n if (Scene.tweenChanges() && _tween.tweenTo) {\n // go smooth\n _tween.tweenTo(progress * _tween.duration());\n } else {\n // just hard set it\n _tween.progress(progress).pause();\n }\n }\n }\n }\n };\n\n /**\n * Add a tween to the scene.\n * If you want to add multiple tweens, add them into a GSAP Timeline object and supply it instead (see example below).\n *\n * If the scene has a duration, the tween's duration will be projected to the scroll distance of the scene, meaning its progress will be synced to scrollbar movement.\n * For a scene with a duration of `0`, the tween will be triggered when scrolling forward past the scene's trigger position and reversed, when scrolling back.\n * To gain better understanding, check out the [Simple Tweening example](../examples/basic/simple_tweening.html).\n *\n * Instead of supplying a tween this method can also be used as a shorthand for `TweenMax.to()` (see example below).\n * @memberof! animation.GSAP#\n *\n * @example\n * // add a single tween directly\n * scene.setTween(TweenMax.to(\"obj\"), 1, {x: 100});\n *\n * // add a single tween via variable\n * var tween = TweenMax.to(\"obj\"), 1, {x: 100};\n * scene.setTween(tween);\n *\n * // add multiple tweens, wrapped in a timeline.\n * var timeline = new TimelineMax();\n * var tween1 = TweenMax.from(\"obj1\", 1, {x: 100});\n * var tween2 = TweenMax.to(\"obj2\", 1, {y: 100});\n * timeline\n * .add(tween1)\n * .add(tween2);\n * scene.addTween(timeline);\n *\n * // short hand to add a TweenMax.to() tween\n * scene.setTween(\"obj3\", 0.5, {y: 100});\n *\n * // short hand to add a TweenMax.to() tween for 1 second\n * // this is useful, when the scene has a duration and the tween duration isn't important anyway\n * scene.setTween(\"obj3\", {y: 100});\n *\n * @param {(object|string)} TweenObject - A TweenMax, TweenLite, TimelineMax or TimelineLite object that should be animated in the scene. Can also be a Dom Element or Selector, when using direct tween definition (see examples).\n * @param {(number|object)} duration - A duration for the tween, or tween parameters. If an object containing parameters are supplied, a default duration of 1 will be used.\n * @param {object} params - The parameters for the tween\n * @returns {Scene} Parent object for chaining.\n */\n Scene.setTween = function(TweenObject, duration, params) {\n var newTween;\n if (arguments.length > 1) {\n if (arguments.length < 3) {\n params = duration;\n duration = 1;\n }\n TweenObject = Tween.to(TweenObject, duration, params);\n }\n try {\n // wrap Tween into a Timeline Object if available to include delay and repeats in the duration and standardize methods.\n if (Timeline) {\n newTween = new Timeline({ smoothChildTiming: true }).add(\n TweenObject\n );\n } else {\n newTween = TweenObject;\n }\n newTween.pause();\n } catch (e) {\n log(\n 1,\n \"ERROR calling method 'setTween()': Supplied argument is not a valid TweenObject\"\n );\n return Scene;\n }\n if (_tween) {\n // kill old tween?\n Scene.removeTween();\n }\n _tween = newTween;\n\n // some properties need to be transferred it to the wrapper, otherwise they would get lost.\n if (TweenObject.repeat && TweenObject.repeat() === -1) {\n // TweenMax or TimelineMax Object?\n _tween.repeat(-1);\n _tween.yoyo(TweenObject.yoyo());\n }\n // (BUILD) - REMOVE IN MINIFY - START\n // Some tween validations and debugging helpers\n\n if (Scene.tweenChanges() && !_tween.tweenTo) {\n log(\n 2,\n \"WARNING: tweenChanges will only work if the TimelineMax object is available for ScrollMagic.\"\n );\n }\n\n // check if there are position tweens defined for the trigger and warn about it :)\n if (\n _tween &&\n Scene.controller() &&\n Scene.triggerElement() &&\n Scene.loglevel() >= 2\n ) {\n // controller is needed to know scroll direction.\n var triggerTweens = Tween.getTweensOf(Scene.triggerElement()),\n vertical = Scene.controller().info(\"vertical\");\n triggerTweens.forEach(function(value, index) {\n var tweenvars = value.vars.css || value.vars,\n condition = vertical\n ? tweenvars.top !== undefined ||\n tweenvars.bottom !== undefined\n : tweenvars.left !== undefined ||\n tweenvars.right !== undefined;\n if (condition) {\n log(\n 2,\n \"WARNING: Tweening the position of the trigger element affects the scene timing and should be avoided!\"\n );\n return false;\n }\n });\n }\n\n // warn about tween overwrites, when an element is tweened multiple times\n if (parseFloat(Tween.version) >= 1.14) {\n // onOverwrite only present since GSAP v1.14.0\n var list = _tween.getChildren\n ? _tween.getChildren(true, true, false)\n : [_tween], // get all nested tween objects\n newCallback = function() {\n log(\n 2,\n \"WARNING: tween was overwritten by another. To learn how to avoid this issue see here: https://github.com/janpaepke/ScrollMagic/wiki/WARNING:-tween-was-overwritten-by-another\"\n );\n };\n for (var i = 0, thisTween, oldCallback; i < list.length; i++) {\n /*jshint loopfunc: true */\n thisTween = list[i];\n if (oldCallback !== newCallback) {\n // if tweens is added more than once\n oldCallback = thisTween.vars.onOverwrite;\n thisTween.vars.onOverwrite = function() {\n if (oldCallback) {\n oldCallback.apply(this, arguments);\n }\n newCallback.apply(this, arguments);\n };\n }\n }\n }\n // (BUILD) - REMOVE IN MINIFY - END\n log(3, \"added tween\");\n\n updateTweenProgress();\n return Scene;\n };\n\n /**\n * Remove the tween from the scene.\n * This will terminate the control of the Scene over the tween.\n *\n * Using the reset option you can decide if the tween should remain in the current state or be rewound to set the target elements back to the state they were in before the tween was added to the scene.\n * @memberof! animation.GSAP#\n *\n * @example\n * // remove the tween from the scene without resetting it\n * scene.removeTween();\n *\n * // remove the tween from the scene and reset it to initial position\n * scene.removeTween(true);\n *\n * @param {boolean} [reset=false] - If `true` the tween will be reset to its initial values.\n * @returns {Scene} Parent object for chaining.\n */\n Scene.removeTween = function(reset) {\n if (_tween) {\n if (reset) {\n _tween.progress(0).pause();\n }\n _tween.kill();\n _tween = undefined;\n log(\n 3,\n \"removed tween (reset: \" + (reset ? \"true\" : \"false\") + \")\"\n );\n }\n return Scene;\n };\n });\n};\n\nmodule.exports = { ScrollMagicPluginGsap : ScrollMagicPluginGsap };\n","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*!\n * Observer 3.12.5\n * https://gsap.com\n *\n * @license Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar gsap,\n _coreInitted,\n _clamp,\n _win,\n _doc,\n _docEl,\n _body,\n _isTouch,\n _pointerType,\n ScrollTrigger,\n _root,\n _normalizer,\n _eventTypes,\n _context,\n _getGSAP = function _getGSAP() {\n return gsap || typeof window !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _startup = 1,\n _observers = [],\n _scrollers = [],\n _proxies = [],\n _getTime = Date.now,\n _bridge = function _bridge(name, value) {\n return value;\n},\n _integrate = function _integrate() {\n var core = ScrollTrigger.core,\n data = core.bridge || {},\n scrollers = core._scrollers,\n proxies = core._proxies;\n scrollers.push.apply(scrollers, _scrollers);\n proxies.push.apply(proxies, _proxies);\n _scrollers = scrollers;\n _proxies = proxies;\n\n _bridge = function _bridge(name, value) {\n return data[name](value);\n };\n},\n _getProxyProp = function _getProxyProp(element, property) {\n return ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property];\n},\n _isViewport = function _isViewport(el) {\n return !!~_root.indexOf(el);\n},\n _addListener = function _addListener(element, type, func, passive, capture) {\n return element.addEventListener(type, func, {\n passive: passive !== false,\n capture: !!capture\n });\n},\n _removeListener = function _removeListener(element, type, func, capture) {\n return element.removeEventListener(type, func, !!capture);\n},\n _scrollLeft = \"scrollLeft\",\n _scrollTop = \"scrollTop\",\n _onScroll = function _onScroll() {\n return _normalizer && _normalizer.isPressed || _scrollers.cache++;\n},\n _scrollCacheFunc = function _scrollCacheFunc(f, doNotCache) {\n var cachingFunc = function cachingFunc(value) {\n // since reading the scrollTop/scrollLeft/pageOffsetY/pageOffsetX can trigger a layout, this function allows us to cache the value so it only gets read fresh after a \"scroll\" event fires (or while we're refreshing because that can lengthen the page and alter the scroll position). when \"soft\" is true, that means don't actually set the scroll, but cache the new value instead (useful in ScrollSmoother)\n if (value || value === 0) {\n _startup && (_win.history.scrollRestoration = \"manual\"); // otherwise the new position will get overwritten by the browser onload.\n\n var isNormalizing = _normalizer && _normalizer.isPressed;\n value = cachingFunc.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0); //TODO: iOS Bug: if you allow it to go to 0, Safari can start to report super strange (wildly inaccurate) touch positions!\n\n f(value);\n cachingFunc.cacheID = _scrollers.cache;\n isNormalizing && _bridge(\"ss\", value); // set scroll (notify ScrollTrigger so it can dispatch a \"scrollStart\" event if necessary\n } else if (doNotCache || _scrollers.cache !== cachingFunc.cacheID || _bridge(\"ref\")) {\n cachingFunc.cacheID = _scrollers.cache;\n cachingFunc.v = f();\n }\n\n return cachingFunc.v + cachingFunc.offset;\n };\n\n cachingFunc.offset = 0;\n return f && cachingFunc;\n},\n _horizontal = {\n s: _scrollLeft,\n p: \"left\",\n p2: \"Left\",\n os: \"right\",\n os2: \"Right\",\n d: \"width\",\n d2: \"Width\",\n a: \"x\",\n sc: _scrollCacheFunc(function (value) {\n return arguments.length ? _win.scrollTo(value, _vertical.sc()) : _win.pageXOffset || _doc[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0;\n })\n},\n _vertical = {\n s: _scrollTop,\n p: \"top\",\n p2: \"Top\",\n os: \"bottom\",\n os2: \"Bottom\",\n d: \"height\",\n d2: \"Height\",\n a: \"y\",\n op: _horizontal,\n sc: _scrollCacheFunc(function (value) {\n return arguments.length ? _win.scrollTo(_horizontal.sc(), value) : _win.pageYOffset || _doc[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0;\n })\n},\n _getTarget = function _getTarget(t, self) {\n return (self && self._ctx && self._ctx.selector || gsap.utils.toArray)(t)[0] || (typeof t === \"string\" && gsap.config().nullTargetWarn !== false ? console.warn(\"Element not found:\", t) : null);\n},\n _getScrollFunc = function _getScrollFunc(element, _ref) {\n var s = _ref.s,\n sc = _ref.sc;\n // we store the scroller functions in an alternating sequenced Array like [element, verticalScrollFunc, horizontalScrollFunc, ...] so that we can minimize memory, maximize performance, and we also record the last position as a \".rec\" property in order to revert to that after refreshing to ensure things don't shift around.\n _isViewport(element) && (element = _doc.scrollingElement || _docEl);\n\n var i = _scrollers.indexOf(element),\n offset = sc === _vertical.sc ? 1 : 2;\n\n !~i && (i = _scrollers.push(element) - 1);\n _scrollers[i + offset] || _addListener(element, \"scroll\", _onScroll); // clear the cache when a scroll occurs\n\n var prev = _scrollers[i + offset],\n func = prev || (_scrollers[i + offset] = _scrollCacheFunc(_getProxyProp(element, s), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function (value) {\n return arguments.length ? element[s] = value : element[s];\n })));\n func.target = element;\n prev || (func.smooth = gsap.getProperty(element, \"scrollBehavior\") === \"smooth\"); // only set it the first time (don't reset every time a scrollFunc is requested because perhaps it happens during a refresh() when it's disabled in ScrollTrigger.\n\n return func;\n},\n _getVelocityProp = function _getVelocityProp(value, minTimeRefresh, useDelta) {\n var v1 = value,\n v2 = value,\n t1 = _getTime(),\n t2 = t1,\n min = minTimeRefresh || 50,\n dropToZeroTime = Math.max(500, min * 3),\n update = function update(value, force) {\n var t = _getTime();\n\n if (force || t - t1 > min) {\n v2 = v1;\n v1 = value;\n t2 = t1;\n t1 = t;\n } else if (useDelta) {\n v1 += value;\n } else {\n // not totally necessary, but makes it a bit more accurate by adjusting the v1 value according to the new slope. This way we're not just ignoring the incoming data. Removing for now because it doesn't seem to make much practical difference and it's probably not worth the kb.\n v1 = v2 + (value - v2) / (t - t2) * (t1 - t2);\n }\n },\n reset = function reset() {\n v2 = v1 = useDelta ? 0 : v1;\n t2 = t1 = 0;\n },\n getVelocity = function getVelocity(latestValue) {\n var tOld = t2,\n vOld = v2,\n t = _getTime();\n\n (latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue);\n return t1 === t2 || t - t2 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t : t1) - tOld) * 1000;\n };\n\n return {\n update: update,\n reset: reset,\n getVelocity: getVelocity\n };\n},\n _getEvent = function _getEvent(e, preventDefault) {\n preventDefault && !e._gsapAllow && e.preventDefault();\n return e.changedTouches ? e.changedTouches[0] : e;\n},\n _getAbsoluteMax = function _getAbsoluteMax(a) {\n var max = Math.max.apply(Math, a),\n min = Math.min.apply(Math, a);\n return Math.abs(max) >= Math.abs(min) ? max : min;\n},\n _setScrollTrigger = function _setScrollTrigger() {\n ScrollTrigger = gsap.core.globals().ScrollTrigger;\n ScrollTrigger && ScrollTrigger.core && _integrate();\n},\n _initCore = function _initCore(core) {\n gsap = core || _getGSAP();\n\n if (!_coreInitted && gsap && typeof document !== \"undefined\" && document.body) {\n _win = window;\n _doc = document;\n _docEl = _doc.documentElement;\n _body = _doc.body;\n _root = [_win, _doc, _docEl, _body];\n _clamp = gsap.utils.clamp;\n\n _context = gsap.core.context || function () {};\n\n _pointerType = \"onpointerenter\" in _body ? \"pointer\" : \"mouse\"; // isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer.\n\n _isTouch = Observer.isTouch = _win.matchMedia && _win.matchMedia(\"(hover: none), (pointer: coarse)\").matches ? 1 : \"ontouchstart\" in _win || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0;\n _eventTypes = Observer.eventTypes = (\"ontouchstart\" in _docEl ? \"touchstart,touchmove,touchcancel,touchend\" : !(\"onpointerdown\" in _docEl) ? \"mousedown,mousemove,mouseup,mouseup\" : \"pointerdown,pointermove,pointercancel,pointerup\").split(\",\");\n setTimeout(function () {\n return _startup = 0;\n }, 500);\n\n _setScrollTrigger();\n\n _coreInitted = 1;\n }\n\n return _coreInitted;\n};\n\n_horizontal.op = _vertical;\n_scrollers.cache = 0;\nexport var Observer = /*#__PURE__*/function () {\n function Observer(vars) {\n this.init(vars);\n }\n\n var _proto = Observer.prototype;\n\n _proto.init = function init(vars) {\n _coreInitted || _initCore(gsap) || console.warn(\"Please gsap.registerPlugin(Observer)\");\n ScrollTrigger || _setScrollTrigger();\n var tolerance = vars.tolerance,\n dragMinimum = vars.dragMinimum,\n type = vars.type,\n target = vars.target,\n lineHeight = vars.lineHeight,\n debounce = vars.debounce,\n preventDefault = vars.preventDefault,\n onStop = vars.onStop,\n onStopDelay = vars.onStopDelay,\n ignore = vars.ignore,\n wheelSpeed = vars.wheelSpeed,\n event = vars.event,\n onDragStart = vars.onDragStart,\n onDragEnd = vars.onDragEnd,\n onDrag = vars.onDrag,\n onPress = vars.onPress,\n onRelease = vars.onRelease,\n onRight = vars.onRight,\n onLeft = vars.onLeft,\n onUp = vars.onUp,\n onDown = vars.onDown,\n onChangeX = vars.onChangeX,\n onChangeY = vars.onChangeY,\n onChange = vars.onChange,\n onToggleX = vars.onToggleX,\n onToggleY = vars.onToggleY,\n onHover = vars.onHover,\n onHoverEnd = vars.onHoverEnd,\n onMove = vars.onMove,\n ignoreCheck = vars.ignoreCheck,\n isNormalizer = vars.isNormalizer,\n onGestureStart = vars.onGestureStart,\n onGestureEnd = vars.onGestureEnd,\n onWheel = vars.onWheel,\n onEnable = vars.onEnable,\n onDisable = vars.onDisable,\n onClick = vars.onClick,\n scrollSpeed = vars.scrollSpeed,\n capture = vars.capture,\n allowClicks = vars.allowClicks,\n lockAxis = vars.lockAxis,\n onLockAxis = vars.onLockAxis;\n this.target = target = _getTarget(target) || _docEl;\n this.vars = vars;\n ignore && (ignore = gsap.utils.toArray(ignore));\n tolerance = tolerance || 1e-9;\n dragMinimum = dragMinimum || 0;\n wheelSpeed = wheelSpeed || 1;\n scrollSpeed = scrollSpeed || 1;\n type = type || \"wheel,touch,pointer\";\n debounce = debounce !== false;\n lineHeight || (lineHeight = parseFloat(_win.getComputedStyle(_body).lineHeight) || 22); // note: browser may report \"normal\", so default to 22.\n\n var id,\n onStopDelayedCall,\n dragged,\n moved,\n wheeled,\n locked,\n axis,\n self = this,\n prevDeltaX = 0,\n prevDeltaY = 0,\n passive = vars.passive || !preventDefault,\n scrollFuncX = _getScrollFunc(target, _horizontal),\n scrollFuncY = _getScrollFunc(target, _vertical),\n scrollX = scrollFuncX(),\n scrollY = scrollFuncY(),\n limitToTouch = ~type.indexOf(\"touch\") && !~type.indexOf(\"pointer\") && _eventTypes[0] === \"pointerdown\",\n // for devices that accommodate mouse events and touch events, we need to distinguish.\n isViewport = _isViewport(target),\n ownerDoc = target.ownerDocument || _doc,\n deltaX = [0, 0, 0],\n // wheel, scroll, pointer/touch\n deltaY = [0, 0, 0],\n onClickTime = 0,\n clickCapture = function clickCapture() {\n return onClickTime = _getTime();\n },\n _ignoreCheck = function _ignoreCheck(e, isPointerOrTouch) {\n return (self.event = e) && ignore && ~ignore.indexOf(e.target) || isPointerOrTouch && limitToTouch && e.pointerType !== \"touch\" || ignoreCheck && ignoreCheck(e, isPointerOrTouch);\n },\n onStopFunc = function onStopFunc() {\n self._vx.reset();\n\n self._vy.reset();\n\n onStopDelayedCall.pause();\n onStop && onStop(self);\n },\n update = function update() {\n var dx = self.deltaX = _getAbsoluteMax(deltaX),\n dy = self.deltaY = _getAbsoluteMax(deltaY),\n changedX = Math.abs(dx) >= tolerance,\n changedY = Math.abs(dy) >= tolerance;\n\n onChange && (changedX || changedY) && onChange(self, dx, dy, deltaX, deltaY); // in ScrollTrigger.normalizeScroll(), we need to know if it was touch/pointer so we need access to the deltaX/deltaY Arrays before we clear them out.\n\n if (changedX) {\n onRight && self.deltaX > 0 && onRight(self);\n onLeft && self.deltaX < 0 && onLeft(self);\n onChangeX && onChangeX(self);\n onToggleX && self.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self);\n prevDeltaX = self.deltaX;\n deltaX[0] = deltaX[1] = deltaX[2] = 0;\n }\n\n if (changedY) {\n onDown && self.deltaY > 0 && onDown(self);\n onUp && self.deltaY < 0 && onUp(self);\n onChangeY && onChangeY(self);\n onToggleY && self.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self);\n prevDeltaY = self.deltaY;\n deltaY[0] = deltaY[1] = deltaY[2] = 0;\n }\n\n if (moved || dragged) {\n onMove && onMove(self);\n\n if (dragged) {\n onDrag(self);\n dragged = false;\n }\n\n moved = false;\n }\n\n locked && !(locked = false) && onLockAxis && onLockAxis(self);\n\n if (wheeled) {\n onWheel(self);\n wheeled = false;\n }\n\n id = 0;\n },\n onDelta = function onDelta(x, y, index) {\n deltaX[index] += x;\n deltaY[index] += y;\n\n self._vx.update(x);\n\n self._vy.update(y);\n\n debounce ? id || (id = requestAnimationFrame(update)) : update();\n },\n onTouchOrPointerDelta = function onTouchOrPointerDelta(x, y) {\n if (lockAxis && !axis) {\n self.axis = axis = Math.abs(x) > Math.abs(y) ? \"x\" : \"y\";\n locked = true;\n }\n\n if (axis !== \"y\") {\n deltaX[2] += x;\n\n self._vx.update(x, true); // update the velocity as frequently as possible instead of in the debounced function so that very quick touch-scrolls (flicks) feel natural. If it's the mouse/touch/pointer, force it so that we get snappy/accurate momentum scroll.\n\n }\n\n if (axis !== \"x\") {\n deltaY[2] += y;\n\n self._vy.update(y, true);\n }\n\n debounce ? id || (id = requestAnimationFrame(update)) : update();\n },\n _onDrag = function _onDrag(e) {\n if (_ignoreCheck(e, 1)) {\n return;\n }\n\n e = _getEvent(e, preventDefault);\n var x = e.clientX,\n y = e.clientY,\n dx = x - self.x,\n dy = y - self.y,\n isDragging = self.isDragging;\n self.x = x;\n self.y = y;\n\n if (isDragging || Math.abs(self.startX - x) >= dragMinimum || Math.abs(self.startY - y) >= dragMinimum) {\n onDrag && (dragged = true);\n isDragging || (self.isDragging = true);\n onTouchOrPointerDelta(dx, dy);\n isDragging || onDragStart && onDragStart(self);\n }\n },\n _onPress = self.onPress = function (e) {\n if (_ignoreCheck(e, 1) || e && e.button) {\n return;\n }\n\n self.axis = axis = null;\n onStopDelayedCall.pause();\n self.isPressed = true;\n e = _getEvent(e); // note: may need to preventDefault(?) Won't side-scroll on iOS Safari if we do, though.\n\n prevDeltaX = prevDeltaY = 0;\n self.startX = self.x = e.clientX;\n self.startY = self.y = e.clientY;\n\n self._vx.reset(); // otherwise the t2 may be stale if the user touches and flicks super fast and releases in less than 2 requestAnimationFrame ticks, causing velocity to be 0.\n\n\n self._vy.reset();\n\n _addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, passive, true);\n\n self.deltaX = self.deltaY = 0;\n onPress && onPress(self);\n },\n _onRelease = self.onRelease = function (e) {\n if (_ignoreCheck(e, 1)) {\n return;\n }\n\n _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n\n var isTrackingDrag = !isNaN(self.y - self.startY),\n wasDragging = self.isDragging,\n isDragNotClick = wasDragging && (Math.abs(self.x - self.startX) > 3 || Math.abs(self.y - self.startY) > 3),\n // some touch devices need some wiggle room in terms of sensing clicks - the finger may move a few pixels.\n eventData = _getEvent(e);\n\n if (!isDragNotClick && isTrackingDrag) {\n self._vx.reset();\n\n self._vy.reset(); //if (preventDefault && allowClicks && self.isPressed) { // check isPressed because in a rare edge case, the inputObserver in ScrollTrigger may stopPropagation() on the press/drag, so the onRelease may get fired without the onPress/onDrag ever getting called, thus it could trigger a click to occur on a link after scroll-dragging it.\n\n\n if (preventDefault && allowClicks) {\n gsap.delayedCall(0.08, function () {\n // some browsers (like Firefox) won't trust script-generated clicks, so if the user tries to click on a video to play it, for example, it simply won't work. Since a regular \"click\" event will most likely be generated anyway (one that has its isTrusted flag set to true), we must slightly delay our script-generated click so that the \"real\"/trusted one is prioritized. Remember, when there are duplicate events in quick succession, we suppress all but the first one. Some browsers don't even trigger the \"real\" one at all, so our synthetic one is a safety valve that ensures that no matter what, a click event does get dispatched.\n if (_getTime() - onClickTime > 300 && !e.defaultPrevented) {\n if (e.target.click) {\n //some browsers (like mobile Safari) don't properly trigger the click event\n e.target.click();\n } else if (ownerDoc.createEvent) {\n var syntheticEvent = ownerDoc.createEvent(\"MouseEvents\");\n syntheticEvent.initMouseEvent(\"click\", true, true, _win, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null);\n e.target.dispatchEvent(syntheticEvent);\n }\n }\n });\n }\n }\n\n self.isDragging = self.isGesturing = self.isPressed = false;\n onStop && wasDragging && !isNormalizer && onStopDelayedCall.restart(true);\n onDragEnd && wasDragging && onDragEnd(self);\n onRelease && onRelease(self, isDragNotClick);\n },\n _onGestureStart = function _onGestureStart(e) {\n return e.touches && e.touches.length > 1 && (self.isGesturing = true) && onGestureStart(e, self.isDragging);\n },\n _onGestureEnd = function _onGestureEnd() {\n return (self.isGesturing = false) || onGestureEnd(self);\n },\n onScroll = function onScroll(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n\n var x = scrollFuncX(),\n y = scrollFuncY();\n onDelta((x - scrollX) * scrollSpeed, (y - scrollY) * scrollSpeed, 1);\n scrollX = x;\n scrollY = y;\n onStop && onStopDelayedCall.restart(true);\n },\n _onWheel = function _onWheel(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n\n e = _getEvent(e, preventDefault);\n onWheel && (wheeled = true);\n var multiplier = (e.deltaMode === 1 ? lineHeight : e.deltaMode === 2 ? _win.innerHeight : 1) * wheelSpeed;\n onDelta(e.deltaX * multiplier, e.deltaY * multiplier, 0);\n onStop && !isNormalizer && onStopDelayedCall.restart(true);\n },\n _onMove = function _onMove(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n\n var x = e.clientX,\n y = e.clientY,\n dx = x - self.x,\n dy = y - self.y;\n self.x = x;\n self.y = y;\n moved = true;\n onStop && onStopDelayedCall.restart(true);\n (dx || dy) && onTouchOrPointerDelta(dx, dy);\n },\n _onHover = function _onHover(e) {\n self.event = e;\n onHover(self);\n },\n _onHoverEnd = function _onHoverEnd(e) {\n self.event = e;\n onHoverEnd(self);\n },\n _onClick = function _onClick(e) {\n return _ignoreCheck(e) || _getEvent(e, preventDefault) && onClick(self);\n };\n\n onStopDelayedCall = self._dc = gsap.delayedCall(onStopDelay || 0.25, onStopFunc).pause();\n self.deltaX = self.deltaY = 0;\n self._vx = _getVelocityProp(0, 50, true);\n self._vy = _getVelocityProp(0, 50, true);\n self.scrollX = scrollFuncX;\n self.scrollY = scrollFuncY;\n self.isDragging = self.isGesturing = self.isPressed = false;\n\n _context(this);\n\n self.enable = function (e) {\n if (!self.isEnabled) {\n _addListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n\n type.indexOf(\"scroll\") >= 0 && _addListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, passive, capture);\n type.indexOf(\"wheel\") >= 0 && _addListener(target, \"wheel\", _onWheel, passive, capture);\n\n if (type.indexOf(\"touch\") >= 0 && _isTouch || type.indexOf(\"pointer\") >= 0) {\n _addListener(target, _eventTypes[0], _onPress, passive, capture);\n\n _addListener(ownerDoc, _eventTypes[2], _onRelease);\n\n _addListener(ownerDoc, _eventTypes[3], _onRelease);\n\n allowClicks && _addListener(target, \"click\", clickCapture, true, true);\n onClick && _addListener(target, \"click\", _onClick);\n onGestureStart && _addListener(ownerDoc, \"gesturestart\", _onGestureStart);\n onGestureEnd && _addListener(ownerDoc, \"gestureend\", _onGestureEnd);\n onHover && _addListener(target, _pointerType + \"enter\", _onHover);\n onHoverEnd && _addListener(target, _pointerType + \"leave\", _onHoverEnd);\n onMove && _addListener(target, _pointerType + \"move\", _onMove);\n }\n\n self.isEnabled = true;\n e && e.type && _onPress(e);\n onEnable && onEnable(self);\n }\n\n return self;\n };\n\n self.disable = function () {\n if (self.isEnabled) {\n // only remove the _onScroll listener if there aren't any others that rely on the functionality.\n _observers.filter(function (o) {\n return o !== self && _isViewport(o.target);\n }).length || _removeListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n\n if (self.isPressed) {\n self._vx.reset();\n\n self._vy.reset();\n\n _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n }\n\n _removeListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, capture);\n\n _removeListener(target, \"wheel\", _onWheel, capture);\n\n _removeListener(target, _eventTypes[0], _onPress, capture);\n\n _removeListener(ownerDoc, _eventTypes[2], _onRelease);\n\n _removeListener(ownerDoc, _eventTypes[3], _onRelease);\n\n _removeListener(target, \"click\", clickCapture, true);\n\n _removeListener(target, \"click\", _onClick);\n\n _removeListener(ownerDoc, \"gesturestart\", _onGestureStart);\n\n _removeListener(ownerDoc, \"gestureend\", _onGestureEnd);\n\n _removeListener(target, _pointerType + \"enter\", _onHover);\n\n _removeListener(target, _pointerType + \"leave\", _onHoverEnd);\n\n _removeListener(target, _pointerType + \"move\", _onMove);\n\n self.isEnabled = self.isPressed = self.isDragging = false;\n onDisable && onDisable(self);\n }\n };\n\n self.kill = self.revert = function () {\n self.disable();\n\n var i = _observers.indexOf(self);\n\n i >= 0 && _observers.splice(i, 1);\n _normalizer === self && (_normalizer = 0);\n };\n\n _observers.push(self);\n\n isNormalizer && _isViewport(target) && (_normalizer = self);\n self.enable(event);\n };\n\n _createClass(Observer, [{\n key: \"velocityX\",\n get: function get() {\n return this._vx.getVelocity();\n }\n }, {\n key: \"velocityY\",\n get: function get() {\n return this._vy.getVelocity();\n }\n }]);\n\n return Observer;\n}();\nObserver.version = \"3.12.5\";\n\nObserver.create = function (vars) {\n return new Observer(vars);\n};\n\nObserver.register = _initCore;\n\nObserver.getAll = function () {\n return _observers.slice();\n};\n\nObserver.getById = function (id) {\n return _observers.filter(function (o) {\n return o.vars.id === id;\n })[0];\n};\n\n_getGSAP() && gsap.registerPlugin(Observer);\nexport { Observer as default, _isViewport, _scrollers, _getScrollFunc, _getProxyProp, _proxies, _getVelocityProp, _vertical, _horizontal, _getTarget };","/*!\n * ScrollTrigger 3.12.5\n * https://gsap.com\n *\n * @license Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { Observer, _getTarget, _vertical, _horizontal, _scrollers, _proxies, _getScrollFunc, _getProxyProp, _getVelocityProp } from \"./Observer.js\";\n\nvar gsap,\n _coreInitted,\n _win,\n _doc,\n _docEl,\n _body,\n _root,\n _resizeDelay,\n _toArray,\n _clamp,\n _time2,\n _syncInterval,\n _refreshing,\n _pointerIsDown,\n _transformProp,\n _i,\n _prevWidth,\n _prevHeight,\n _autoRefresh,\n _sort,\n _suppressOverwrites,\n _ignoreResize,\n _normalizer,\n _ignoreMobileResize,\n _baseScreenHeight,\n _baseScreenWidth,\n _fixIOSBug,\n _context,\n _scrollRestoration,\n _div100vh,\n _100vh,\n _isReverted,\n _clampingMax,\n _limitCallbacks,\n // if true, we'll only trigger callbacks if the active state toggles, so if you scroll immediately past both the start and end positions of a ScrollTrigger (thus inactive to inactive), neither its onEnter nor onLeave will be called. This is useful during startup.\n_startup = 1,\n _getTime = Date.now,\n _time1 = _getTime(),\n _lastScrollTime = 0,\n _enabled = 0,\n _parseClamp = function _parseClamp(value, type, self) {\n var clamp = _isString(value) && (value.substr(0, 6) === \"clamp(\" || value.indexOf(\"max\") > -1);\n self[\"_\" + type + \"Clamp\"] = clamp;\n return clamp ? value.substr(6, value.length - 7) : value;\n},\n _keepClamp = function _keepClamp(value, clamp) {\n return clamp && (!_isString(value) || value.substr(0, 6) !== \"clamp(\") ? \"clamp(\" + value + \")\" : value;\n},\n _rafBugFix = function _rafBugFix() {\n return _enabled && requestAnimationFrame(_rafBugFix);\n},\n // in some browsers (like Firefox), screen repaints weren't consistent unless we had SOMETHING queued up in requestAnimationFrame()! So this just creates a super simple loop to keep it alive and smooth out repaints.\n_pointerDownHandler = function _pointerDownHandler() {\n return _pointerIsDown = 1;\n},\n _pointerUpHandler = function _pointerUpHandler() {\n return _pointerIsDown = 0;\n},\n _passThrough = function _passThrough(v) {\n return v;\n},\n _round = function _round(value) {\n return Math.round(value * 100000) / 100000 || 0;\n},\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _getGSAP = function _getGSAP() {\n return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _isViewport = function _isViewport(e) {\n return !!~_root.indexOf(e);\n},\n _getViewportDimension = function _getViewportDimension(dimensionProperty) {\n return (dimensionProperty === \"Height\" ? _100vh : _win[\"inner\" + dimensionProperty]) || _docEl[\"client\" + dimensionProperty] || _body[\"client\" + dimensionProperty];\n},\n _getBoundsFunc = function _getBoundsFunc(element) {\n return _getProxyProp(element, \"getBoundingClientRect\") || (_isViewport(element) ? function () {\n _winOffsets.width = _win.innerWidth;\n _winOffsets.height = _100vh;\n return _winOffsets;\n } : function () {\n return _getBounds(element);\n });\n},\n _getSizeFunc = function _getSizeFunc(scroller, isViewport, _ref) {\n var d = _ref.d,\n d2 = _ref.d2,\n a = _ref.a;\n return (a = _getProxyProp(scroller, \"getBoundingClientRect\")) ? function () {\n return a()[d];\n } : function () {\n return (isViewport ? _getViewportDimension(d2) : scroller[\"client\" + d2]) || 0;\n };\n},\n _getOffsetsFunc = function _getOffsetsFunc(element, isViewport) {\n return !isViewport || ~_proxies.indexOf(element) ? _getBoundsFunc(element) : function () {\n return _winOffsets;\n };\n},\n _maxScroll = function _maxScroll(element, _ref2) {\n var s = _ref2.s,\n d2 = _ref2.d2,\n d = _ref2.d,\n a = _ref2.a;\n return Math.max(0, (s = \"scroll\" + d2) && (a = _getProxyProp(element, s)) ? a() - _getBoundsFunc(element)()[d] : _isViewport(element) ? (_docEl[s] || _body[s]) - _getViewportDimension(d2) : element[s] - element[\"offset\" + d2]);\n},\n _iterateAutoRefresh = function _iterateAutoRefresh(func, events) {\n for (var i = 0; i < _autoRefresh.length; i += 3) {\n (!events || ~events.indexOf(_autoRefresh[i + 1])) && func(_autoRefresh[i], _autoRefresh[i + 1], _autoRefresh[i + 2]);\n }\n},\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isObject = function _isObject(value) {\n return typeof value === \"object\";\n},\n _endAnimation = function _endAnimation(animation, reversed, pause) {\n return animation && animation.progress(reversed ? 0 : 1) && pause && animation.pause();\n},\n _callback = function _callback(self, func) {\n if (self.enabled) {\n var result = self._ctx ? self._ctx.add(function () {\n return func(self);\n }) : func(self);\n result && result.totalTime && (self.callbackAnimation = result);\n }\n},\n _abs = Math.abs,\n _left = \"left\",\n _top = \"top\",\n _right = \"right\",\n _bottom = \"bottom\",\n _width = \"width\",\n _height = \"height\",\n _Right = \"Right\",\n _Left = \"Left\",\n _Top = \"Top\",\n _Bottom = \"Bottom\",\n _padding = \"padding\",\n _margin = \"margin\",\n _Width = \"Width\",\n _Height = \"Height\",\n _px = \"px\",\n _getComputedStyle = function _getComputedStyle(element) {\n return _win.getComputedStyle(element);\n},\n _makePositionable = function _makePositionable(element) {\n // if the element already has position: absolute or fixed, leave that, otherwise make it position: relative\n var position = _getComputedStyle(element).position;\n\n element.style.position = position === \"absolute\" || position === \"fixed\" ? position : \"relative\";\n},\n _setDefaults = function _setDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n\n return obj;\n},\n _getBounds = function _getBounds(element, withoutTransforms) {\n var tween = withoutTransforms && _getComputedStyle(element)[_transformProp] !== \"matrix(1, 0, 0, 1, 0, 0)\" && gsap.to(element, {\n x: 0,\n y: 0,\n xPercent: 0,\n yPercent: 0,\n rotation: 0,\n rotationX: 0,\n rotationY: 0,\n scale: 1,\n skewX: 0,\n skewY: 0\n }).progress(1),\n bounds = element.getBoundingClientRect();\n tween && tween.progress(0).kill();\n return bounds;\n},\n _getSize = function _getSize(element, _ref3) {\n var d2 = _ref3.d2;\n return element[\"offset\" + d2] || element[\"client\" + d2] || 0;\n},\n _getLabelRatioArray = function _getLabelRatioArray(timeline) {\n var a = [],\n labels = timeline.labels,\n duration = timeline.duration(),\n p;\n\n for (p in labels) {\n a.push(labels[p] / duration);\n }\n\n return a;\n},\n _getClosestLabel = function _getClosestLabel(animation) {\n return function (value) {\n return gsap.utils.snap(_getLabelRatioArray(animation), value);\n };\n},\n _snapDirectional = function _snapDirectional(snapIncrementOrArray) {\n var snap = gsap.utils.snap(snapIncrementOrArray),\n a = Array.isArray(snapIncrementOrArray) && snapIncrementOrArray.slice(0).sort(function (a, b) {\n return a - b;\n });\n return a ? function (value, direction, threshold) {\n if (threshold === void 0) {\n threshold = 1e-3;\n }\n\n var i;\n\n if (!direction) {\n return snap(value);\n }\n\n if (direction > 0) {\n value -= threshold; // to avoid rounding errors. If we're too strict, it might snap forward, then immediately again, and again.\n\n for (i = 0; i < a.length; i++) {\n if (a[i] >= value) {\n return a[i];\n }\n }\n\n return a[i - 1];\n } else {\n i = a.length;\n value += threshold;\n\n while (i--) {\n if (a[i] <= value) {\n return a[i];\n }\n }\n }\n\n return a[0];\n } : function (value, direction, threshold) {\n if (threshold === void 0) {\n threshold = 1e-3;\n }\n\n var snapped = snap(value);\n return !direction || Math.abs(snapped - value) < threshold || snapped - value < 0 === direction < 0 ? snapped : snap(direction < 0 ? value - snapIncrementOrArray : value + snapIncrementOrArray);\n };\n},\n _getLabelAtDirection = function _getLabelAtDirection(timeline) {\n return function (value, st) {\n return _snapDirectional(_getLabelRatioArray(timeline))(value, st.direction);\n };\n},\n _multiListener = function _multiListener(func, element, types, callback) {\n return types.split(\",\").forEach(function (type) {\n return func(element, type, callback);\n });\n},\n _addListener = function _addListener(element, type, func, nonPassive, capture) {\n return element.addEventListener(type, func, {\n passive: !nonPassive,\n capture: !!capture\n });\n},\n _removeListener = function _removeListener(element, type, func, capture) {\n return element.removeEventListener(type, func, !!capture);\n},\n _wheelListener = function _wheelListener(func, el, scrollFunc) {\n scrollFunc = scrollFunc && scrollFunc.wheelHandler;\n\n if (scrollFunc) {\n func(el, \"wheel\", scrollFunc);\n func(el, \"touchmove\", scrollFunc);\n }\n},\n _markerDefaults = {\n startColor: \"green\",\n endColor: \"red\",\n indent: 0,\n fontSize: \"16px\",\n fontWeight: \"normal\"\n},\n _defaults = {\n toggleActions: \"play\",\n anticipatePin: 0\n},\n _keywords = {\n top: 0,\n left: 0,\n center: 0.5,\n bottom: 1,\n right: 1\n},\n _offsetToPx = function _offsetToPx(value, size) {\n if (_isString(value)) {\n var eqIndex = value.indexOf(\"=\"),\n relative = ~eqIndex ? +(value.charAt(eqIndex - 1) + 1) * parseFloat(value.substr(eqIndex + 1)) : 0;\n\n if (~eqIndex) {\n value.indexOf(\"%\") > eqIndex && (relative *= size / 100);\n value = value.substr(0, eqIndex - 1);\n }\n\n value = relative + (value in _keywords ? _keywords[value] * size : ~value.indexOf(\"%\") ? parseFloat(value) * size / 100 : parseFloat(value) || 0);\n }\n\n return value;\n},\n _createMarker = function _createMarker(type, name, container, direction, _ref4, offset, matchWidthEl, containerAnimation) {\n var startColor = _ref4.startColor,\n endColor = _ref4.endColor,\n fontSize = _ref4.fontSize,\n indent = _ref4.indent,\n fontWeight = _ref4.fontWeight;\n\n var e = _doc.createElement(\"div\"),\n useFixedPosition = _isViewport(container) || _getProxyProp(container, \"pinType\") === \"fixed\",\n isScroller = type.indexOf(\"scroller\") !== -1,\n parent = useFixedPosition ? _body : container,\n isStart = type.indexOf(\"start\") !== -1,\n color = isStart ? startColor : endColor,\n css = \"border-color:\" + color + \";font-size:\" + fontSize + \";color:\" + color + \";font-weight:\" + fontWeight + \";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;\";\n\n css += \"position:\" + ((isScroller || containerAnimation) && useFixedPosition ? \"fixed;\" : \"absolute;\");\n (isScroller || containerAnimation || !useFixedPosition) && (css += (direction === _vertical ? _right : _bottom) + \":\" + (offset + parseFloat(indent)) + \"px;\");\n matchWidthEl && (css += \"box-sizing:border-box;text-align:left;width:\" + matchWidthEl.offsetWidth + \"px;\");\n e._isStart = isStart;\n e.setAttribute(\"class\", \"gsap-marker-\" + type + (name ? \" marker-\" + name : \"\"));\n e.style.cssText = css;\n e.innerText = name || name === 0 ? type + \"-\" + name : type;\n parent.children[0] ? parent.insertBefore(e, parent.children[0]) : parent.appendChild(e);\n e._offset = e[\"offset\" + direction.op.d2];\n\n _positionMarker(e, 0, direction, isStart);\n\n return e;\n},\n _positionMarker = function _positionMarker(marker, start, direction, flipped) {\n var vars = {\n display: \"block\"\n },\n side = direction[flipped ? \"os2\" : \"p2\"],\n oppositeSide = direction[flipped ? \"p2\" : \"os2\"];\n marker._isFlipped = flipped;\n vars[direction.a + \"Percent\"] = flipped ? -100 : 0;\n vars[direction.a] = flipped ? \"1px\" : 0;\n vars[\"border\" + side + _Width] = 1;\n vars[\"border\" + oppositeSide + _Width] = 0;\n vars[direction.p] = start + \"px\";\n gsap.set(marker, vars);\n},\n _triggers = [],\n _ids = {},\n _rafID,\n _sync = function _sync() {\n return _getTime() - _lastScrollTime > 34 && (_rafID || (_rafID = requestAnimationFrame(_updateAll)));\n},\n _onScroll = function _onScroll() {\n // previously, we tried to optimize performance by batching/deferring to the next requestAnimationFrame(), but discovered that Safari has a few bugs that make this unworkable (especially on iOS). See https://codepen.io/GreenSock/pen/16c435b12ef09c38125204818e7b45fc?editors=0010 and https://codepen.io/GreenSock/pen/JjOxYpQ/3dd65ccec5a60f1d862c355d84d14562?editors=0010 and https://codepen.io/GreenSock/pen/ExbrPNa/087cef197dc35445a0951e8935c41503?editors=0010\n if (!_normalizer || !_normalizer.isPressed || _normalizer.startX > _body.clientWidth) {\n // if the user is dragging the scrollbar, allow it.\n _scrollers.cache++;\n\n if (_normalizer) {\n _rafID || (_rafID = requestAnimationFrame(_updateAll));\n } else {\n _updateAll(); // Safari in particular (on desktop) NEEDS the immediate update rather than waiting for a requestAnimationFrame() whereas iOS seems to benefit from waiting for the requestAnimationFrame() tick, at least when normalizing. See https://codepen.io/GreenSock/pen/qBYozqO?editors=0110\n\n }\n\n _lastScrollTime || _dispatch(\"scrollStart\");\n _lastScrollTime = _getTime();\n }\n},\n _setBaseDimensions = function _setBaseDimensions() {\n _baseScreenWidth = _win.innerWidth;\n _baseScreenHeight = _win.innerHeight;\n},\n _onResize = function _onResize() {\n _scrollers.cache++;\n !_refreshing && !_ignoreResize && !_doc.fullscreenElement && !_doc.webkitFullscreenElement && (!_ignoreMobileResize || _baseScreenWidth !== _win.innerWidth || Math.abs(_win.innerHeight - _baseScreenHeight) > _win.innerHeight * 0.25) && _resizeDelay.restart(true);\n},\n // ignore resizes triggered by refresh()\n_listeners = {},\n _emptyArray = [],\n _softRefresh = function _softRefresh() {\n return _removeListener(ScrollTrigger, \"scrollEnd\", _softRefresh) || _refreshAll(true);\n},\n _dispatch = function _dispatch(type) {\n return _listeners[type] && _listeners[type].map(function (f) {\n return f();\n }) || _emptyArray;\n},\n _savedStyles = [],\n // when ScrollTrigger.saveStyles() is called, the inline styles are recorded in this Array in a sequential format like [element, cssText, gsCache, media]. This keeps it very memory-efficient and fast to iterate through.\n_revertRecorded = function _revertRecorded(media) {\n for (var i = 0; i < _savedStyles.length; i += 5) {\n if (!media || _savedStyles[i + 4] && _savedStyles[i + 4].query === media) {\n _savedStyles[i].style.cssText = _savedStyles[i + 1];\n _savedStyles[i].getBBox && _savedStyles[i].setAttribute(\"transform\", _savedStyles[i + 2] || \"\");\n _savedStyles[i + 3].uncache = 1;\n }\n }\n},\n _revertAll = function _revertAll(kill, media) {\n var trigger;\n\n for (_i = 0; _i < _triggers.length; _i++) {\n trigger = _triggers[_i];\n\n if (trigger && (!media || trigger._ctx === media)) {\n if (kill) {\n trigger.kill(1);\n } else {\n trigger.revert(true, true);\n }\n }\n }\n\n _isReverted = true;\n media && _revertRecorded(media);\n media || _dispatch(\"revert\");\n},\n _clearScrollMemory = function _clearScrollMemory(scrollRestoration, force) {\n // zero-out all the recorded scroll positions. Don't use _triggers because if, for example, .matchMedia() is used to create some ScrollTriggers and then the user resizes and it removes ALL ScrollTriggers, and then go back to a size where there are ScrollTriggers, it would have kept the position(s) saved from the initial state.\n _scrollers.cache++;\n (force || !_refreshingAll) && _scrollers.forEach(function (obj) {\n return _isFunction(obj) && obj.cacheID++ && (obj.rec = 0);\n });\n _isString(scrollRestoration) && (_win.history.scrollRestoration = _scrollRestoration = scrollRestoration);\n},\n _refreshingAll,\n _refreshID = 0,\n _queueRefreshID,\n _queueRefreshAll = function _queueRefreshAll() {\n // we don't want to call _refreshAll() every time we create a new ScrollTrigger (for performance reasons) - it's better to batch them. Some frameworks dynamically load content and we can't rely on the window's \"load\" or \"DOMContentLoaded\" events to trigger it.\n if (_queueRefreshID !== _refreshID) {\n var id = _queueRefreshID = _refreshID;\n requestAnimationFrame(function () {\n return id === _refreshID && _refreshAll(true);\n });\n }\n},\n _refresh100vh = function _refresh100vh() {\n _body.appendChild(_div100vh);\n\n _100vh = !_normalizer && _div100vh.offsetHeight || _win.innerHeight;\n\n _body.removeChild(_div100vh);\n},\n _hideAllMarkers = function _hideAllMarkers(hide) {\n return _toArray(\".gsap-marker-start, .gsap-marker-end, .gsap-marker-scroller-start, .gsap-marker-scroller-end\").forEach(function (el) {\n return el.style.display = hide ? \"none\" : \"block\";\n });\n},\n _refreshAll = function _refreshAll(force, skipRevert) {\n if (_lastScrollTime && !force && !_isReverted) {\n _addListener(ScrollTrigger, \"scrollEnd\", _softRefresh);\n\n return;\n }\n\n _refresh100vh();\n\n _refreshingAll = ScrollTrigger.isRefreshing = true;\n\n _scrollers.forEach(function (obj) {\n return _isFunction(obj) && ++obj.cacheID && (obj.rec = obj());\n }); // force the clearing of the cache because some browsers take a little while to dispatch the \"scroll\" event and the user may have changed the scroll position and then called ScrollTrigger.refresh() right away\n\n\n var refreshInits = _dispatch(\"refreshInit\");\n\n _sort && ScrollTrigger.sort();\n skipRevert || _revertAll();\n\n _scrollers.forEach(function (obj) {\n if (_isFunction(obj)) {\n obj.smooth && (obj.target.style.scrollBehavior = \"auto\"); // smooth scrolling interferes\n\n obj(0);\n }\n });\n\n _triggers.slice(0).forEach(function (t) {\n return t.refresh();\n }); // don't loop with _i because during a refresh() someone could call ScrollTrigger.update() which would iterate through _i resulting in a skip.\n\n\n _isReverted = false;\n\n _triggers.forEach(function (t) {\n // nested pins (pinnedContainer) with pinSpacing may expand the container, so we must accommodate that here.\n if (t._subPinOffset && t.pin) {\n var prop = t.vars.horizontal ? \"offsetWidth\" : \"offsetHeight\",\n original = t.pin[prop];\n t.revert(true, 1);\n t.adjustPinSpacing(t.pin[prop] - original);\n t.refresh();\n }\n });\n\n _clampingMax = 1; // pinSpacing might be propping a page open, thus when we .setPositions() to clamp a ScrollTrigger's end we should leave the pinSpacing alone. That's what this flag is for.\n\n _hideAllMarkers(true);\n\n _triggers.forEach(function (t) {\n // the scroller's max scroll position may change after all the ScrollTriggers refreshed (like pinning could push it down), so we need to loop back and correct any with end: \"max\". Same for anything with a clamped end\n var max = _maxScroll(t.scroller, t._dir),\n endClamp = t.vars.end === \"max\" || t._endClamp && t.end > max,\n startClamp = t._startClamp && t.start >= max;\n\n (endClamp || startClamp) && t.setPositions(startClamp ? max - 1 : t.start, endClamp ? Math.max(startClamp ? max : t.start + 1, max) : t.end, true);\n });\n\n _hideAllMarkers(false);\n\n _clampingMax = 0;\n refreshInits.forEach(function (result) {\n return result && result.render && result.render(-1);\n }); // if the onRefreshInit() returns an animation (typically a gsap.set()), revert it. This makes it easy to put things in a certain spot before refreshing for measurement purposes, and then put things back.\n\n _scrollers.forEach(function (obj) {\n if (_isFunction(obj)) {\n obj.smooth && requestAnimationFrame(function () {\n return obj.target.style.scrollBehavior = \"smooth\";\n });\n obj.rec && obj(obj.rec);\n }\n });\n\n _clearScrollMemory(_scrollRestoration, 1);\n\n _resizeDelay.pause();\n\n _refreshID++;\n _refreshingAll = 2;\n\n _updateAll(2);\n\n _triggers.forEach(function (t) {\n return _isFunction(t.vars.onRefresh) && t.vars.onRefresh(t);\n });\n\n _refreshingAll = ScrollTrigger.isRefreshing = false;\n\n _dispatch(\"refresh\");\n},\n _lastScroll = 0,\n _direction = 1,\n _primary,\n _updateAll = function _updateAll(force) {\n if (force === 2 || !_refreshingAll && !_isReverted) {\n // _isReverted could be true if, for example, a matchMedia() is in the process of executing. We don't want to update during the time everything is reverted.\n ScrollTrigger.isUpdating = true;\n _primary && _primary.update(0); // ScrollSmoother uses refreshPriority -9999 to become the primary that gets updated before all others because it affects the scroll position.\n\n var l = _triggers.length,\n time = _getTime(),\n recordVelocity = time - _time1 >= 50,\n scroll = l && _triggers[0].scroll();\n\n _direction = _lastScroll > scroll ? -1 : 1;\n _refreshingAll || (_lastScroll = scroll);\n\n if (recordVelocity) {\n if (_lastScrollTime && !_pointerIsDown && time - _lastScrollTime > 200) {\n _lastScrollTime = 0;\n\n _dispatch(\"scrollEnd\");\n }\n\n _time2 = _time1;\n _time1 = time;\n }\n\n if (_direction < 0) {\n _i = l;\n\n while (_i-- > 0) {\n _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n }\n\n _direction = 1;\n } else {\n for (_i = 0; _i < l; _i++) {\n _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n }\n }\n\n ScrollTrigger.isUpdating = false;\n }\n\n _rafID = 0;\n},\n _propNamesToCopy = [_left, _top, _bottom, _right, _margin + _Bottom, _margin + _Right, _margin + _Top, _margin + _Left, \"display\", \"flexShrink\", \"float\", \"zIndex\", \"gridColumnStart\", \"gridColumnEnd\", \"gridRowStart\", \"gridRowEnd\", \"gridArea\", \"justifySelf\", \"alignSelf\", \"placeSelf\", \"order\"],\n _stateProps = _propNamesToCopy.concat([_width, _height, \"boxSizing\", \"max\" + _Width, \"max\" + _Height, \"position\", _margin, _padding, _padding + _Top, _padding + _Right, _padding + _Bottom, _padding + _Left]),\n _swapPinOut = function _swapPinOut(pin, spacer, state) {\n _setState(state);\n\n var cache = pin._gsap;\n\n if (cache.spacerIsNative) {\n _setState(cache.spacerState);\n } else if (pin._gsap.swappedIn) {\n var parent = spacer.parentNode;\n\n if (parent) {\n parent.insertBefore(pin, spacer);\n parent.removeChild(spacer);\n }\n }\n\n pin._gsap.swappedIn = false;\n},\n _swapPinIn = function _swapPinIn(pin, spacer, cs, spacerState) {\n if (!pin._gsap.swappedIn) {\n var i = _propNamesToCopy.length,\n spacerStyle = spacer.style,\n pinStyle = pin.style,\n p;\n\n while (i--) {\n p = _propNamesToCopy[i];\n spacerStyle[p] = cs[p];\n }\n\n spacerStyle.position = cs.position === \"absolute\" ? \"absolute\" : \"relative\";\n cs.display === \"inline\" && (spacerStyle.display = \"inline-block\");\n pinStyle[_bottom] = pinStyle[_right] = \"auto\";\n spacerStyle.flexBasis = cs.flexBasis || \"auto\";\n spacerStyle.overflow = \"visible\";\n spacerStyle.boxSizing = \"border-box\";\n spacerStyle[_width] = _getSize(pin, _horizontal) + _px;\n spacerStyle[_height] = _getSize(pin, _vertical) + _px;\n spacerStyle[_padding] = pinStyle[_margin] = pinStyle[_top] = pinStyle[_left] = \"0\";\n\n _setState(spacerState);\n\n pinStyle[_width] = pinStyle[\"max\" + _Width] = cs[_width];\n pinStyle[_height] = pinStyle[\"max\" + _Height] = cs[_height];\n pinStyle[_padding] = cs[_padding];\n\n if (pin.parentNode !== spacer) {\n pin.parentNode.insertBefore(spacer, pin);\n spacer.appendChild(pin);\n }\n\n pin._gsap.swappedIn = true;\n }\n},\n _capsExp = /([A-Z])/g,\n _setState = function _setState(state) {\n if (state) {\n var style = state.t.style,\n l = state.length,\n i = 0,\n p,\n value;\n (state.t._gsap || gsap.core.getCache(state.t)).uncache = 1; // otherwise transforms may be off\n\n for (; i < l; i += 2) {\n value = state[i + 1];\n p = state[i];\n\n if (value) {\n style[p] = value;\n } else if (style[p]) {\n style.removeProperty(p.replace(_capsExp, \"-$1\").toLowerCase());\n }\n }\n }\n},\n _getState = function _getState(element) {\n // returns an Array with alternating values like [property, value, property, value] and a \"t\" property pointing to the target (element). Makes it fast and cheap.\n var l = _stateProps.length,\n style = element.style,\n state = [],\n i = 0;\n\n for (; i < l; i++) {\n state.push(_stateProps[i], style[_stateProps[i]]);\n }\n\n state.t = element;\n return state;\n},\n _copyState = function _copyState(state, override, omitOffsets) {\n var result = [],\n l = state.length,\n i = omitOffsets ? 8 : 0,\n // skip top, left, right, bottom if omitOffsets is true\n p;\n\n for (; i < l; i += 2) {\n p = state[i];\n result.push(p, p in override ? override[p] : state[i + 1]);\n }\n\n result.t = state.t;\n return result;\n},\n _winOffsets = {\n left: 0,\n top: 0\n},\n // // potential future feature (?) Allow users to calculate where a trigger hits (scroll position) like getScrollPosition(\"#id\", \"top bottom\")\n// _getScrollPosition = (trigger, position, {scroller, containerAnimation, horizontal}) => {\n// \tscroller = _getTarget(scroller || _win);\n// \tlet direction = horizontal ? _horizontal : _vertical,\n// \t\tisViewport = _isViewport(scroller);\n// \t_getSizeFunc(scroller, isViewport, direction);\n// \treturn _parsePosition(position, _getTarget(trigger), _getSizeFunc(scroller, isViewport, direction)(), direction, _getScrollFunc(scroller, direction)(), 0, 0, 0, _getOffsetsFunc(scroller, isViewport)(), isViewport ? 0 : parseFloat(_getComputedStyle(scroller)[\"border\" + direction.p2 + _Width]) || 0, 0, containerAnimation ? containerAnimation.duration() : _maxScroll(scroller), containerAnimation);\n// },\n_parsePosition = function _parsePosition(value, trigger, scrollerSize, direction, scroll, marker, markerScroller, self, scrollerBounds, borderWidth, useFixedPosition, scrollerMax, containerAnimation, clampZeroProp) {\n _isFunction(value) && (value = value(self));\n\n if (_isString(value) && value.substr(0, 3) === \"max\") {\n value = scrollerMax + (value.charAt(4) === \"=\" ? _offsetToPx(\"0\" + value.substr(3), scrollerSize) : 0);\n }\n\n var time = containerAnimation ? containerAnimation.time() : 0,\n p1,\n p2,\n element;\n containerAnimation && containerAnimation.seek(0);\n isNaN(value) || (value = +value); // convert a string number like \"45\" to an actual number\n\n if (!_isNumber(value)) {\n _isFunction(trigger) && (trigger = trigger(self));\n var offsets = (value || \"0\").split(\" \"),\n bounds,\n localOffset,\n globalOffset,\n display;\n element = _getTarget(trigger, self) || _body;\n bounds = _getBounds(element) || {};\n\n if ((!bounds || !bounds.left && !bounds.top) && _getComputedStyle(element).display === \"none\") {\n // if display is \"none\", it won't report getBoundingClientRect() properly\n display = element.style.display;\n element.style.display = \"block\";\n bounds = _getBounds(element);\n display ? element.style.display = display : element.style.removeProperty(\"display\");\n }\n\n localOffset = _offsetToPx(offsets[0], bounds[direction.d]);\n globalOffset = _offsetToPx(offsets[1] || \"0\", scrollerSize);\n value = bounds[direction.p] - scrollerBounds[direction.p] - borderWidth + localOffset + scroll - globalOffset;\n markerScroller && _positionMarker(markerScroller, globalOffset, direction, scrollerSize - globalOffset < 20 || markerScroller._isStart && globalOffset > 20);\n scrollerSize -= scrollerSize - globalOffset; // adjust for the marker\n } else {\n containerAnimation && (value = gsap.utils.mapRange(containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, 0, scrollerMax, value));\n markerScroller && _positionMarker(markerScroller, scrollerSize, direction, true);\n }\n\n if (clampZeroProp) {\n self[clampZeroProp] = value || -0.001;\n value < 0 && (value = 0);\n }\n\n if (marker) {\n var position = value + scrollerSize,\n isStart = marker._isStart;\n p1 = \"scroll\" + direction.d2;\n\n _positionMarker(marker, position, direction, isStart && position > 20 || !isStart && (useFixedPosition ? Math.max(_body[p1], _docEl[p1]) : marker.parentNode[p1]) <= position + 1);\n\n if (useFixedPosition) {\n scrollerBounds = _getBounds(markerScroller);\n useFixedPosition && (marker.style[direction.op.p] = scrollerBounds[direction.op.p] - direction.op.m - marker._offset + _px);\n }\n }\n\n if (containerAnimation && element) {\n p1 = _getBounds(element);\n containerAnimation.seek(scrollerMax);\n p2 = _getBounds(element);\n containerAnimation._caScrollDist = p1[direction.p] - p2[direction.p];\n value = value / containerAnimation._caScrollDist * scrollerMax;\n }\n\n containerAnimation && containerAnimation.seek(time);\n return containerAnimation ? value : Math.round(value);\n},\n _prefixExp = /(webkit|moz|length|cssText|inset)/i,\n _reparent = function _reparent(element, parent, top, left) {\n if (element.parentNode !== parent) {\n var style = element.style,\n p,\n cs;\n\n if (parent === _body) {\n element._stOrig = style.cssText; // record original inline styles so we can revert them later\n\n cs = _getComputedStyle(element);\n\n for (p in cs) {\n // must copy all relevant styles to ensure that nothing changes visually when we reparent to the . Skip the vendor prefixed ones.\n if (!+p && !_prefixExp.test(p) && cs[p] && typeof style[p] === \"string\" && p !== \"0\") {\n style[p] = cs[p];\n }\n }\n\n style.top = top;\n style.left = left;\n } else {\n style.cssText = element._stOrig;\n }\n\n gsap.core.getCache(element).uncache = 1;\n parent.appendChild(element);\n }\n},\n _interruptionTracker = function _interruptionTracker(getValueFunc, initialValue, onInterrupt) {\n var last1 = initialValue,\n last2 = last1;\n return function (value) {\n var current = Math.round(getValueFunc()); // round because in some [very uncommon] Windows environments, scroll can get reported with decimals even though it was set without.\n\n if (current !== last1 && current !== last2 && Math.abs(current - last1) > 3 && Math.abs(current - last2) > 3) {\n // if the user scrolls, kill the tween. iOS Safari intermittently misreports the scroll position, it may be the most recently-set one or the one before that! When Safari is zoomed (CMD-+), it often misreports as 1 pixel off too! So if we set the scroll position to 125, for example, it'll actually report it as 124.\n value = current;\n onInterrupt && onInterrupt();\n }\n\n last2 = last1;\n last1 = value;\n return value;\n };\n},\n _shiftMarker = function _shiftMarker(marker, direction, value) {\n var vars = {};\n vars[direction.p] = \"+=\" + value;\n gsap.set(marker, vars);\n},\n // _mergeAnimations = animations => {\n// \tlet tl = gsap.timeline({smoothChildTiming: true}).startTime(Math.min(...animations.map(a => a.globalTime(0))));\n// \tanimations.forEach(a => {let time = a.totalTime(); tl.add(a); a.totalTime(time); });\n// \ttl.smoothChildTiming = false;\n// \treturn tl;\n// },\n// returns a function that can be used to tween the scroll position in the direction provided, and when doing so it'll add a .tween property to the FUNCTION itself, and remove it when the tween completes or gets killed. This gives us a way to have multiple ScrollTriggers use a central function for any given scroller and see if there's a scroll tween running (which would affect if/how things get updated)\n_getTweenCreator = function _getTweenCreator(scroller, direction) {\n var getScroll = _getScrollFunc(scroller, direction),\n prop = \"_scroll\" + direction.p2,\n // add a tweenable property to the scroller that's a getter/setter function, like _scrollTop or _scrollLeft. This way, if someone does gsap.killTweensOf(scroller) it'll kill the scroll tween.\n getTween = function getTween(scrollTo, vars, initialValue, change1, change2) {\n var tween = getTween.tween,\n onComplete = vars.onComplete,\n modifiers = {};\n initialValue = initialValue || getScroll();\n\n var checkForInterruption = _interruptionTracker(getScroll, initialValue, function () {\n tween.kill();\n getTween.tween = 0;\n });\n\n change2 = change1 && change2 || 0; // if change1 is 0, we set that to the difference and ignore change2. Otherwise, there would be a compound effect.\n\n change1 = change1 || scrollTo - initialValue;\n tween && tween.kill();\n vars[prop] = scrollTo;\n vars.inherit = false;\n vars.modifiers = modifiers;\n\n modifiers[prop] = function () {\n return checkForInterruption(initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio);\n };\n\n vars.onUpdate = function () {\n _scrollers.cache++;\n getTween.tween && _updateAll(); // if it was interrupted/killed, like in a context.revert(), don't force an updateAll()\n };\n\n vars.onComplete = function () {\n getTween.tween = 0;\n onComplete && onComplete.call(tween);\n };\n\n tween = getTween.tween = gsap.to(scroller, vars);\n return tween;\n };\n\n scroller[prop] = getScroll;\n\n getScroll.wheelHandler = function () {\n return getTween.tween && getTween.tween.kill() && (getTween.tween = 0);\n };\n\n _addListener(scroller, \"wheel\", getScroll.wheelHandler); // Windows machines handle mousewheel scrolling in chunks (like \"3 lines per scroll\") meaning the typical strategy for cancelling the scroll isn't as sensitive. It's much more likely to match one of the previous 2 scroll event positions. So we kill any snapping as soon as there's a wheel event.\n\n\n ScrollTrigger.isTouch && _addListener(scroller, \"touchmove\", getScroll.wheelHandler);\n return getTween;\n};\n\nexport var ScrollTrigger = /*#__PURE__*/function () {\n function ScrollTrigger(vars, animation) {\n _coreInitted || ScrollTrigger.register(gsap) || console.warn(\"Please gsap.registerPlugin(ScrollTrigger)\");\n\n _context(this);\n\n this.init(vars, animation);\n }\n\n var _proto = ScrollTrigger.prototype;\n\n _proto.init = function init(vars, animation) {\n this.progress = this.start = 0;\n this.vars && this.kill(true, true); // in case it's being initted again\n\n if (!_enabled) {\n this.update = this.refresh = this.kill = _passThrough;\n return;\n }\n\n vars = _setDefaults(_isString(vars) || _isNumber(vars) || vars.nodeType ? {\n trigger: vars\n } : vars, _defaults);\n\n var _vars = vars,\n onUpdate = _vars.onUpdate,\n toggleClass = _vars.toggleClass,\n id = _vars.id,\n onToggle = _vars.onToggle,\n onRefresh = _vars.onRefresh,\n scrub = _vars.scrub,\n trigger = _vars.trigger,\n pin = _vars.pin,\n pinSpacing = _vars.pinSpacing,\n invalidateOnRefresh = _vars.invalidateOnRefresh,\n anticipatePin = _vars.anticipatePin,\n onScrubComplete = _vars.onScrubComplete,\n onSnapComplete = _vars.onSnapComplete,\n once = _vars.once,\n snap = _vars.snap,\n pinReparent = _vars.pinReparent,\n pinSpacer = _vars.pinSpacer,\n containerAnimation = _vars.containerAnimation,\n fastScrollEnd = _vars.fastScrollEnd,\n preventOverlaps = _vars.preventOverlaps,\n direction = vars.horizontal || vars.containerAnimation && vars.horizontal !== false ? _horizontal : _vertical,\n isToggle = !scrub && scrub !== 0,\n scroller = _getTarget(vars.scroller || _win),\n scrollerCache = gsap.core.getCache(scroller),\n isViewport = _isViewport(scroller),\n useFixedPosition = (\"pinType\" in vars ? vars.pinType : _getProxyProp(scroller, \"pinType\") || isViewport && \"fixed\") === \"fixed\",\n callbacks = [vars.onEnter, vars.onLeave, vars.onEnterBack, vars.onLeaveBack],\n toggleActions = isToggle && vars.toggleActions.split(\" \"),\n markers = \"markers\" in vars ? vars.markers : _defaults.markers,\n borderWidth = isViewport ? 0 : parseFloat(_getComputedStyle(scroller)[\"border\" + direction.p2 + _Width]) || 0,\n self = this,\n onRefreshInit = vars.onRefreshInit && function () {\n return vars.onRefreshInit(self);\n },\n getScrollerSize = _getSizeFunc(scroller, isViewport, direction),\n getScrollerOffsets = _getOffsetsFunc(scroller, isViewport),\n lastSnap = 0,\n lastRefresh = 0,\n prevProgress = 0,\n scrollFunc = _getScrollFunc(scroller, direction),\n tweenTo,\n pinCache,\n snapFunc,\n scroll1,\n scroll2,\n start,\n end,\n markerStart,\n markerEnd,\n markerStartTrigger,\n markerEndTrigger,\n markerVars,\n executingOnRefresh,\n change,\n pinOriginalState,\n pinActiveState,\n pinState,\n spacer,\n offset,\n pinGetter,\n pinSetter,\n pinStart,\n pinChange,\n spacingStart,\n spacerState,\n markerStartSetter,\n pinMoves,\n markerEndSetter,\n cs,\n snap1,\n snap2,\n scrubTween,\n scrubSmooth,\n snapDurClamp,\n snapDelayedCall,\n prevScroll,\n prevAnimProgress,\n caMarkerSetter,\n customRevertReturn; // for the sake of efficiency, _startClamp/_endClamp serve like a truthy value indicating that clamping was enabled on the start/end, and ALSO store the actual pre-clamped numeric value. We tap into that in ScrollSmoother for speed effects. So for example, if start=\"clamp(top bottom)\" results in a start of -100 naturally, it would get clamped to 0 but -100 would be stored in _startClamp.\n\n\n self._startClamp = self._endClamp = false;\n self._dir = direction;\n anticipatePin *= 45;\n self.scroller = scroller;\n self.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc;\n scroll1 = scrollFunc();\n self.vars = vars;\n animation = animation || vars.animation;\n\n if (\"refreshPriority\" in vars) {\n _sort = 1;\n vars.refreshPriority === -9999 && (_primary = self); // used by ScrollSmoother\n }\n\n scrollerCache.tweenScroll = scrollerCache.tweenScroll || {\n top: _getTweenCreator(scroller, _vertical),\n left: _getTweenCreator(scroller, _horizontal)\n };\n self.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p];\n\n self.scrubDuration = function (value) {\n scrubSmooth = _isNumber(value) && value;\n\n if (!scrubSmooth) {\n scrubTween && scrubTween.progress(1).kill();\n scrubTween = 0;\n } else {\n scrubTween ? scrubTween.duration(value) : scrubTween = gsap.to(animation, {\n ease: \"expo\",\n totalProgress: \"+=0\",\n inherit: false,\n duration: scrubSmooth,\n paused: true,\n onComplete: function onComplete() {\n return onScrubComplete && onScrubComplete(self);\n }\n });\n }\n };\n\n if (animation) {\n animation.vars.lazy = false;\n animation._initted && !self.isReverted || animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.duration() && animation.render(0, true, true); // special case: if this ScrollTrigger gets re-initted, a from() tween with a stagger could get initted initially and then reverted on the re-init which means it'll need to get rendered again here to properly display things. Otherwise, See https://gsap.com/forums/topic/36777-scrollsmoother-splittext-nextjs/ and https://codepen.io/GreenSock/pen/eYPyPpd?editors=0010\n\n self.animation = animation.pause();\n animation.scrollTrigger = self;\n self.scrubDuration(scrub);\n snap1 = 0;\n id || (id = animation.vars.id);\n }\n\n if (snap) {\n // TODO: potential idea: use legitimate CSS scroll snapping by pushing invisible elements into the DOM that serve as snap positions, and toggle the document.scrollingElement.style.scrollSnapType onToggle. See https://codepen.io/GreenSock/pen/JjLrgWM for a quick proof of concept.\n if (!_isObject(snap) || snap.push) {\n snap = {\n snapTo: snap\n };\n }\n\n \"scrollBehavior\" in _body.style && gsap.set(isViewport ? [_body, _docEl] : scroller, {\n scrollBehavior: \"auto\"\n }); // smooth scrolling doesn't work with snap.\n\n _scrollers.forEach(function (o) {\n return _isFunction(o) && o.target === (isViewport ? _doc.scrollingElement || _docEl : scroller) && (o.smooth = false);\n }); // note: set smooth to false on both the vertical and horizontal scroll getters/setters\n\n\n snapFunc = _isFunction(snap.snapTo) ? snap.snapTo : snap.snapTo === \"labels\" ? _getClosestLabel(animation) : snap.snapTo === \"labelsDirectional\" ? _getLabelAtDirection(animation) : snap.directional !== false ? function (value, st) {\n return _snapDirectional(snap.snapTo)(value, _getTime() - lastRefresh < 500 ? 0 : st.direction);\n } : gsap.utils.snap(snap.snapTo);\n snapDurClamp = snap.duration || {\n min: 0.1,\n max: 2\n };\n snapDurClamp = _isObject(snapDurClamp) ? _clamp(snapDurClamp.min, snapDurClamp.max) : _clamp(snapDurClamp, snapDurClamp);\n snapDelayedCall = gsap.delayedCall(snap.delay || scrubSmooth / 2 || 0.1, function () {\n var scroll = scrollFunc(),\n refreshedRecently = _getTime() - lastRefresh < 500,\n tween = tweenTo.tween;\n\n if ((refreshedRecently || Math.abs(self.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) {\n var progress = (scroll - start) / change,\n totalProgress = animation && !isToggle ? animation.totalProgress() : progress,\n velocity = refreshedRecently ? 0 : (totalProgress - snap2) / (_getTime() - _time2) * 1000 || 0,\n change1 = gsap.utils.clamp(-progress, 1 - progress, _abs(velocity / 2) * velocity / 0.185),\n naturalEnd = progress + (snap.inertia === false ? 0 : change1),\n endValue,\n endScroll,\n _snap = snap,\n onStart = _snap.onStart,\n _onInterrupt = _snap.onInterrupt,\n _onComplete = _snap.onComplete;\n endValue = snapFunc(naturalEnd, self);\n _isNumber(endValue) || (endValue = naturalEnd); // in case the function didn't return a number, fall back to using the naturalEnd\n\n endScroll = Math.round(start + endValue * change);\n\n if (scroll <= end && scroll >= start && endScroll !== scroll) {\n if (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) {\n // there's an overlapping snap! So we must figure out which one is closer and let that tween live.\n return;\n }\n\n if (snap.inertia === false) {\n change1 = endValue - progress;\n }\n\n tweenTo(endScroll, {\n duration: snapDurClamp(_abs(Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05 || 0)),\n ease: snap.ease || \"power3\",\n data: _abs(endScroll - scroll),\n // record the distance so that if another snap tween occurs (conflict) we can prioritize the closest snap.\n onInterrupt: function onInterrupt() {\n return snapDelayedCall.restart(true) && _onInterrupt && _onInterrupt(self);\n },\n onComplete: function onComplete() {\n self.update();\n lastSnap = scrollFunc();\n\n if (animation) {\n // the resolution of the scrollbar is limited, so we should correct the scrubbed animation's playhead at the end to match EXACTLY where it was supposed to snap\n scrubTween ? scrubTween.resetTo(\"totalProgress\", endValue, animation._tTime / animation._tDur) : animation.progress(endValue);\n }\n\n snap1 = snap2 = animation && !isToggle ? animation.totalProgress() : self.progress;\n onSnapComplete && onSnapComplete(self);\n _onComplete && _onComplete(self);\n }\n }, scroll, change1 * change, endScroll - scroll - change1 * change);\n onStart && onStart(self, tweenTo.tween);\n }\n } else if (self.isActive && lastSnap !== scroll) {\n snapDelayedCall.restart(true);\n }\n }).pause();\n }\n\n id && (_ids[id] = self);\n trigger = self.trigger = _getTarget(trigger || pin !== true && pin); // if a trigger has some kind of scroll-related effect applied that could contaminate the \"y\" or \"x\" position (like a ScrollSmoother effect), we needed a way to temporarily revert it, so we use the stRevert property of the gsCache. It can return another function that we'll call at the end so it can return to its normal state.\n\n customRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert;\n customRevertReturn && (customRevertReturn = customRevertReturn(self));\n pin = pin === true ? trigger : _getTarget(pin);\n _isString(toggleClass) && (toggleClass = {\n targets: trigger,\n className: toggleClass\n });\n\n if (pin) {\n pinSpacing === false || pinSpacing === _margin || (pinSpacing = !pinSpacing && pin.parentNode && pin.parentNode.style && _getComputedStyle(pin.parentNode).display === \"flex\" ? false : _padding); // if the parent is display: flex, don't apply pinSpacing by default. We should check that pin.parentNode is an element (not shadow dom window)\n\n self.pin = pin;\n pinCache = gsap.core.getCache(pin);\n\n if (!pinCache.spacer) {\n // record the spacer and pinOriginalState on the cache in case someone tries pinning the same element with MULTIPLE ScrollTriggers - we don't want to have multiple spacers or record the \"original\" pin state after it has already been affected by another ScrollTrigger.\n if (pinSpacer) {\n pinSpacer = _getTarget(pinSpacer);\n pinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement); // for React & Angular\n\n pinCache.spacerIsNative = !!pinSpacer;\n pinSpacer && (pinCache.spacerState = _getState(pinSpacer));\n }\n\n pinCache.spacer = spacer = pinSpacer || _doc.createElement(\"div\");\n spacer.classList.add(\"pin-spacer\");\n id && spacer.classList.add(\"pin-spacer-\" + id);\n pinCache.pinState = pinOriginalState = _getState(pin);\n } else {\n pinOriginalState = pinCache.pinState;\n }\n\n vars.force3D !== false && gsap.set(pin, {\n force3D: true\n });\n self.spacer = spacer = pinCache.spacer;\n cs = _getComputedStyle(pin);\n spacingStart = cs[pinSpacing + direction.os2];\n pinGetter = gsap.getProperty(pin);\n pinSetter = gsap.quickSetter(pin, direction.a, _px); // pin.firstChild && !_maxScroll(pin, direction) && (pin.style.overflow = \"hidden\"); // protects from collapsing margins, but can have unintended consequences as demonstrated here: https://codepen.io/GreenSock/pen/1e42c7a73bfa409d2cf1e184e7a4248d so it was removed in favor of just telling people to set up their CSS to avoid the collapsing margins (overflow: hidden | auto is just one option. Another is border-top: 1px solid transparent).\n\n _swapPinIn(pin, spacer, cs);\n\n pinState = _getState(pin);\n }\n\n if (markers) {\n markerVars = _isObject(markers) ? _setDefaults(markers, _markerDefaults) : _markerDefaults;\n markerStartTrigger = _createMarker(\"scroller-start\", id, scroller, direction, markerVars, 0);\n markerEndTrigger = _createMarker(\"scroller-end\", id, scroller, direction, markerVars, 0, markerStartTrigger);\n offset = markerStartTrigger[\"offset\" + direction.op.d2];\n\n var content = _getTarget(_getProxyProp(scroller, \"content\") || scroller);\n\n markerStart = this.markerStart = _createMarker(\"start\", id, content, direction, markerVars, offset, 0, containerAnimation);\n markerEnd = this.markerEnd = _createMarker(\"end\", id, content, direction, markerVars, offset, 0, containerAnimation);\n containerAnimation && (caMarkerSetter = gsap.quickSetter([markerStart, markerEnd], direction.a, _px));\n\n if (!useFixedPosition && !(_proxies.length && _getProxyProp(scroller, \"fixedMarkers\") === true)) {\n _makePositionable(isViewport ? _body : scroller);\n\n gsap.set([markerStartTrigger, markerEndTrigger], {\n force3D: true\n });\n markerStartSetter = gsap.quickSetter(markerStartTrigger, direction.a, _px);\n markerEndSetter = gsap.quickSetter(markerEndTrigger, direction.a, _px);\n }\n }\n\n if (containerAnimation) {\n var oldOnUpdate = containerAnimation.vars.onUpdate,\n oldParams = containerAnimation.vars.onUpdateParams;\n containerAnimation.eventCallback(\"onUpdate\", function () {\n self.update(0, 0, 1);\n oldOnUpdate && oldOnUpdate.apply(containerAnimation, oldParams || []);\n });\n }\n\n self.previous = function () {\n return _triggers[_triggers.indexOf(self) - 1];\n };\n\n self.next = function () {\n return _triggers[_triggers.indexOf(self) + 1];\n };\n\n self.revert = function (revert, temp) {\n if (!temp) {\n return self.kill(true);\n } // for compatibility with gsap.context() and gsap.matchMedia() which call revert()\n\n\n var r = revert !== false || !self.enabled,\n prevRefreshing = _refreshing;\n\n if (r !== self.isReverted) {\n if (r) {\n prevScroll = Math.max(scrollFunc(), self.scroll.rec || 0); // record the scroll so we can revert later (repositioning/pinning things can affect scroll position). In the static refresh() method, we first record all the scroll positions as a reference.\n\n prevProgress = self.progress;\n prevAnimProgress = animation && animation.progress();\n }\n\n markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function (m) {\n return m.style.display = r ? \"none\" : \"block\";\n });\n\n if (r) {\n _refreshing = self;\n self.update(r); // make sure the pin is back in its original position so that all the measurements are correct. do this BEFORE swapping the pin out\n }\n\n if (pin && (!pinReparent || !self.isActive)) {\n if (r) {\n _swapPinOut(pin, spacer, pinOriginalState);\n } else {\n _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState);\n }\n }\n\n r || self.update(r); // when we're restoring, the update should run AFTER swapping the pin into its pin-spacer.\n\n _refreshing = prevRefreshing; // restore. We set it to true during the update() so that things fire properly in there.\n\n self.isReverted = r;\n }\n };\n\n self.refresh = function (soft, force, position, pinOffset) {\n // position is typically only defined if it's coming from setPositions() - it's a way to skip the normal parsing. pinOffset is also only from setPositions() and is mostly related to fancy stuff we need to do in ScrollSmoother with effects\n if ((_refreshing || !self.enabled) && !force) {\n return;\n }\n\n if (pin && soft && _lastScrollTime) {\n _addListener(ScrollTrigger, \"scrollEnd\", _softRefresh);\n\n return;\n }\n\n !_refreshingAll && onRefreshInit && onRefreshInit(self);\n _refreshing = self;\n\n if (tweenTo.tween && !position) {\n // we skip this if a position is passed in because typically that's from .setPositions() and it's best to allow in-progress snapping to continue.\n tweenTo.tween.kill();\n tweenTo.tween = 0;\n }\n\n scrubTween && scrubTween.pause();\n invalidateOnRefresh && animation && animation.revert({\n kill: false\n }).invalidate();\n self.isReverted || self.revert(true, true);\n self._subPinOffset = false; // we'll set this to true in the sub-pins if we find any\n\n var size = getScrollerSize(),\n scrollerBounds = getScrollerOffsets(),\n max = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction),\n isFirstRefresh = change <= 0.01,\n offset = 0,\n otherPinOffset = pinOffset || 0,\n parsedEnd = _isObject(position) ? position.end : vars.end,\n parsedEndTrigger = vars.endTrigger || trigger,\n parsedStart = _isObject(position) ? position.start : vars.start || (vars.start === 0 || !trigger ? 0 : pin ? \"0 0\" : \"0 100%\"),\n pinnedContainer = self.pinnedContainer = vars.pinnedContainer && _getTarget(vars.pinnedContainer, self),\n triggerIndex = trigger && Math.max(0, _triggers.indexOf(self)) || 0,\n i = triggerIndex,\n cs,\n bounds,\n scroll,\n isVertical,\n override,\n curTrigger,\n curPin,\n oppositeScroll,\n initted,\n revertedPins,\n forcedOverflow,\n markerStartOffset,\n markerEndOffset;\n\n if (markers && _isObject(position)) {\n // if we alter the start/end positions with .setPositions(), it generally feeds in absolute NUMBERS which don't convey information about where to line up the markers, so to keep it intuitive, we record how far the trigger positions shift after applying the new numbers and then offset by that much in the opposite direction. We do the same to the associated trigger markers too of course.\n markerStartOffset = gsap.getProperty(markerStartTrigger, direction.p);\n markerEndOffset = gsap.getProperty(markerEndTrigger, direction.p);\n }\n\n while (i--) {\n // user might try to pin the same element more than once, so we must find any prior triggers with the same pin, revert them, and determine how long they're pinning so that we can offset things appropriately. Make sure we revert from last to first so that things \"rewind\" properly.\n curTrigger = _triggers[i];\n curTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = self); // if it's a timeline-based trigger that hasn't been fully initialized yet because it's waiting for 1 tick, just force the refresh() here, otherwise if it contains a pin that's supposed to affect other ScrollTriggers further down the page, they won't be adjusted properly.\n\n curPin = curTrigger.pin;\n\n if (curPin && (curPin === trigger || curPin === pin || curPin === pinnedContainer) && !curTrigger.isReverted) {\n revertedPins || (revertedPins = []);\n revertedPins.unshift(curTrigger); // we'll revert from first to last to make sure things reach their end state properly\n\n curTrigger.revert(true, true);\n }\n\n if (curTrigger !== _triggers[i]) {\n // in case it got removed.\n triggerIndex--;\n i--;\n }\n }\n\n _isFunction(parsedStart) && (parsedStart = parsedStart(self));\n parsedStart = _parseClamp(parsedStart, \"start\", self);\n start = _parsePosition(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self._startClamp && \"_startClamp\") || (pin ? -0.001 : 0);\n _isFunction(parsedEnd) && (parsedEnd = parsedEnd(self));\n\n if (_isString(parsedEnd) && !parsedEnd.indexOf(\"+=\")) {\n if (~parsedEnd.indexOf(\" \")) {\n parsedEnd = (_isString(parsedStart) ? parsedStart.split(\" \")[0] : \"\") + parsedEnd;\n } else {\n offset = _offsetToPx(parsedEnd.substr(2), size);\n parsedEnd = _isString(parsedStart) ? parsedStart : (containerAnimation ? gsap.utils.mapRange(0, containerAnimation.duration(), containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, start) : start) + offset; // _parsePosition won't factor in the offset if the start is a number, so do it here.\n\n parsedEndTrigger = trigger;\n }\n }\n\n parsedEnd = _parseClamp(parsedEnd, \"end\", self);\n end = Math.max(start, _parsePosition(parsedEnd || (parsedEndTrigger ? \"100% 0\" : max), parsedEndTrigger, size, direction, scrollFunc() + offset, markerEnd, markerEndTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self._endClamp && \"_endClamp\")) || -0.001;\n offset = 0;\n i = triggerIndex;\n\n while (i--) {\n curTrigger = _triggers[i];\n curPin = curTrigger.pin;\n\n if (curPin && curTrigger.start - curTrigger._pinPush <= start && !containerAnimation && curTrigger.end > 0) {\n cs = curTrigger.end - (self._startClamp ? Math.max(0, curTrigger.start) : curTrigger.start);\n\n if ((curPin === trigger && curTrigger.start - curTrigger._pinPush < start || curPin === pinnedContainer) && isNaN(parsedStart)) {\n // numeric start values shouldn't be offset at all - treat them as absolute\n offset += cs * (1 - curTrigger.progress);\n }\n\n curPin === pin && (otherPinOffset += cs);\n }\n }\n\n start += offset;\n end += offset;\n self._startClamp && (self._startClamp += offset);\n\n if (self._endClamp && !_refreshingAll) {\n self._endClamp = end || -0.001;\n end = Math.min(end, _maxScroll(scroller, direction));\n }\n\n change = end - start || (start -= 0.01) && 0.001;\n\n if (isFirstRefresh) {\n // on the very first refresh(), the prevProgress couldn't have been accurate yet because the start/end were never calculated, so we set it here. Before 3.11.5, it could lead to an inaccurate scroll position restoration with snapping.\n prevProgress = gsap.utils.clamp(0, 1, gsap.utils.normalize(start, end, prevScroll));\n }\n\n self._pinPush = otherPinOffset;\n\n if (markerStart && offset) {\n // offset the markers if necessary\n cs = {};\n cs[direction.a] = \"+=\" + offset;\n pinnedContainer && (cs[direction.p] = \"-=\" + scrollFunc());\n gsap.set([markerStart, markerEnd], cs);\n }\n\n if (pin && !(_clampingMax && self.end >= _maxScroll(scroller, direction))) {\n cs = _getComputedStyle(pin);\n isVertical = direction === _vertical;\n scroll = scrollFunc(); // recalculate because the triggers can affect the scroll\n\n pinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset;\n\n if (!max && end > 1) {\n // makes sure the scroller has a scrollbar, otherwise if something has width: 100%, for example, it would be too big (exclude the scrollbar). See https://gsap.com/forums/topic/25182-scrolltrigger-width-of-page-increase-where-markers-are-set-to-false/\n forcedOverflow = (isViewport ? _doc.scrollingElement || _docEl : scroller).style;\n forcedOverflow = {\n style: forcedOverflow,\n value: forcedOverflow[\"overflow\" + direction.a.toUpperCase()]\n };\n\n if (isViewport && _getComputedStyle(_body)[\"overflow\" + direction.a.toUpperCase()] !== \"scroll\") {\n // avoid an extra scrollbar if BOTH and have overflow set to \"scroll\"\n forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = \"scroll\";\n }\n }\n\n _swapPinIn(pin, spacer, cs);\n\n pinState = _getState(pin); // transforms will interfere with the top/left/right/bottom placement, so remove them temporarily. getBoundingClientRect() factors in transforms.\n\n bounds = _getBounds(pin, true);\n oppositeScroll = useFixedPosition && _getScrollFunc(scroller, isVertical ? _horizontal : _vertical)();\n\n if (pinSpacing) {\n spacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px];\n spacerState.t = spacer;\n i = pinSpacing === _padding ? _getSize(pin, direction) + change + otherPinOffset : 0;\n\n if (i) {\n spacerState.push(direction.d, i + _px); // for box-sizing: border-box (must include padding).\n\n spacer.style.flexBasis !== \"auto\" && (spacer.style.flexBasis = i + _px);\n }\n\n _setState(spacerState);\n\n if (pinnedContainer) {\n // in ScrollTrigger.refresh(), we need to re-evaluate the pinContainer's size because this pinSpacing may stretch it out, but we can't just add the exact distance because depending on layout, it may not push things down or it may only do so partially.\n _triggers.forEach(function (t) {\n if (t.pin === pinnedContainer && t.vars.pinSpacing !== false) {\n t._subPinOffset = true;\n }\n });\n }\n\n useFixedPosition && scrollFunc(prevScroll);\n } else {\n i = _getSize(pin, direction);\n i && spacer.style.flexBasis !== \"auto\" && (spacer.style.flexBasis = i + _px);\n }\n\n if (useFixedPosition) {\n override = {\n top: bounds.top + (isVertical ? scroll - start : oppositeScroll) + _px,\n left: bounds.left + (isVertical ? oppositeScroll : scroll - start) + _px,\n boxSizing: \"border-box\",\n position: \"fixed\"\n };\n override[_width] = override[\"max\" + _Width] = Math.ceil(bounds.width) + _px;\n override[_height] = override[\"max\" + _Height] = Math.ceil(bounds.height) + _px;\n override[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = \"0\";\n override[_padding] = cs[_padding];\n override[_padding + _Top] = cs[_padding + _Top];\n override[_padding + _Right] = cs[_padding + _Right];\n override[_padding + _Bottom] = cs[_padding + _Bottom];\n override[_padding + _Left] = cs[_padding + _Left];\n pinActiveState = _copyState(pinOriginalState, override, pinReparent);\n _refreshingAll && scrollFunc(0);\n }\n\n if (animation) {\n // the animation might be affecting the transform, so we must jump to the end, check the value, and compensate accordingly. Otherwise, when it becomes unpinned, the pinSetter() will get set to a value that doesn't include whatever the animation did.\n initted = animation._initted; // if not, we must invalidate() after this step, otherwise it could lock in starting values prematurely.\n\n _suppressOverwrites(1);\n\n animation.render(animation.duration(), true, true);\n pinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset;\n pinMoves = Math.abs(change - pinChange) > 1;\n useFixedPosition && pinMoves && pinActiveState.splice(pinActiveState.length - 2, 2); // transform is the last property/value set in the state Array. Since the animation is controlling that, we should omit it.\n\n animation.render(0, true, true);\n initted || animation.invalidate(true);\n animation.parent || animation.totalTime(animation.totalTime()); // if, for example, a toggleAction called play() and then refresh() happens and when we render(1) above, it would cause the animation to complete and get removed from its parent, so this makes sure it gets put back in.\n\n _suppressOverwrites(0);\n } else {\n pinChange = change;\n }\n\n forcedOverflow && (forcedOverflow.value ? forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = forcedOverflow.value : forcedOverflow.style.removeProperty(\"overflow-\" + direction.a));\n } else if (trigger && scrollFunc() && !containerAnimation) {\n // it may be INSIDE a pinned element, so walk up the tree and look for any elements with _pinOffset to compensate because anything with pinSpacing that's already scrolled would throw off the measurements in getBoundingClientRect()\n bounds = trigger.parentNode;\n\n while (bounds && bounds !== _body) {\n if (bounds._pinOffset) {\n start -= bounds._pinOffset;\n end -= bounds._pinOffset;\n }\n\n bounds = bounds.parentNode;\n }\n }\n\n revertedPins && revertedPins.forEach(function (t) {\n return t.revert(false, true);\n });\n self.start = start;\n self.end = end;\n scroll1 = scroll2 = _refreshingAll ? prevScroll : scrollFunc(); // reset velocity\n\n if (!containerAnimation && !_refreshingAll) {\n scroll1 < prevScroll && scrollFunc(prevScroll);\n self.scroll.rec = 0;\n }\n\n self.revert(false, true);\n lastRefresh = _getTime();\n\n if (snapDelayedCall) {\n lastSnap = -1; // just so snapping gets re-enabled, clear out any recorded last value\n // self.isActive && scrollFunc(start + change * prevProgress); // previously this line was here to ensure that when snapping kicks in, it's from the previous progress but in some cases that's not desirable, like an all-page ScrollTrigger when new content gets added to the page, that'd totally change the progress.\n\n snapDelayedCall.restart(true);\n }\n\n _refreshing = 0;\n animation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress || 0, true).render(animation.time(), true, true); // must force a re-render because if saveStyles() was used on the target(s), the styles could have been wiped out during the refresh().\n\n if (isFirstRefresh || prevProgress !== self.progress || containerAnimation || invalidateOnRefresh) {\n // ensures that the direction is set properly (when refreshing, progress is set back to 0 initially, then back again to wherever it needs to be) and that callbacks are triggered.\n animation && !isToggle && animation.totalProgress(containerAnimation && start < -0.001 && !prevProgress ? gsap.utils.normalize(start, end, 0) : prevProgress, true); // to avoid issues where animation callbacks like onStart aren't triggered.\n\n self.progress = isFirstRefresh || (scroll1 - start) / change === prevProgress ? 0 : prevProgress;\n }\n\n pin && pinSpacing && (spacer._pinOffset = Math.round(self.progress * pinChange));\n scrubTween && scrubTween.invalidate();\n\n if (!isNaN(markerStartOffset)) {\n // numbers were passed in for the position which are absolute, so instead of just putting the markers at the very bottom of the viewport, we figure out how far they shifted down (it's safe to assume they were originally positioned in closer relation to the trigger element with values like \"top\", \"center\", a percentage or whatever, so we offset that much in the opposite direction to basically revert them to the relative position thy were at previously.\n markerStartOffset -= gsap.getProperty(markerStartTrigger, direction.p);\n markerEndOffset -= gsap.getProperty(markerEndTrigger, direction.p);\n\n _shiftMarker(markerStartTrigger, direction, markerStartOffset);\n\n _shiftMarker(markerStart, direction, markerStartOffset - (pinOffset || 0));\n\n _shiftMarker(markerEndTrigger, direction, markerEndOffset);\n\n _shiftMarker(markerEnd, direction, markerEndOffset - (pinOffset || 0));\n }\n\n isFirstRefresh && !_refreshingAll && self.update(); // edge case - when you reload a page when it's already scrolled down, some browsers fire a \"scroll\" event before DOMContentLoaded, triggering an updateAll(). If we don't update the self.progress as part of refresh(), then when it happens next, it may record prevProgress as 0 when it really shouldn't, potentially causing a callback in an animation to fire again.\n\n if (onRefresh && !_refreshingAll && !executingOnRefresh) {\n // when refreshing all, we do extra work to correct pinnedContainer sizes and ensure things don't exceed the maxScroll, so we should do all the refreshes at the end after all that work so that the start/end values are corrected.\n executingOnRefresh = true;\n onRefresh(self);\n executingOnRefresh = false;\n }\n };\n\n self.getVelocity = function () {\n return (scrollFunc() - scroll2) / (_getTime() - _time2) * 1000 || 0;\n };\n\n self.endAnimation = function () {\n _endAnimation(self.callbackAnimation);\n\n if (animation) {\n scrubTween ? scrubTween.progress(1) : !animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self.direction < 0, 1);\n }\n };\n\n self.labelToScroll = function (label) {\n return animation && animation.labels && (start || self.refresh() || start) + animation.labels[label] / animation.duration() * change || 0;\n };\n\n self.getTrailing = function (name) {\n var i = _triggers.indexOf(self),\n a = self.direction > 0 ? _triggers.slice(0, i).reverse() : _triggers.slice(i + 1);\n\n return (_isString(name) ? a.filter(function (t) {\n return t.vars.preventOverlaps === name;\n }) : a).filter(function (t) {\n return self.direction > 0 ? t.end <= start : t.start >= end;\n });\n };\n\n self.update = function (reset, recordVelocity, forceFake) {\n if (containerAnimation && !forceFake && !reset) {\n return;\n }\n\n var scroll = _refreshingAll === true ? prevScroll : self.scroll(),\n p = reset ? 0 : (scroll - start) / change,\n clipped = p < 0 ? 0 : p > 1 ? 1 : p || 0,\n prevProgress = self.progress,\n isActive,\n wasActive,\n toggleState,\n action,\n stateChanged,\n toggled,\n isAtMax,\n isTakingAction;\n\n if (recordVelocity) {\n scroll2 = scroll1;\n scroll1 = containerAnimation ? scrollFunc() : scroll;\n\n if (snap) {\n snap2 = snap1;\n snap1 = animation && !isToggle ? animation.totalProgress() : clipped;\n }\n } // anticipate the pinning a few ticks ahead of time based on velocity to avoid a visual glitch due to the fact that most browsers do scrolling on a separate thread (not synced with requestAnimationFrame).\n\n\n if (anticipatePin && pin && !_refreshing && !_startup && _lastScrollTime) {\n if (!clipped && start < scroll + (scroll - scroll2) / (_getTime() - _time2) * anticipatePin) {\n clipped = 0.0001;\n } else if (clipped === 1 && end > scroll + (scroll - scroll2) / (_getTime() - _time2) * anticipatePin) {\n clipped = 0.9999;\n }\n }\n\n if (clipped !== prevProgress && self.enabled) {\n isActive = self.isActive = !!clipped && clipped < 1;\n wasActive = !!prevProgress && prevProgress < 1;\n toggled = isActive !== wasActive;\n stateChanged = toggled || !!clipped !== !!prevProgress; // could go from start all the way to end, thus it didn't toggle but it did change state in a sense (may need to fire a callback)\n\n self.direction = clipped > prevProgress ? 1 : -1;\n self.progress = clipped;\n\n if (stateChanged && !_refreshing) {\n toggleState = clipped && !prevProgress ? 0 : clipped === 1 ? 1 : prevProgress === 1 ? 2 : 3; // 0 = enter, 1 = leave, 2 = enterBack, 3 = leaveBack (we prioritize the FIRST encounter, thus if you scroll really fast past the onEnter and onLeave in one tick, it'd prioritize onEnter.\n\n if (isToggle) {\n action = !toggled && toggleActions[toggleState + 1] !== \"none\" && toggleActions[toggleState + 1] || toggleActions[toggleState]; // if it didn't toggle, that means it shot right past and since we prioritize the \"enter\" action, we should switch to the \"leave\" in this case (but only if one is defined)\n\n isTakingAction = animation && (action === \"complete\" || action === \"reset\" || action in animation);\n }\n }\n\n preventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction(preventOverlaps) ? preventOverlaps(self) : self.getTrailing(preventOverlaps).forEach(function (t) {\n return t.endAnimation();\n }));\n\n if (!isToggle) {\n if (scrubTween && !_refreshing && !_startup) {\n scrubTween._dp._time - scrubTween._start !== scrubTween._time && scrubTween.render(scrubTween._dp._time - scrubTween._start); // if there's a scrub on both the container animation and this one (or a ScrollSmoother), the update order would cause this one not to have rendered yet, so it wouldn't make any progress before we .restart() it heading toward the new progress so it'd appear stuck thus we force a render here.\n\n if (scrubTween.resetTo) {\n scrubTween.resetTo(\"totalProgress\", clipped, animation._tTime / animation._tDur);\n } else {\n // legacy support (courtesy), before 3.10.0\n scrubTween.vars.totalProgress = clipped;\n scrubTween.invalidate().restart();\n }\n } else if (animation) {\n animation.totalProgress(clipped, !!(_refreshing && (lastRefresh || reset)));\n }\n }\n\n if (pin) {\n reset && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart);\n\n if (!useFixedPosition) {\n pinSetter(_round(pinStart + pinChange * clipped));\n } else if (stateChanged) {\n isAtMax = !reset && clipped > prevProgress && end + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction); // if it's at the VERY end of the page, don't switch away from position: fixed because it's pointless and it could cause a brief flash when the user scrolls back up (when it gets pinned again)\n\n if (pinReparent) {\n if (!reset && (isActive || isAtMax)) {\n var bounds = _getBounds(pin, true),\n _offset = scroll - start;\n\n _reparent(pin, _body, bounds.top + (direction === _vertical ? _offset : 0) + _px, bounds.left + (direction === _vertical ? 0 : _offset) + _px);\n } else {\n _reparent(pin, spacer);\n }\n }\n\n _setState(isActive || isAtMax ? pinActiveState : pinState);\n\n pinMoves && clipped < 1 && isActive || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0));\n }\n }\n\n snap && !tweenTo.tween && !_refreshing && !_startup && snapDelayedCall.restart(true);\n toggleClass && (toggled || once && clipped && (clipped < 1 || !_limitCallbacks)) && _toArray(toggleClass.targets).forEach(function (el) {\n return el.classList[isActive || once ? \"add\" : \"remove\"](toggleClass.className);\n }); // classes could affect positioning, so do it even if reset or refreshing is true.\n\n onUpdate && !isToggle && !reset && onUpdate(self);\n\n if (stateChanged && !_refreshing) {\n if (isToggle) {\n if (isTakingAction) {\n if (action === \"complete\") {\n animation.pause().totalProgress(1);\n } else if (action === \"reset\") {\n animation.restart(true).pause();\n } else if (action === \"restart\") {\n animation.restart(true);\n } else {\n animation[action]();\n }\n }\n\n onUpdate && onUpdate(self);\n }\n\n if (toggled || !_limitCallbacks) {\n // on startup, the page could be scrolled and we don't want to fire callbacks that didn't toggle. For example onEnter shouldn't fire if the ScrollTrigger isn't actually entered.\n onToggle && toggled && _callback(self, onToggle);\n callbacks[toggleState] && _callback(self, callbacks[toggleState]);\n once && (clipped === 1 ? self.kill(false, 1) : callbacks[toggleState] = 0); // a callback shouldn't be called again if once is true.\n\n if (!toggled) {\n // it's possible to go completely past, like from before the start to after the end (or vice-versa) in which case BOTH callbacks should be fired in that order\n toggleState = clipped === 1 ? 1 : 3;\n callbacks[toggleState] && _callback(self, callbacks[toggleState]);\n }\n }\n\n if (fastScrollEnd && !isActive && Math.abs(self.getVelocity()) > (_isNumber(fastScrollEnd) ? fastScrollEnd : 2500)) {\n _endAnimation(self.callbackAnimation);\n\n scrubTween ? scrubTween.progress(1) : _endAnimation(animation, action === \"reverse\" ? 1 : !clipped, 1);\n }\n } else if (isToggle && onUpdate && !_refreshing) {\n onUpdate(self);\n }\n } // update absolutely-positioned markers (only if the scroller isn't the viewport)\n\n\n if (markerEndSetter) {\n var n = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll;\n markerStartSetter(n + (markerStartTrigger._isFlipped ? 1 : 0));\n markerEndSetter(n);\n }\n\n caMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0));\n };\n\n self.enable = function (reset, refresh) {\n if (!self.enabled) {\n self.enabled = true;\n\n _addListener(scroller, \"resize\", _onResize);\n\n isViewport || _addListener(scroller, \"scroll\", _onScroll);\n onRefreshInit && _addListener(ScrollTrigger, \"refreshInit\", onRefreshInit);\n\n if (reset !== false) {\n self.progress = prevProgress = 0;\n scroll1 = scroll2 = lastSnap = scrollFunc();\n }\n\n refresh !== false && self.refresh();\n }\n };\n\n self.getTween = function (snap) {\n return snap && tweenTo ? tweenTo.tween : scrubTween;\n };\n\n self.setPositions = function (newStart, newEnd, keepClamp, pinOffset) {\n // doesn't persist after refresh()! Intended to be a way to override values that were set during refresh(), like you could set it in onRefresh()\n if (containerAnimation) {\n // convert ratios into scroll positions. Remember, start/end values on ScrollTriggers that have a containerAnimation refer to the time (in seconds), NOT scroll positions.\n var st = containerAnimation.scrollTrigger,\n duration = containerAnimation.duration(),\n _change = st.end - st.start;\n\n newStart = st.start + _change * newStart / duration;\n newEnd = st.start + _change * newEnd / duration;\n }\n\n self.refresh(false, false, {\n start: _keepClamp(newStart, keepClamp && !!self._startClamp),\n end: _keepClamp(newEnd, keepClamp && !!self._endClamp)\n }, pinOffset);\n self.update();\n };\n\n self.adjustPinSpacing = function (amount) {\n if (spacerState && amount) {\n var i = spacerState.indexOf(direction.d) + 1;\n spacerState[i] = parseFloat(spacerState[i]) + amount + _px;\n spacerState[1] = parseFloat(spacerState[1]) + amount + _px;\n\n _setState(spacerState);\n }\n };\n\n self.disable = function (reset, allowAnimation) {\n if (self.enabled) {\n reset !== false && self.revert(true, true);\n self.enabled = self.isActive = false;\n allowAnimation || scrubTween && scrubTween.pause();\n prevScroll = 0;\n pinCache && (pinCache.uncache = 1);\n onRefreshInit && _removeListener(ScrollTrigger, \"refreshInit\", onRefreshInit);\n\n if (snapDelayedCall) {\n snapDelayedCall.pause();\n tweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0);\n }\n\n if (!isViewport) {\n var i = _triggers.length;\n\n while (i--) {\n if (_triggers[i].scroller === scroller && _triggers[i] !== self) {\n return; //don't remove the listeners if there are still other triggers referencing it.\n }\n }\n\n _removeListener(scroller, \"resize\", _onResize);\n\n isViewport || _removeListener(scroller, \"scroll\", _onScroll);\n }\n }\n };\n\n self.kill = function (revert, allowAnimation) {\n self.disable(revert, allowAnimation);\n scrubTween && !allowAnimation && scrubTween.kill();\n id && delete _ids[id];\n\n var i = _triggers.indexOf(self);\n\n i >= 0 && _triggers.splice(i, 1);\n i === _i && _direction > 0 && _i--; // if we're in the middle of a refresh() or update(), splicing would cause skips in the index, so adjust...\n // if no other ScrollTrigger instances of the same scroller are found, wipe out any recorded scroll position. Otherwise, in a single page application, for example, it could maintain scroll position when it really shouldn't.\n\n i = 0;\n\n _triggers.forEach(function (t) {\n return t.scroller === self.scroller && (i = 1);\n });\n\n i || _refreshingAll || (self.scroll.rec = 0);\n\n if (animation) {\n animation.scrollTrigger = null;\n revert && animation.revert({\n kill: false\n });\n allowAnimation || animation.kill();\n }\n\n markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function (m) {\n return m.parentNode && m.parentNode.removeChild(m);\n });\n _primary === self && (_primary = 0);\n\n if (pin) {\n pinCache && (pinCache.uncache = 1);\n i = 0;\n\n _triggers.forEach(function (t) {\n return t.pin === pin && i++;\n });\n\n i || (pinCache.spacer = 0); // if there aren't any more ScrollTriggers with the same pin, remove the spacer, otherwise it could be contaminated with old/stale values if the user re-creates a ScrollTrigger for the same element.\n }\n\n vars.onKill && vars.onKill(self);\n };\n\n _triggers.push(self);\n\n self.enable(false, false);\n customRevertReturn && customRevertReturn(self);\n\n if (animation && animation.add && !change) {\n // if the animation is a timeline, it may not have been populated yet, so it wouldn't render at the proper place on the first refresh(), thus we should schedule one for the next tick. If \"change\" is defined, we know it must be re-enabling, thus we can refresh() right away.\n var updateFunc = self.update; // some browsers may fire a scroll event BEFORE a tick elapses and/or the DOMContentLoaded fires. So there's a chance update() will be called BEFORE a refresh() has happened on a Timeline-attached ScrollTrigger which means the start/end won't be calculated yet. We don't want to add conditional logic inside the update() method (like check to see if end is defined and if not, force a refresh()) because that's a function that gets hit a LOT (performance). So we swap out the real update() method for this one that'll re-attach it the first time it gets called and of course forces a refresh().\n\n self.update = function () {\n self.update = updateFunc;\n start || end || self.refresh();\n };\n\n gsap.delayedCall(0.01, self.update);\n change = 0.01;\n start = end = 0;\n } else {\n self.refresh();\n }\n\n pin && _queueRefreshAll(); // pinning could affect the positions of other things, so make sure we queue a full refresh()\n };\n\n ScrollTrigger.register = function register(core) {\n if (!_coreInitted) {\n gsap = core || _getGSAP();\n _windowExists() && window.document && ScrollTrigger.enable();\n _coreInitted = _enabled;\n }\n\n return _coreInitted;\n };\n\n ScrollTrigger.defaults = function defaults(config) {\n if (config) {\n for (var p in config) {\n _defaults[p] = config[p];\n }\n }\n\n return _defaults;\n };\n\n ScrollTrigger.disable = function disable(reset, kill) {\n _enabled = 0;\n\n _triggers.forEach(function (trigger) {\n return trigger[kill ? \"kill\" : \"disable\"](reset);\n });\n\n _removeListener(_win, \"wheel\", _onScroll);\n\n _removeListener(_doc, \"scroll\", _onScroll);\n\n clearInterval(_syncInterval);\n\n _removeListener(_doc, \"touchcancel\", _passThrough);\n\n _removeListener(_body, \"touchstart\", _passThrough);\n\n _multiListener(_removeListener, _doc, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n\n _multiListener(_removeListener, _doc, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n\n _resizeDelay.kill();\n\n _iterateAutoRefresh(_removeListener);\n\n for (var i = 0; i < _scrollers.length; i += 3) {\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 1]);\n\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 2]);\n }\n };\n\n ScrollTrigger.enable = function enable() {\n _win = window;\n _doc = document;\n _docEl = _doc.documentElement;\n _body = _doc.body;\n\n if (gsap) {\n _toArray = gsap.utils.toArray;\n _clamp = gsap.utils.clamp;\n _context = gsap.core.context || _passThrough;\n _suppressOverwrites = gsap.core.suppressOverwrites || _passThrough;\n _scrollRestoration = _win.history.scrollRestoration || \"auto\";\n _lastScroll = _win.pageYOffset;\n gsap.core.globals(\"ScrollTrigger\", ScrollTrigger); // must register the global manually because in Internet Explorer, functions (classes) don't have a \"name\" property.\n\n if (_body) {\n _enabled = 1;\n _div100vh = document.createElement(\"div\"); // to solve mobile browser address bar show/hide resizing, we shouldn't rely on window.innerHeight. Instead, use a
with its height set to 100vh and measure that since that's what the scrolling is based on anyway and it's not affected by address bar showing/hiding.\n\n _div100vh.style.height = \"100vh\";\n _div100vh.style.position = \"absolute\";\n\n _refresh100vh();\n\n _rafBugFix();\n\n Observer.register(gsap); // isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer.\n\n ScrollTrigger.isTouch = Observer.isTouch;\n _fixIOSBug = Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent); // since 2017, iOS has had a bug that causes event.clientX/Y to be inaccurate when a scroll occurs, thus we must alternate ignoring every other touchmove event to work around it. See https://bugs.webkit.org/show_bug.cgi?id=181954 and https://codepen.io/GreenSock/pen/ExbrPNa/087cef197dc35445a0951e8935c41503\n\n _ignoreMobileResize = Observer.isTouch === 1;\n\n _addListener(_win, \"wheel\", _onScroll); // mostly for 3rd party smooth scrolling libraries.\n\n\n _root = [_win, _doc, _docEl, _body];\n\n if (gsap.matchMedia) {\n ScrollTrigger.matchMedia = function (vars) {\n var mm = gsap.matchMedia(),\n p;\n\n for (p in vars) {\n mm.add(p, vars[p]);\n }\n\n return mm;\n };\n\n gsap.addEventListener(\"matchMediaInit\", function () {\n return _revertAll();\n });\n gsap.addEventListener(\"matchMediaRevert\", function () {\n return _revertRecorded();\n });\n gsap.addEventListener(\"matchMedia\", function () {\n _refreshAll(0, 1);\n\n _dispatch(\"matchMedia\");\n });\n gsap.matchMedia(\"(orientation: portrait)\", function () {\n // when orientation changes, we should take new base measurements for the ignoreMobileResize feature.\n _setBaseDimensions();\n\n return _setBaseDimensions;\n });\n } else {\n console.warn(\"Requires GSAP 3.11.0 or later\");\n }\n\n _setBaseDimensions();\n\n _addListener(_doc, \"scroll\", _onScroll); // some browsers (like Chrome), the window stops dispatching scroll events on the window if you scroll really fast, but it's consistent on the document!\n\n\n var bodyStyle = _body.style,\n border = bodyStyle.borderTopStyle,\n AnimationProto = gsap.core.Animation.prototype,\n bounds,\n i;\n AnimationProto.revert || Object.defineProperty(AnimationProto, \"revert\", {\n value: function value() {\n return this.time(-0.01, true);\n }\n }); // only for backwards compatibility (Animation.revert() was added after 3.10.4)\n\n bodyStyle.borderTopStyle = \"solid\"; // works around an issue where a margin of a child element could throw off the bounds of the _body, making it seem like there's a margin when there actually isn't. The border ensures that the bounds are accurate.\n\n bounds = _getBounds(_body);\n _vertical.m = Math.round(bounds.top + _vertical.sc()) || 0; // accommodate the offset of the caused by margins and/or padding\n\n _horizontal.m = Math.round(bounds.left + _horizontal.sc()) || 0;\n border ? bodyStyle.borderTopStyle = border : bodyStyle.removeProperty(\"border-top-style\"); // TODO: (?) maybe move to leveraging the velocity mechanism in Observer and skip intervals.\n\n _syncInterval = setInterval(_sync, 250);\n gsap.delayedCall(0.5, function () {\n return _startup = 0;\n });\n\n _addListener(_doc, \"touchcancel\", _passThrough); // some older Android devices intermittently stop dispatching \"touchmove\" events if we don't listen for \"touchcancel\" on the document.\n\n\n _addListener(_body, \"touchstart\", _passThrough); //works around Safari bug: https://gsap.com/forums/topic/21450-draggable-in-iframe-on-mobile-is-buggy/\n\n\n _multiListener(_addListener, _doc, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n\n _multiListener(_addListener, _doc, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n\n _transformProp = gsap.utils.checkPrefix(\"transform\");\n\n _stateProps.push(_transformProp);\n\n _coreInitted = _getTime();\n _resizeDelay = gsap.delayedCall(0.2, _refreshAll).pause();\n _autoRefresh = [_doc, \"visibilitychange\", function () {\n var w = _win.innerWidth,\n h = _win.innerHeight;\n\n if (_doc.hidden) {\n _prevWidth = w;\n _prevHeight = h;\n } else if (_prevWidth !== w || _prevHeight !== h) {\n _onResize();\n }\n }, _doc, \"DOMContentLoaded\", _refreshAll, _win, \"load\", _refreshAll, _win, \"resize\", _onResize];\n\n _iterateAutoRefresh(_addListener);\n\n _triggers.forEach(function (trigger) {\n return trigger.enable(0, 1);\n });\n\n for (i = 0; i < _scrollers.length; i += 3) {\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 1]);\n\n _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 2]);\n }\n }\n }\n };\n\n ScrollTrigger.config = function config(vars) {\n \"limitCallbacks\" in vars && (_limitCallbacks = !!vars.limitCallbacks);\n var ms = vars.syncInterval;\n ms && clearInterval(_syncInterval) || (_syncInterval = ms) && setInterval(_sync, ms);\n \"ignoreMobileResize\" in vars && (_ignoreMobileResize = ScrollTrigger.isTouch === 1 && vars.ignoreMobileResize);\n\n if (\"autoRefreshEvents\" in vars) {\n _iterateAutoRefresh(_removeListener) || _iterateAutoRefresh(_addListener, vars.autoRefreshEvents || \"none\");\n _ignoreResize = (vars.autoRefreshEvents + \"\").indexOf(\"resize\") === -1;\n }\n };\n\n ScrollTrigger.scrollerProxy = function scrollerProxy(target, vars) {\n var t = _getTarget(target),\n i = _scrollers.indexOf(t),\n isViewport = _isViewport(t);\n\n if (~i) {\n _scrollers.splice(i, isViewport ? 6 : 2);\n }\n\n if (vars) {\n isViewport ? _proxies.unshift(_win, vars, _body, vars, _docEl, vars) : _proxies.unshift(t, vars);\n }\n };\n\n ScrollTrigger.clearMatchMedia = function clearMatchMedia(query) {\n _triggers.forEach(function (t) {\n return t._ctx && t._ctx.query === query && t._ctx.kill(true, true);\n });\n };\n\n ScrollTrigger.isInViewport = function isInViewport(element, ratio, horizontal) {\n var bounds = (_isString(element) ? _getTarget(element) : element).getBoundingClientRect(),\n offset = bounds[horizontal ? _width : _height] * ratio || 0;\n return horizontal ? bounds.right - offset > 0 && bounds.left + offset < _win.innerWidth : bounds.bottom - offset > 0 && bounds.top + offset < _win.innerHeight;\n };\n\n ScrollTrigger.positionInViewport = function positionInViewport(element, referencePoint, horizontal) {\n _isString(element) && (element = _getTarget(element));\n var bounds = element.getBoundingClientRect(),\n size = bounds[horizontal ? _width : _height],\n offset = referencePoint == null ? size / 2 : referencePoint in _keywords ? _keywords[referencePoint] * size : ~referencePoint.indexOf(\"%\") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0;\n return horizontal ? (bounds.left + offset) / _win.innerWidth : (bounds.top + offset) / _win.innerHeight;\n };\n\n ScrollTrigger.killAll = function killAll(allowListeners) {\n _triggers.slice(0).forEach(function (t) {\n return t.vars.id !== \"ScrollSmoother\" && t.kill();\n });\n\n if (allowListeners !== true) {\n var listeners = _listeners.killAll || [];\n _listeners = {};\n listeners.forEach(function (f) {\n return f();\n });\n }\n };\n\n return ScrollTrigger;\n}();\nScrollTrigger.version = \"3.12.5\";\n\nScrollTrigger.saveStyles = function (targets) {\n return targets ? _toArray(targets).forEach(function (target) {\n // saved styles are recorded in a consecutive alternating Array, like [element, cssText, transform attribute, cache, matchMedia, ...]\n if (target && target.style) {\n var i = _savedStyles.indexOf(target);\n\n i >= 0 && _savedStyles.splice(i, 5);\n\n _savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute(\"transform\"), gsap.core.getCache(target), _context());\n }\n }) : _savedStyles;\n};\n\nScrollTrigger.revert = function (soft, media) {\n return _revertAll(!soft, media);\n};\n\nScrollTrigger.create = function (vars, animation) {\n return new ScrollTrigger(vars, animation);\n};\n\nScrollTrigger.refresh = function (safe) {\n return safe ? _onResize() : (_coreInitted || ScrollTrigger.register()) && _refreshAll(true);\n};\n\nScrollTrigger.update = function (force) {\n return ++_scrollers.cache && _updateAll(force === true ? 2 : 0);\n};\n\nScrollTrigger.clearScrollMemory = _clearScrollMemory;\n\nScrollTrigger.maxScroll = function (element, horizontal) {\n return _maxScroll(element, horizontal ? _horizontal : _vertical);\n};\n\nScrollTrigger.getScrollFunc = function (element, horizontal) {\n return _getScrollFunc(_getTarget(element), horizontal ? _horizontal : _vertical);\n};\n\nScrollTrigger.getById = function (id) {\n return _ids[id];\n};\n\nScrollTrigger.getAll = function () {\n return _triggers.filter(function (t) {\n return t.vars.id !== \"ScrollSmoother\";\n });\n}; // it's common for people to ScrollTrigger.getAll(t => t.kill()) on page routes, for example, and we don't want it to ruin smooth scrolling by killing the main ScrollSmoother one.\n\n\nScrollTrigger.isScrolling = function () {\n return !!_lastScrollTime;\n};\n\nScrollTrigger.snapDirectional = _snapDirectional;\n\nScrollTrigger.addEventListener = function (type, callback) {\n var a = _listeners[type] || (_listeners[type] = []);\n ~a.indexOf(callback) || a.push(callback);\n};\n\nScrollTrigger.removeEventListener = function (type, callback) {\n var a = _listeners[type],\n i = a && a.indexOf(callback);\n i >= 0 && a.splice(i, 1);\n};\n\nScrollTrigger.batch = function (targets, vars) {\n var result = [],\n varsCopy = {},\n interval = vars.interval || 0.016,\n batchMax = vars.batchMax || 1e9,\n proxyCallback = function proxyCallback(type, callback) {\n var elements = [],\n triggers = [],\n delay = gsap.delayedCall(interval, function () {\n callback(elements, triggers);\n elements = [];\n triggers = [];\n }).pause();\n return function (self) {\n elements.length || delay.restart(true);\n elements.push(self.trigger);\n triggers.push(self);\n batchMax <= elements.length && delay.progress(1);\n };\n },\n p;\n\n for (p in vars) {\n varsCopy[p] = p.substr(0, 2) === \"on\" && _isFunction(vars[p]) && p !== \"onRefreshInit\" ? proxyCallback(p, vars[p]) : vars[p];\n }\n\n if (_isFunction(batchMax)) {\n batchMax = batchMax();\n\n _addListener(ScrollTrigger, \"refresh\", function () {\n return batchMax = vars.batchMax();\n });\n }\n\n _toArray(targets).forEach(function (target) {\n var config = {};\n\n for (p in varsCopy) {\n config[p] = varsCopy[p];\n }\n\n config.trigger = target;\n result.push(ScrollTrigger.create(config));\n });\n\n return result;\n}; // to reduce file size. clamps the scroll and also returns a duration multiplier so that if the scroll gets chopped shorter, the duration gets curtailed as well (otherwise if you're very close to the top of the page, for example, and swipe up really fast, it'll suddenly slow down and take a long time to reach the top).\n\n\nvar _clampScrollAndGetDurationMultiplier = function _clampScrollAndGetDurationMultiplier(scrollFunc, current, end, max) {\n current > max ? scrollFunc(max) : current < 0 && scrollFunc(0);\n return end > max ? (max - current) / (end - current) : end < 0 ? current / (current - end) : 1;\n},\n _allowNativePanning = function _allowNativePanning(target, direction) {\n if (direction === true) {\n target.style.removeProperty(\"touch-action\");\n } else {\n target.style.touchAction = direction === true ? \"auto\" : direction ? \"pan-\" + direction + (Observer.isTouch ? \" pinch-zoom\" : \"\") : \"none\"; // note: Firefox doesn't support it pinch-zoom properly, at least in addition to a pan-x or pan-y.\n }\n\n target === _docEl && _allowNativePanning(_body, direction);\n},\n _overflow = {\n auto: 1,\n scroll: 1\n},\n _nestedScroll = function _nestedScroll(_ref5) {\n var event = _ref5.event,\n target = _ref5.target,\n axis = _ref5.axis;\n\n var node = (event.changedTouches ? event.changedTouches[0] : event).target,\n cache = node._gsap || gsap.core.getCache(node),\n time = _getTime(),\n cs;\n\n if (!cache._isScrollT || time - cache._isScrollT > 2000) {\n // cache for 2 seconds to improve performance.\n while (node && node !== _body && (node.scrollHeight <= node.clientHeight && node.scrollWidth <= node.clientWidth || !(_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]))) {\n node = node.parentNode;\n }\n\n cache._isScroll = node && node !== target && !_isViewport(node) && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]);\n cache._isScrollT = time;\n }\n\n if (cache._isScroll || axis === \"x\") {\n event.stopPropagation();\n event._gsapAllow = true;\n }\n},\n // capture events on scrollable elements INSIDE the and allow those by calling stopPropagation() when we find a scrollable ancestor\n_inputObserver = function _inputObserver(target, type, inputs, nested) {\n return Observer.create({\n target: target,\n capture: true,\n debounce: false,\n lockAxis: true,\n type: type,\n onWheel: nested = nested && _nestedScroll,\n onPress: nested,\n onDrag: nested,\n onScroll: nested,\n onEnable: function onEnable() {\n return inputs && _addListener(_doc, Observer.eventTypes[0], _captureInputs, false, true);\n },\n onDisable: function onDisable() {\n return _removeListener(_doc, Observer.eventTypes[0], _captureInputs, true);\n }\n });\n},\n _inputExp = /(input|label|select|textarea)/i,\n _inputIsFocused,\n _captureInputs = function _captureInputs(e) {\n var isInput = _inputExp.test(e.target.tagName);\n\n if (isInput || _inputIsFocused) {\n e._gsapAllow = true;\n _inputIsFocused = isInput;\n }\n},\n _getScrollNormalizer = function _getScrollNormalizer(vars) {\n _isObject(vars) || (vars = {});\n vars.preventDefault = vars.isNormalizer = vars.allowClicks = true;\n vars.type || (vars.type = \"wheel,touch\");\n vars.debounce = !!vars.debounce;\n vars.id = vars.id || \"normalizer\";\n\n var _vars2 = vars,\n normalizeScrollX = _vars2.normalizeScrollX,\n momentum = _vars2.momentum,\n allowNestedScroll = _vars2.allowNestedScroll,\n onRelease = _vars2.onRelease,\n self,\n maxY,\n target = _getTarget(vars.target) || _docEl,\n smoother = gsap.core.globals().ScrollSmoother,\n smootherInstance = smoother && smoother.get(),\n content = _fixIOSBug && (vars.content && _getTarget(vars.content) || smootherInstance && vars.content !== false && !smootherInstance.smooth() && smootherInstance.content()),\n scrollFuncY = _getScrollFunc(target, _vertical),\n scrollFuncX = _getScrollFunc(target, _horizontal),\n scale = 1,\n initialScale = (Observer.isTouch && _win.visualViewport ? _win.visualViewport.scale * _win.visualViewport.width : _win.outerWidth) / _win.innerWidth,\n wheelRefresh = 0,\n resolveMomentumDuration = _isFunction(momentum) ? function () {\n return momentum(self);\n } : function () {\n return momentum || 2.8;\n },\n lastRefreshID,\n skipTouchMove,\n inputObserver = _inputObserver(target, vars.type, true, allowNestedScroll),\n resumeTouchMove = function resumeTouchMove() {\n return skipTouchMove = false;\n },\n scrollClampX = _passThrough,\n scrollClampY = _passThrough,\n updateClamps = function updateClamps() {\n maxY = _maxScroll(target, _vertical);\n scrollClampY = _clamp(_fixIOSBug ? 1 : 0, maxY);\n normalizeScrollX && (scrollClampX = _clamp(0, _maxScroll(target, _horizontal)));\n lastRefreshID = _refreshID;\n },\n removeContentOffset = function removeContentOffset() {\n content._gsap.y = _round(parseFloat(content._gsap.y) + scrollFuncY.offset) + \"px\";\n content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + parseFloat(content._gsap.y) + \", 0, 1)\";\n scrollFuncY.offset = scrollFuncY.cacheID = 0;\n },\n ignoreDrag = function ignoreDrag() {\n if (skipTouchMove) {\n requestAnimationFrame(resumeTouchMove);\n\n var offset = _round(self.deltaY / 2),\n scroll = scrollClampY(scrollFuncY.v - offset);\n\n if (content && scroll !== scrollFuncY.v + scrollFuncY.offset) {\n scrollFuncY.offset = scroll - scrollFuncY.v;\n\n var y = _round((parseFloat(content && content._gsap.y) || 0) - scrollFuncY.offset);\n\n content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + y + \", 0, 1)\";\n content._gsap.y = y + \"px\";\n scrollFuncY.cacheID = _scrollers.cache;\n\n _updateAll();\n }\n\n return true;\n }\n\n scrollFuncY.offset && removeContentOffset();\n skipTouchMove = true;\n },\n tween,\n startScrollX,\n startScrollY,\n onStopDelayedCall,\n onResize = function onResize() {\n // if the window resizes, like on an iPhone which Apple FORCES the address bar to show/hide even if we event.preventDefault(), it may be scrolling too far now that the address bar is showing, so we must dynamically adjust the momentum tween.\n updateClamps();\n\n if (tween.isActive() && tween.vars.scrollY > maxY) {\n scrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo(\"scrollY\", maxY);\n }\n };\n\n content && gsap.set(content, {\n y: \"+=0\"\n }); // to ensure there's a cache (element._gsap)\n\n vars.ignoreCheck = function (e) {\n return _fixIOSBug && e.type === \"touchmove\" && ignoreDrag(e) || scale > 1.05 && e.type !== \"touchstart\" || self.isGesturing || e.touches && e.touches.length > 1;\n };\n\n vars.onPress = function () {\n skipTouchMove = false;\n var prevScale = scale;\n scale = _round((_win.visualViewport && _win.visualViewport.scale || 1) / initialScale);\n tween.pause();\n prevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : \"x\");\n startScrollX = scrollFuncX();\n startScrollY = scrollFuncY();\n updateClamps();\n lastRefreshID = _refreshID;\n };\n\n vars.onRelease = vars.onGestureStart = function (self, wasDragging) {\n scrollFuncY.offset && removeContentOffset();\n\n if (!wasDragging) {\n onStopDelayedCall.restart(true);\n } else {\n _scrollers.cache++; // make sure we're pulling the non-cached value\n // alternate algorithm: durX = Math.min(6, Math.abs(self.velocityX / 800)),\tdur = Math.max(durX, Math.min(6, Math.abs(self.velocityY / 800))); dur = dur * (0.4 + (1 - _power4In(dur / 6)) * 0.6)) * (momentumSpeed || 1)\n\n var dur = resolveMomentumDuration(),\n currentScroll,\n endScroll;\n\n if (normalizeScrollX) {\n currentScroll = scrollFuncX();\n endScroll = currentScroll + dur * 0.05 * -self.velocityX / 0.227; // the constant .227 is from power4(0.05). velocity is inverted because scrolling goes in the opposite direction.\n\n dur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _horizontal));\n tween.vars.scrollX = scrollClampX(endScroll);\n }\n\n currentScroll = scrollFuncY();\n endScroll = currentScroll + dur * 0.05 * -self.velocityY / 0.227; // the constant .227 is from power4(0.05)\n\n dur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _vertical));\n tween.vars.scrollY = scrollClampY(endScroll);\n tween.invalidate().duration(dur).play(0.01);\n\n if (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY - 1) {\n // iOS bug: it'll show the address bar but NOT fire the window \"resize\" event until the animation is done but we must protect against overshoot so we leverage an onUpdate to do so.\n gsap.to({}, {\n onUpdate: onResize,\n duration: dur\n });\n }\n }\n\n onRelease && onRelease(self);\n };\n\n vars.onWheel = function () {\n tween._ts && tween.pause();\n\n if (_getTime() - wheelRefresh > 1000) {\n // after 1 second, refresh the clamps otherwise that'll only happen when ScrollTrigger.refresh() is called or for touch-scrolling.\n lastRefreshID = 0;\n wheelRefresh = _getTime();\n }\n };\n\n vars.onChange = function (self, dx, dy, xArray, yArray) {\n _refreshID !== lastRefreshID && updateClamps();\n dx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self.startX - self.x) : scrollFuncX() + dx - xArray[1])); // for more precision, we track pointer/touch movement from the start, otherwise it'll drift.\n\n if (dy) {\n scrollFuncY.offset && removeContentOffset();\n var isTouch = yArray[2] === dy,\n y = isTouch ? startScrollY + self.startY - self.y : scrollFuncY() + dy - yArray[1],\n yClamped = scrollClampY(y);\n isTouch && y !== yClamped && (startScrollY += yClamped - y);\n scrollFuncY(yClamped);\n }\n\n (dy || dx) && _updateAll();\n };\n\n vars.onEnable = function () {\n _allowNativePanning(target, normalizeScrollX ? false : \"x\");\n\n ScrollTrigger.addEventListener(\"refresh\", onResize);\n\n _addListener(_win, \"resize\", onResize);\n\n if (scrollFuncY.smooth) {\n scrollFuncY.target.style.scrollBehavior = \"auto\";\n scrollFuncY.smooth = scrollFuncX.smooth = false;\n }\n\n inputObserver.enable();\n };\n\n vars.onDisable = function () {\n _allowNativePanning(target, true);\n\n _removeListener(_win, \"resize\", onResize);\n\n ScrollTrigger.removeEventListener(\"refresh\", onResize);\n inputObserver.kill();\n };\n\n vars.lockAxis = vars.lockAxis !== false;\n self = new Observer(vars);\n self.iOS = _fixIOSBug; // used in the Observer getCachedScroll() function to work around an iOS bug that wreaks havoc with TouchEvent.clientY if we allow scroll to go all the way back to 0.\n\n _fixIOSBug && !scrollFuncY() && scrollFuncY(1); // iOS bug causes event.clientY values to freak out (wildly inaccurate) if the scroll position is exactly 0.\n\n _fixIOSBug && gsap.ticker.add(_passThrough); // prevent the ticker from sleeping\n\n onStopDelayedCall = self._dc;\n tween = gsap.to(self, {\n ease: \"power4\",\n paused: true,\n inherit: false,\n scrollX: normalizeScrollX ? \"+=0.1\" : \"+=0\",\n scrollY: \"+=0.1\",\n modifiers: {\n scrollY: _interruptionTracker(scrollFuncY, scrollFuncY(), function () {\n return tween.pause();\n })\n },\n onUpdate: _updateAll,\n onComplete: onStopDelayedCall.vars.onComplete\n }); // we need the modifier to sense if the scroll position is altered outside of the momentum tween (like with a scrollTo tween) so we can pause() it to prevent conflicts.\n\n return self;\n};\n\nScrollTrigger.sort = function (func) {\n return _triggers.sort(func || function (a, b) {\n return (a.vars.refreshPriority || 0) * -1e6 + a.start - (b.start + (b.vars.refreshPriority || 0) * -1e6);\n });\n};\n\nScrollTrigger.observe = function (vars) {\n return new Observer(vars);\n};\n\nScrollTrigger.normalizeScroll = function (vars) {\n if (typeof vars === \"undefined\") {\n return _normalizer;\n }\n\n if (vars === true && _normalizer) {\n return _normalizer.enable();\n }\n\n if (vars === false) {\n _normalizer && _normalizer.kill();\n _normalizer = vars;\n return;\n }\n\n var normalizer = vars instanceof Observer ? vars : _getScrollNormalizer(vars);\n _normalizer && _normalizer.target === normalizer.target && _normalizer.kill();\n _isViewport(normalizer.target) && (_normalizer = normalizer);\n return normalizer;\n};\n\nScrollTrigger.core = {\n // smaller file size way to leverage in ScrollSmoother and Observer\n _getVelocityProp: _getVelocityProp,\n _inputObserver: _inputObserver,\n _scrollers: _scrollers,\n _proxies: _proxies,\n bridge: {\n // when normalizeScroll sets the scroll position (ss = setScroll)\n ss: function ss() {\n _lastScrollTime || _dispatch(\"scrollStart\");\n _lastScrollTime = _getTime();\n },\n // a way to get the _refreshing value in Observer\n ref: function ref() {\n return _refreshing;\n }\n }\n};\n_getGSAP() && gsap.registerPlugin(ScrollTrigger);\nexport { ScrollTrigger as default };","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","var win = window;\n\nexport var raf = win.requestAnimationFrame\n || win.webkitRequestAnimationFrame\n || win.mozRequestAnimationFrame\n || win.msRequestAnimationFrame\n || function(cb) { return setTimeout(cb, 16); };\n","var win = window;\n\nexport var caf = win.cancelAnimationFrame\n || win.mozCancelAnimationFrame\n || function(id){ clearTimeout(id); };\n","export function extend() {\n var obj, name, copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n}","export function checkStorageValue (value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n}","export function setLocalStorage(storage, key, value, access) {\n if (access) {\n try { storage.setItem(key, value); } catch (e) {}\n }\n return value;\n}","export function getBody () {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n}","export var docElement = document.documentElement;","import { docElement } from './docElement.js';\n\nexport function setFakeBody (body) {\n var docOverflow = '';\n if (body.fake) {\n docOverflow = docElement.style.overflow;\n //avoid crashing IE8, if background image is used\n body.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n}","import { docElement } from './docElement.js';\n\nexport function resetFakeBody (body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow;\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n docElement.offsetHeight;\n }\n}","// cross browsers addRule method\nimport { raf } from './raf.js';\nexport function addCSSRule(sheet, selector, rules, index) {\n // return raf(function() {\n 'insertRule' in sheet ?\n sheet.insertRule(selector + '{' + rules + '}', index) :\n sheet.addRule(selector, rules, index);\n // });\n}","export function getCssRulesLength(sheet) {\n var rule = ('insertRule' in sheet) ? sheet.cssRules : sheet.rules;\n return rule.length;\n}","// https://toddmotto.com/ditch-the-array-foreach-call-nodelist-hack/\nexport function forEach (arr, callback, scope) {\n for (var i = 0, l = arr.length; i < l; i++) {\n callback.call(scope, arr[i], i);\n }\n}","export var classListSupport = 'classList' in document.createElement('_');","import { classListSupport } from './classListSupport.js';\n\nvar hasClass = classListSupport ?\n function (el, str) { return el.classList.contains(str); } :\n function (el, str) { return el.className.indexOf(str) >= 0; };\n\nexport { classListSupport, hasClass };","import { classListSupport, hasClass } from './hasClass.js';\nvar addClass = classListSupport ?\n function (el, str) {\n if (!hasClass(el, str)) { el.classList.add(str); }\n } :\n function (el, str) {\n if (!hasClass(el, str)) { el.className += ' ' + str; }\n };\n\nexport { addClass };","import { classListSupport, hasClass } from './hasClass.js';\nvar removeClass = classListSupport ?\n function (el, str) {\n if (hasClass(el, str)) { el.classList.remove(str); }\n } :\n function (el, str) {\n if (hasClass(el, str)) { el.className = el.className.replace(str, ''); }\n };\n\nexport { removeClass };","export function hasAttr(el, attr) {\n return el.hasAttribute(attr);\n}","export function getAttr(el, attr) {\n return el.getAttribute(attr);\n}","export function isNodeList(el) {\n // Only NodeList has the \"item()\" function\n return typeof el.item !== \"undefined\"; \n}","import { isNodeList } from \"./isNodeList.js\";\n\nexport function setAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n if (Object.prototype.toString.call(attrs) !== '[object Object]') { return; }\n\n for (var i = els.length; i--;) {\n for(var key in attrs) {\n els[i].setAttribute(key, attrs[key]);\n }\n }\n}","import { isNodeList } from \"./isNodeList.js\";\n\nexport function removeAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n attrs = (attrs instanceof Array) ? attrs : [attrs];\n\n var attrLength = attrs.length;\n for (var i = els.length; i--;) {\n for (var j = attrLength; j--;) {\n els[i].removeAttribute(attrs[j]);\n }\n }\n}","export function arrayFromNodeList (nl) {\n var arr = [];\n for (var i = 0, l = nl.length; i < l; i++) {\n arr.push(nl[i]);\n }\n return arr;\n}","export function hideElement(el, forceHide) {\n if (el.style.display !== 'none') { el.style.display = 'none'; }\n}","export function showElement(el, forceHide) {\n if (el.style.display === 'none') { el.style.display = ''; }\n}","export function isVisible(el) {\n return window.getComputedStyle(el).display !== 'none';\n}","export function whichProperty(props){\n if (typeof props === 'string') {\n var arr = [props],\n Props = props.charAt(0).toUpperCase() + props.substr(1),\n prefixes = ['Webkit', 'Moz', 'ms', 'O'];\n \n prefixes.forEach(function(prefix) {\n if (prefix !== 'ms' || props === 'transform') {\n arr.push(prefix + Props);\n }\n });\n\n props = arr;\n }\n\n var el = document.createElement('fakeelement'),\n len = props.length;\n for(var i = 0; i < props.length; i++){\n var prop = props[i];\n if( el.style[prop] !== undefined ){ return prop; }\n }\n\n return false; // explicit for ie9-\n}\n","// get transitionend, animationend based on transitionDuration\n// @propin: string\n// @propOut: string, first-letter uppercase\n// Usage: getEndProperty('WebkitTransitionDuration', 'Transition') => webkitTransitionEnd\nexport function getEndProperty(propIn, propOut) {\n var endProp = false;\n if (/^Webkit/.test(propIn)) {\n endProp = 'webkit' + propOut + 'End';\n } else if (/^O/.test(propIn)) {\n endProp = 'o' + propOut + 'End';\n } else if (propIn) {\n endProp = propOut.toLowerCase() + 'end';\n }\n return endProp;\n}","// Test via a getter in the options object to see if the passive property is accessed\nvar supportsPassive = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n} catch (e) {}\nexport var passiveOption = supportsPassive ? { passive: true } : false;","import { passiveOption } from './passiveOption.js';\n\nexport function addEvents(el, obj, preventScrolling) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 && !preventScrolling ? passiveOption : false;\n el.addEventListener(prop, obj[prop], option);\n }\n}","import { passiveOption } from './passiveOption.js';\n\nexport function removeEvents(el, obj) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 ? passiveOption : false;\n el.removeEventListener(prop, obj[prop], option);\n }\n}","export function Events() {\n return {\n topics: {},\n on: function (eventName, fn) {\n this.topics[eventName] = this.topics[eventName] || [];\n this.topics[eventName].push(fn);\n },\n off: function(eventName, fn) {\n if (this.topics[eventName]) {\n for (var i = 0; i < this.topics[eventName].length; i++) {\n if (this.topics[eventName][i] === fn) {\n this.topics[eventName].splice(i, 1);\n break;\n }\n }\n }\n },\n emit: function (eventName, data) {\n data.type = eventName;\n if (this.topics[eventName]) {\n this.topics[eventName].forEach(function(fn) {\n fn(data, eventName);\n });\n }\n }\n };\n};","// Object.keys\nif (!Object.keys) {\n Object.keys = function(object) {\n var keys = [];\n for (var name in object) {\n if (Object.prototype.hasOwnProperty.call(object, name)) {\n keys.push(name);\n }\n }\n return keys;\n };\n}\n\n// ChildNode.remove\nif(!(\"remove\" in Element.prototype)){\n Element.prototype.remove = function(){\n if(this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n}\n\nimport { raf } from './helpers/raf.js';\nimport { caf } from './helpers/caf.js';\nimport { extend } from './helpers/extend.js';\nimport { checkStorageValue } from './helpers/checkStorageValue.js';\nimport { setLocalStorage } from './helpers/setLocalStorage.js';\nimport { getSlideId } from './helpers/getSlideId.js';\nimport { calc } from './helpers/calc.js';\nimport { percentageLayout } from './helpers/percentageLayout.js';\nimport { mediaquerySupport } from './helpers/mediaquerySupport.js';\nimport { createStyleSheet } from './helpers/createStyleSheet.js';\nimport { addCSSRule } from './helpers/addCSSRule.js';\nimport { removeCSSRule } from './helpers/removeCSSRule.js';\nimport { getCssRulesLength } from './helpers/getCssRulesLength.js';\nimport { toDegree } from './helpers/toDegree.js';\nimport { getTouchDirection } from './helpers/getTouchDirection.js';\nimport { forEach } from './helpers/forEach.js';\nimport { hasClass } from './helpers/hasClass.js';\nimport { addClass } from './helpers/addClass.js';\nimport { removeClass } from './helpers/removeClass.js';\nimport { hasAttr } from './helpers/hasAttr.js';\nimport { getAttr } from './helpers/getAttr.js';\nimport { setAttrs } from './helpers/setAttrs.js';\nimport { removeAttrs } from './helpers/removeAttrs.js';\nimport { arrayFromNodeList } from './helpers/arrayFromNodeList.js';\nimport { hideElement } from './helpers/hideElement.js';\nimport { showElement } from './helpers/showElement.js';\nimport { isVisible } from './helpers/isVisible.js';\nimport { whichProperty } from './helpers/whichProperty.js';\nimport { has3DTransforms } from './helpers/has3DTransforms.js';\nimport { getEndProperty } from './helpers/getEndProperty.js';\nimport { addEvents } from './helpers/addEvents.js';\nimport { removeEvents } from './helpers/removeEvents.js';\nimport { Events } from './helpers/events.js';\nimport { jsTransform } from './helpers/jsTransform.js';\n\nexport var tns = function(options) {\n options = extend({\n container: '.slider',\n mode: 'carousel',\n axis: 'horizontal',\n items: 1,\n gutter: 0,\n edgePadding: 0,\n fixedWidth: false,\n autoWidth: false,\n viewportMax: false,\n slideBy: 1,\n center: false,\n controls: true,\n controlsPosition: 'top',\n controlsText: ['prev', 'next'],\n controlsContainer: false,\n prevButton: false,\n nextButton: false,\n nav: true,\n navPosition: 'top',\n navContainer: false,\n navAsThumbnails: false,\n arrowKeys: false,\n speed: 300,\n autoplay: false,\n autoplayPosition: 'top',\n autoplayTimeout: 5000,\n autoplayDirection: 'forward',\n autoplayText: ['start', 'stop'],\n autoplayHoverPause: false,\n autoplayButton: false,\n autoplayButtonOutput: true,\n autoplayResetOnVisibility: true,\n animateIn: 'tns-fadeIn',\n animateOut: 'tns-fadeOut',\n animateNormal: 'tns-normal',\n animateDelay: false,\n loop: true,\n rewind: false,\n autoHeight: false,\n responsive: false,\n lazyload: false,\n lazyloadSelector: '.tns-lazy-img',\n touch: true,\n mouseDrag: false,\n swipeAngle: 15,\n nested: false,\n preventActionWhenRunning: false,\n preventScrollOnTouch: false,\n freezable: true,\n onInit: false,\n useLocalStorage: true,\n nonce: false\n }, options || {});\n\n var doc = document,\n win = window,\n KEYS = {\n ENTER: 13,\n SPACE: 32,\n LEFT: 37,\n RIGHT: 39\n },\n tnsStorage = {},\n localStorageAccess = options.useLocalStorage;\n\n if (localStorageAccess) {\n // check browser version and local storage access\n var browserInfo = navigator.userAgent;\n var uid = new Date;\n\n try {\n tnsStorage = win.localStorage;\n if (tnsStorage) {\n tnsStorage.setItem(uid, uid);\n localStorageAccess = tnsStorage.getItem(uid) == uid;\n tnsStorage.removeItem(uid);\n } else {\n localStorageAccess = false;\n }\n if (!localStorageAccess) { tnsStorage = {}; }\n } catch(e) {\n localStorageAccess = false;\n }\n\n if (localStorageAccess) {\n // remove storage when browser version changes\n if (tnsStorage['tnsApp'] && tnsStorage['tnsApp'] !== browserInfo) {\n ['tC', 'tPL', 'tMQ', 'tTf', 't3D', 'tTDu', 'tTDe', 'tADu', 'tADe', 'tTE', 'tAE'].forEach(function(item) { tnsStorage.removeItem(item); });\n }\n // update browserInfo\n localStorage['tnsApp'] = browserInfo;\n }\n }\n\n var CALC = tnsStorage['tC'] ? checkStorageValue(tnsStorage['tC']) : setLocalStorage(tnsStorage, 'tC', calc(), localStorageAccess),\n PERCENTAGELAYOUT = tnsStorage['tPL'] ? checkStorageValue(tnsStorage['tPL']) : setLocalStorage(tnsStorage, 'tPL', percentageLayout(), localStorageAccess),\n CSSMQ = tnsStorage['tMQ'] ? checkStorageValue(tnsStorage['tMQ']) : setLocalStorage(tnsStorage, 'tMQ', mediaquerySupport(), localStorageAccess),\n TRANSFORM = tnsStorage['tTf'] ? checkStorageValue(tnsStorage['tTf']) : setLocalStorage(tnsStorage, 'tTf', whichProperty('transform'), localStorageAccess),\n HAS3DTRANSFORMS = tnsStorage['t3D'] ? checkStorageValue(tnsStorage['t3D']) : setLocalStorage(tnsStorage, 't3D', has3DTransforms(TRANSFORM), localStorageAccess),\n TRANSITIONDURATION = tnsStorage['tTDu'] ? checkStorageValue(tnsStorage['tTDu']) : setLocalStorage(tnsStorage, 'tTDu', whichProperty('transitionDuration'), localStorageAccess),\n TRANSITIONDELAY = tnsStorage['tTDe'] ? checkStorageValue(tnsStorage['tTDe']) : setLocalStorage(tnsStorage, 'tTDe', whichProperty('transitionDelay'), localStorageAccess),\n ANIMATIONDURATION = tnsStorage['tADu'] ? checkStorageValue(tnsStorage['tADu']) : setLocalStorage(tnsStorage, 'tADu', whichProperty('animationDuration'), localStorageAccess),\n ANIMATIONDELAY = tnsStorage['tADe'] ? checkStorageValue(tnsStorage['tADe']) : setLocalStorage(tnsStorage, 'tADe', whichProperty('animationDelay'), localStorageAccess),\n TRANSITIONEND = tnsStorage['tTE'] ? checkStorageValue(tnsStorage['tTE']) : setLocalStorage(tnsStorage, 'tTE', getEndProperty(TRANSITIONDURATION, 'Transition'), localStorageAccess),\n ANIMATIONEND = tnsStorage['tAE'] ? checkStorageValue(tnsStorage['tAE']) : setLocalStorage(tnsStorage, 'tAE', getEndProperty(ANIMATIONDURATION, 'Animation'), localStorageAccess);\n\n // get element nodes from selectors\n var supportConsoleWarn = win.console && typeof win.console.warn === \"function\",\n tnsList = ['container', 'controlsContainer', 'prevButton', 'nextButton', 'navContainer', 'autoplayButton'],\n optionsElements = {};\n\n tnsList.forEach(function(item) {\n if (typeof options[item] === 'string') {\n var str = options[item],\n el = doc.querySelector(str);\n optionsElements[item] = str;\n\n if (el && el.nodeName) {\n options[item] = el;\n } else {\n if (supportConsoleWarn) { console.warn('Can\\'t find', options[item]); }\n return;\n }\n }\n });\n\n // make sure at least 1 slide\n if (options.container.children.length < 1) {\n if (supportConsoleWarn) { console.warn('No slides found in', options.container); }\n return;\n }\n\n // update options\n var responsive = options.responsive,\n nested = options.nested,\n carousel = options.mode === 'carousel' ? true : false;\n\n if (responsive) {\n // apply responsive[0] to options and remove it\n if (0 in responsive) {\n options = extend(options, responsive[0]);\n delete responsive[0];\n }\n\n var responsiveTem = {};\n for (var key in responsive) {\n var val = responsive[key];\n // update responsive\n // from: 300: 2\n // to:\n // 300: {\n // items: 2\n // }\n val = typeof val === 'number' ? {items: val} : val;\n responsiveTem[key] = val;\n }\n responsive = responsiveTem;\n responsiveTem = null;\n }\n\n // update options\n function updateOptions (obj) {\n for (var key in obj) {\n if (!carousel) {\n if (key === 'slideBy') { obj[key] = 'page'; }\n if (key === 'edgePadding') { obj[key] = false; }\n if (key === 'autoHeight') { obj[key] = false; }\n }\n\n // update responsive options\n if (key === 'responsive') { updateOptions(obj[key]); }\n }\n }\n if (!carousel) { updateOptions(options); }\n\n\n // === define and set variables ===\n if (!carousel) {\n options.axis = 'horizontal';\n options.slideBy = 'page';\n options.edgePadding = false;\n\n var animateIn = options.animateIn,\n animateOut = options.animateOut,\n animateDelay = options.animateDelay,\n animateNormal = options.animateNormal;\n }\n\n var horizontal = options.axis === 'horizontal' ? true : false,\n outerWrapper = doc.createElement('div'),\n innerWrapper = doc.createElement('div'),\n middleWrapper,\n container = options.container,\n containerParent = container.parentNode,\n containerHTML = container.outerHTML,\n slideItems = container.children,\n slideCount = slideItems.length,\n breakpointZone,\n windowWidth = getWindowWidth(),\n isOn = false;\n if (responsive) { setBreakpointZone(); }\n if (carousel) { container.className += ' tns-vpfix'; }\n\n // fixedWidth: viewport > rightBoundary > indexMax\n var autoWidth = options.autoWidth,\n fixedWidth = getOption('fixedWidth'),\n edgePadding = getOption('edgePadding'),\n gutter = getOption('gutter'),\n viewport = getViewportWidth(),\n center = getOption('center'),\n items = !autoWidth ? Math.floor(getOption('items')) : 1,\n slideBy = getOption('slideBy'),\n viewportMax = options.viewportMax || options.fixedWidthViewportWidth,\n arrowKeys = getOption('arrowKeys'),\n speed = getOption('speed'),\n rewind = options.rewind,\n loop = rewind ? false : options.loop,\n autoHeight = getOption('autoHeight'),\n controls = getOption('controls'),\n controlsText = getOption('controlsText'),\n nav = getOption('nav'),\n touch = getOption('touch'),\n mouseDrag = getOption('mouseDrag'),\n autoplay = getOption('autoplay'),\n autoplayTimeout = getOption('autoplayTimeout'),\n autoplayText = getOption('autoplayText'),\n autoplayHoverPause = getOption('autoplayHoverPause'),\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility'),\n sheet = createStyleSheet(null, getOption('nonce')),\n lazyload = options.lazyload,\n lazyloadSelector = options.lazyloadSelector,\n slidePositions, // collection of slide positions\n slideItemsOut = [],\n cloneCount = loop ? getCloneCountForLoop() : 0,\n slideCountNew = !carousel ? slideCount + cloneCount : slideCount + cloneCount * 2,\n hasRightDeadZone = (fixedWidth || autoWidth) && !loop ? true : false,\n rightBoundary = fixedWidth ? getRightBoundary() : null,\n updateIndexBeforeTransform = (!carousel || !loop) ? true : false,\n // transform\n transformAttr = horizontal ? 'left' : 'top',\n transformPrefix = '',\n transformPostfix = '',\n // index\n getIndexMax = (function () {\n if (fixedWidth) {\n return function() { return center && !loop ? slideCount - 1 : Math.ceil(- rightBoundary / (fixedWidth + gutter)); };\n } else if (autoWidth) {\n return function() {\n for (var i = 0; i < slideCountNew; i++) {\n if (slidePositions[i] >= - rightBoundary) { return i; }\n }\n };\n } else {\n return function() {\n if (center && carousel && !loop) {\n return slideCount - 1;\n } else {\n return loop || carousel ? Math.max(0, slideCountNew - Math.ceil(items)) : slideCountNew - 1;\n }\n };\n }\n })(),\n index = getStartIndex(getOption('startIndex')),\n indexCached = index,\n displayIndex = getCurrentSlide(),\n indexMin = 0,\n indexMax = !autoWidth ? getIndexMax() : null,\n // resize\n resizeTimer,\n preventActionWhenRunning = options.preventActionWhenRunning,\n swipeAngle = options.swipeAngle,\n moveDirectionExpected = swipeAngle ? '?' : true,\n running = false,\n onInit = options.onInit,\n events = new Events(),\n // id, class\n newContainerClasses = ' tns-slider tns-' + options.mode,\n slideId = container.id || getSlideId(),\n disable = getOption('disable'),\n disabled = false,\n freezable = options.freezable,\n freeze = freezable && !autoWidth ? getFreeze() : false,\n frozen = false,\n controlsEvents = {\n 'click': onControlsClick,\n 'keydown': onControlsKeydown\n },\n navEvents = {\n 'click': onNavClick,\n 'keydown': onNavKeydown\n },\n hoverEvents = {\n 'mouseover': mouseoverPause,\n 'mouseout': mouseoutRestart\n },\n visibilityEvent = {'visibilitychange': onVisibilityChange},\n docmentKeydownEvent = {'keydown': onDocumentKeydown},\n touchEvents = {\n 'touchstart': onPanStart,\n 'touchmove': onPanMove,\n 'touchend': onPanEnd,\n 'touchcancel': onPanEnd\n }, dragEvents = {\n 'mousedown': onPanStart,\n 'mousemove': onPanMove,\n 'mouseup': onPanEnd,\n 'mouseleave': onPanEnd\n },\n hasControls = hasOption('controls'),\n hasNav = hasOption('nav'),\n navAsThumbnails = autoWidth ? true : options.navAsThumbnails,\n hasAutoplay = hasOption('autoplay'),\n hasTouch = hasOption('touch'),\n hasMouseDrag = hasOption('mouseDrag'),\n slideActiveClass = 'tns-slide-active',\n slideClonedClass = 'tns-slide-cloned',\n imgCompleteClass = 'tns-complete',\n imgEvents = {\n 'load': onImgLoaded,\n 'error': onImgFailed\n },\n imgsComplete,\n liveregionCurrent,\n preventScroll = options.preventScrollOnTouch === 'force' ? true : false;\n\n // controls\n if (hasControls) {\n var controlsContainer = options.controlsContainer,\n controlsContainerHTML = options.controlsContainer ? options.controlsContainer.outerHTML : '',\n prevButton = options.prevButton,\n nextButton = options.nextButton,\n prevButtonHTML = options.prevButton ? options.prevButton.outerHTML : '',\n nextButtonHTML = options.nextButton ? options.nextButton.outerHTML : '',\n prevIsButton,\n nextIsButton;\n }\n\n // nav\n if (hasNav) {\n var navContainer = options.navContainer,\n navContainerHTML = options.navContainer ? options.navContainer.outerHTML : '',\n navItems,\n pages = autoWidth ? slideCount : getPages(),\n pagesCached = 0,\n navClicked = -1,\n navCurrentIndex = getCurrentNavIndex(),\n navCurrentIndexCached = navCurrentIndex,\n navActiveClass = 'tns-nav-active',\n navStr = 'Carousel Page ',\n navStrCurrent = ' (Current Slide)';\n }\n\n // autoplay\n if (hasAutoplay) {\n var autoplayDirection = options.autoplayDirection === 'forward' ? 1 : -1,\n autoplayButton = options.autoplayButton,\n autoplayButtonHTML = options.autoplayButton ? options.autoplayButton.outerHTML : '',\n autoplayHtmlStrings = ['', ' animation'],\n autoplayTimer,\n animating,\n autoplayHoverPaused,\n autoplayUserPaused,\n autoplayVisibilityPaused;\n }\n\n if (hasTouch || hasMouseDrag) {\n var initPosition = {},\n lastPosition = {},\n translateInit,\n disX,\n disY,\n panStart = false,\n rafIndex,\n getDist = horizontal ?\n function(a, b) { return a.x - b.x; } :\n function(a, b) { return a.y - b.y; };\n }\n\n // disable slider when slidecount <= items\n if (!autoWidth) { resetVariblesWhenDisable(disable || freeze); }\n\n if (TRANSFORM) {\n transformAttr = TRANSFORM;\n transformPrefix = 'translate';\n\n if (HAS3DTRANSFORMS) {\n transformPrefix += horizontal ? '3d(' : '3d(0px, ';\n transformPostfix = horizontal ? ', 0px, 0px)' : ', 0px)';\n } else {\n transformPrefix += horizontal ? 'X(' : 'Y(';\n transformPostfix = ')';\n }\n\n }\n\n if (carousel) { container.className = container.className.replace('tns-vpfix', ''); }\n initStructure();\n initSheet();\n initSliderTransform();\n\n // === COMMON FUNCTIONS === //\n function resetVariblesWhenDisable (condition) {\n if (condition) {\n controls = nav = touch = mouseDrag = arrowKeys = autoplay = autoplayHoverPause = autoplayResetOnVisibility = false;\n }\n }\n\n function getCurrentSlide () {\n var tem = carousel ? index - cloneCount : index;\n while (tem < 0) { tem += slideCount; }\n return tem%slideCount + 1;\n }\n\n function getStartIndex (ind) {\n ind = ind ? Math.max(0, Math.min(loop ? slideCount - 1 : slideCount - items, ind)) : 0;\n return carousel ? ind + cloneCount : ind;\n }\n\n function getAbsIndex (i) {\n if (i == null) { i = index; }\n\n if (carousel) { i -= cloneCount; }\n while (i < 0) { i += slideCount; }\n\n return Math.floor(i%slideCount);\n }\n\n function getCurrentNavIndex () {\n var absIndex = getAbsIndex(),\n result;\n\n result = navAsThumbnails ? absIndex :\n fixedWidth || autoWidth ? Math.ceil((absIndex + 1) * pages / slideCount - 1) :\n Math.floor(absIndex / items);\n\n // set active nav to the last one when reaches the right edge\n if (!loop && carousel && index === indexMax) { result = pages - 1; }\n\n return result;\n }\n\n function getItemsMax () {\n // fixedWidth or autoWidth while viewportMax is not available\n if (autoWidth || (fixedWidth && !viewportMax)) {\n return slideCount - 1;\n // most cases\n } else {\n var str = fixedWidth ? 'fixedWidth' : 'items',\n arr = [];\n\n if (fixedWidth || options[str] < slideCount) { arr.push(options[str]); }\n\n if (responsive) {\n for (var bp in responsive) {\n var tem = responsive[bp][str];\n if (tem && (fixedWidth || tem < slideCount)) { arr.push(tem); }\n }\n }\n\n if (!arr.length) { arr.push(0); }\n\n return Math.ceil(fixedWidth ? viewportMax / Math.min.apply(null, arr) : Math.max.apply(null, arr));\n }\n }\n\n function getCloneCountForLoop () {\n var itemsMax = getItemsMax(),\n result = carousel ? Math.ceil((itemsMax * 5 - slideCount)/2) : (itemsMax * 4 - slideCount);\n result = Math.max(itemsMax, result);\n\n return hasOption('edgePadding') ? result + 1 : result;\n }\n\n function getWindowWidth () {\n return win.innerWidth || doc.documentElement.clientWidth || doc.body.clientWidth;\n }\n\n function getInsertPosition (pos) {\n return pos === 'top' ? 'afterbegin' : 'beforeend';\n }\n\n function getClientWidth (el) {\n if (el == null) { return; }\n var div = doc.createElement('div'), rect, width;\n el.appendChild(div);\n rect = div.getBoundingClientRect();\n width = rect.right - rect.left;\n div.remove();\n return width || getClientWidth(el.parentNode);\n }\n\n function getViewportWidth () {\n var gap = edgePadding ? edgePadding * 2 - gutter : 0;\n return getClientWidth(containerParent) - gap;\n }\n\n function hasOption (item) {\n if (options[item]) {\n return true;\n } else {\n if (responsive) {\n for (var bp in responsive) {\n if (responsive[bp][item]) { return true; }\n }\n }\n return false;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n function getOption (item, ww) {\n if (ww == null) { ww = windowWidth; }\n\n if (item === 'items' && fixedWidth) {\n return Math.floor((viewport + gutter) / (fixedWidth + gutter)) || 1;\n\n } else {\n var result = options[item];\n\n if (responsive) {\n for (var bp in responsive) {\n // bp: convert string to number\n if (ww >= parseInt(bp)) {\n if (item in responsive[bp]) { result = responsive[bp][item]; }\n }\n }\n }\n\n if (item === 'slideBy' && result === 'page') { result = getOption('items'); }\n if (!carousel && (item === 'slideBy' || item === 'items')) { result = Math.floor(result); }\n\n return result;\n }\n }\n\n function getSlideMarginLeft (i) {\n return CALC ?\n CALC + '(' + i * 100 + '% / ' + slideCountNew + ')' :\n i * 100 / slideCountNew + '%';\n }\n\n function getInnerWrapperStyles (edgePaddingTem, gutterTem, fixedWidthTem, speedTem, autoHeightBP) {\n var str = '';\n\n if (edgePaddingTem !== undefined) {\n var gap = edgePaddingTem;\n if (gutterTem) { gap -= gutterTem; }\n str = horizontal ?\n 'margin: 0 ' + gap + 'px 0 ' + edgePaddingTem + 'px;' :\n 'margin: ' + edgePaddingTem + 'px 0 ' + gap + 'px 0;';\n } else if (gutterTem && !fixedWidthTem) {\n var gutterTemUnit = '-' + gutterTem + 'px',\n dir = horizontal ? gutterTemUnit + ' 0 0' : '0 ' + gutterTemUnit + ' 0';\n str = 'margin: 0 ' + dir + ';'\n }\n\n if (!carousel && autoHeightBP && TRANSITIONDURATION && speedTem) { str += getTransitionDurationStyle(speedTem); }\n return str;\n }\n\n function getContainerWidth (fixedWidthTem, gutterTem, itemsTem) {\n if (fixedWidthTem) {\n return (fixedWidthTem + gutterTem) * slideCountNew + 'px';\n } else {\n return CALC ?\n CALC + '(' + slideCountNew * 100 + '% / ' + itemsTem + ')' :\n slideCountNew * 100 / itemsTem + '%';\n }\n }\n\n function getSlideWidthStyle (fixedWidthTem, gutterTem, itemsTem) {\n var width;\n\n if (fixedWidthTem) {\n width = (fixedWidthTem + gutterTem) + 'px';\n } else {\n if (!carousel) { itemsTem = Math.floor(itemsTem); }\n var dividend = carousel ? slideCountNew : itemsTem;\n width = CALC ?\n CALC + '(100% / ' + dividend + ')' :\n 100 / dividend + '%';\n }\n\n width = 'width:' + width;\n\n // inner slider: overwrite outer slider styles\n return nested !== 'inner' ? width + ';' : width + ' !important;';\n }\n\n function getSlideGutterStyle (gutterTem) {\n var str = '';\n\n // gutter maybe interger || 0\n // so can't use 'if (gutter)'\n if (gutterTem !== false) {\n var prop = horizontal ? 'padding-' : 'margin-',\n dir = horizontal ? 'right' : 'bottom';\n str = prop + dir + ': ' + gutterTem + 'px;';\n }\n\n return str;\n }\n\n function getCSSPrefix (name, num) {\n var prefix = name.substring(0, name.length - num).toLowerCase();\n if (prefix) { prefix = '-' + prefix + '-'; }\n\n return prefix;\n }\n\n function getTransitionDurationStyle (speed) {\n return getCSSPrefix(TRANSITIONDURATION, 18) + 'transition-duration:' + speed / 1000 + 's;';\n }\n\n function getAnimationDurationStyle (speed) {\n return getCSSPrefix(ANIMATIONDURATION, 17) + 'animation-duration:' + speed / 1000 + 's;';\n }\n\n function initStructure () {\n var classOuter = 'tns-outer',\n classInner = 'tns-inner',\n hasGutter = hasOption('gutter');\n\n outerWrapper.className = classOuter;\n innerWrapper.className = classInner;\n outerWrapper.id = slideId + '-ow';\n innerWrapper.id = slideId + '-iw';\n\n // set container properties\n if (container.id === '') { container.id = slideId; }\n newContainerClasses += PERCENTAGELAYOUT || autoWidth ? ' tns-subpixel' : ' tns-no-subpixel';\n newContainerClasses += CALC ? ' tns-calc' : ' tns-no-calc';\n if (autoWidth) { newContainerClasses += ' tns-autowidth'; }\n newContainerClasses += ' tns-' + options.axis;\n container.className += newContainerClasses;\n\n // add constrain layer for carousel\n if (carousel) {\n middleWrapper = doc.createElement('div');\n middleWrapper.id = slideId + '-mw';\n middleWrapper.className = 'tns-ovh';\n\n outerWrapper.appendChild(middleWrapper);\n middleWrapper.appendChild(innerWrapper);\n } else {\n outerWrapper.appendChild(innerWrapper);\n }\n\n if (autoHeight) {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.className += ' tns-ah';\n }\n\n containerParent.insertBefore(outerWrapper, container);\n innerWrapper.appendChild(container);\n\n // add id, class, aria attributes\n // before clone slides\n forEach(slideItems, function(item, i) {\n addClass(item, 'tns-item');\n if (!item.id) { item.id = slideId + '-item' + i; }\n if (!carousel && animateNormal) { addClass(item, animateNormal); }\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n });\n\n // ## clone slides\n // carousel: n + slides + n\n // gallery: slides + n\n if (cloneCount) {\n var fragmentBefore = doc.createDocumentFragment(),\n fragmentAfter = doc.createDocumentFragment();\n\n for (var j = cloneCount; j--;) {\n var num = j%slideCount,\n cloneFirst = slideItems[num].cloneNode(true);\n addClass(cloneFirst, slideClonedClass);\n removeAttrs(cloneFirst, 'id');\n fragmentAfter.insertBefore(cloneFirst, fragmentAfter.firstChild);\n\n if (carousel) {\n var cloneLast = slideItems[slideCount - 1 - num].cloneNode(true);\n addClass(cloneLast, slideClonedClass);\n removeAttrs(cloneLast, 'id');\n fragmentBefore.appendChild(cloneLast);\n }\n }\n\n container.insertBefore(fragmentBefore, container.firstChild);\n container.appendChild(fragmentAfter);\n slideItems = container.children;\n }\n\n }\n\n function initSliderTransform () {\n // ## images loaded/failed\n if (hasOption('autoHeight') || autoWidth || !horizontal) {\n var imgs = container.querySelectorAll('img');\n\n // add img load event listener\n forEach(imgs, function(img) {\n var src = img.src;\n\n if (!lazyload) {\n // not data img\n if (src && src.indexOf('data:image') < 0) {\n img.src = '';\n addEvents(img, imgEvents);\n addClass(img, 'loading');\n\n img.src = src;\n // data img\n } else {\n imgLoaded(img);\n }\n }\n });\n\n // set imgsComplete\n raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), function() { imgsComplete = true; }); });\n\n // reset imgs for auto height: check visible imgs only\n if (hasOption('autoHeight')) { imgs = getImageArray(index, Math.min(index + items - 1, slideCountNew - 1)); }\n\n lazyload ? initSliderTransformStyleCheck() : raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), initSliderTransformStyleCheck); });\n\n } else {\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n }\n\n function initSliderTransformStyleCheck () {\n if (autoWidth && slideCount > 1) {\n // check styles application\n var num = loop ? index : slideCount - 1;\n\n (function stylesApplicationCheck() {\n var left = slideItems[num].getBoundingClientRect().left;\n var right = slideItems[num - 1].getBoundingClientRect().right;\n\n (Math.abs(left - right) <= 1) ?\n initSliderTransformCore() :\n setTimeout(function(){ stylesApplicationCheck() }, 16);\n })();\n\n } else {\n initSliderTransformCore();\n }\n }\n\n\n function initSliderTransformCore () {\n // run Fn()s which are rely on image loading\n if (!horizontal || autoWidth) {\n setSlidePositions();\n\n if (autoWidth) {\n rightBoundary = getRightBoundary();\n if (freezable) { freeze = getFreeze(); }\n indexMax = getIndexMax(); // <= slidePositions, rightBoundary <=\n resetVariblesWhenDisable(disable || freeze);\n } else {\n updateContentWrapperHeight();\n }\n }\n\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n\n function initSheet () {\n // gallery:\n // set animation classes and left value for gallery slider\n if (!carousel) {\n for (var i = index, l = index + Math.min(slideCount, items); i < l; i++) {\n var item = slideItems[i];\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // #### LAYOUT\n\n // ## INLINE-BLOCK VS FLOAT\n\n // ## PercentageLayout:\n // slides: inline-block\n // remove blank space between slides by set font-size: 0\n\n // ## Non PercentageLayout:\n // slides: float\n // margin-right: -100%\n // margin-left: ~\n\n // Resource: https://docs.google.com/spreadsheets/d/147up245wwTXeQYve3BRSAD4oVcvQmuGsFteJOeA5xNQ/edit?usp=sharing\n if (horizontal) {\n if (PERCENTAGELAYOUT || autoWidth) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', 'font-size:' + win.getComputedStyle(slideItems[0]).fontSize + ';', getCssRulesLength(sheet));\n addCSSRule(sheet, '#' + slideId, 'font-size:0;', getCssRulesLength(sheet));\n } else if (carousel) {\n forEach(slideItems, function (slide, i) {\n slide.style.marginLeft = getSlideMarginLeft(i);\n });\n }\n }\n\n\n // ## BASIC STYLES\n if (CSSMQ) {\n // middle wrapper style\n if (TRANSITIONDURATION) {\n var str = middleWrapper && options.autoHeight ? getTransitionDurationStyle(options.speed) : '';\n addCSSRule(sheet, '#' + slideId + '-mw', str, getCssRulesLength(sheet));\n }\n\n // inner wrapper styles\n str = getInnerWrapperStyles(options.edgePadding, options.gutter, options.fixedWidth, options.speed, options.autoHeight);\n addCSSRule(sheet, '#' + slideId + '-iw', str, getCssRulesLength(sheet));\n\n // container styles\n if (carousel) {\n str = horizontal && !autoWidth ? 'width:' + getContainerWidth(options.fixedWidth, options.gutter, options.items) + ';' : '';\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n addCSSRule(sheet, '#' + slideId, str, getCssRulesLength(sheet));\n }\n\n // slide styles\n str = horizontal && !autoWidth ? getSlideWidthStyle(options.fixedWidth, options.gutter, options.items) : '';\n if (options.gutter) { str += getSlideGutterStyle(options.gutter); }\n // set gallery items transition-duration\n if (!carousel) {\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n if (ANIMATIONDURATION) { str += getAnimationDurationStyle(speed); }\n }\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n\n // non CSS mediaqueries: IE8\n // ## update inner wrapper, container, slides if needed\n // set inline styles for inner wrapper & container\n // insert stylesheet (one line) for slides only (since slides are many)\n } else {\n // middle wrapper styles\n update_carousel_transition_duration();\n\n // inner wrapper styles\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, autoHeight);\n\n // container styles\n if (carousel && horizontal && !autoWidth) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = horizontal && !autoWidth ? getSlideWidthStyle(fixedWidth, gutter, items) : '';\n if (gutter) { str += getSlideGutterStyle(gutter); }\n\n // append to the last line\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n }\n\n // ## MEDIAQUERIES\n if (responsive && CSSMQ) {\n for (var bp in responsive) {\n // bp: convert string to number\n bp = parseInt(bp);\n\n var opts = responsive[bp],\n str = '',\n middleWrapperStr = '',\n innerWrapperStr = '',\n containerStr = '',\n slideStr = '',\n itemsBP = !autoWidth ? getOption('items', bp) : null,\n fixedWidthBP = getOption('fixedWidth', bp),\n speedBP = getOption('speed', bp),\n edgePaddingBP = getOption('edgePadding', bp),\n autoHeightBP = getOption('autoHeight', bp),\n gutterBP = getOption('gutter', bp);\n\n // middle wrapper string\n if (TRANSITIONDURATION && middleWrapper && getOption('autoHeight', bp) && 'speed' in opts) {\n middleWrapperStr = '#' + slideId + '-mw{' + getTransitionDurationStyle(speedBP) + '}';\n }\n\n // inner wrapper string\n if ('edgePadding' in opts || 'gutter' in opts) {\n innerWrapperStr = '#' + slideId + '-iw{' + getInnerWrapperStyles(edgePaddingBP, gutterBP, fixedWidthBP, speedBP, autoHeightBP) + '}';\n }\n\n // container string\n if (carousel && horizontal && !autoWidth && ('fixedWidth' in opts || 'items' in opts || (fixedWidth && 'gutter' in opts))) {\n containerStr = 'width:' + getContainerWidth(fixedWidthBP, gutterBP, itemsBP) + ';';\n }\n if (TRANSITIONDURATION && 'speed' in opts) {\n containerStr += getTransitionDurationStyle(speedBP);\n }\n if (containerStr) {\n containerStr = '#' + slideId + '{' + containerStr + '}';\n }\n\n // slide string\n if ('fixedWidth' in opts || (fixedWidth && 'gutter' in opts) || !carousel && 'items' in opts) {\n slideStr += getSlideWidthStyle(fixedWidthBP, gutterBP, itemsBP);\n }\n if ('gutter' in opts) {\n slideStr += getSlideGutterStyle(gutterBP);\n }\n // set gallery items transition-duration\n if (!carousel && 'speed' in opts) {\n if (TRANSITIONDURATION) { slideStr += getTransitionDurationStyle(speedBP); }\n if (ANIMATIONDURATION) { slideStr += getAnimationDurationStyle(speedBP); }\n }\n if (slideStr) { slideStr = '#' + slideId + ' > .tns-item{' + slideStr + '}'; }\n\n // add up\n str = middleWrapperStr + innerWrapperStr + containerStr + slideStr;\n\n if (str) {\n sheet.insertRule('@media (min-width: ' + bp / 16 + 'em) {' + str + '}', sheet.cssRules.length);\n }\n }\n }\n }\n\n function initTools () {\n // == slides ==\n updateSlideStatus();\n\n // == live region ==\n outerWrapper.insertAdjacentHTML('afterbegin', '
slide ' + getLiveRegionStr() + ' of ' + slideCount + '
');\n liveregionCurrent = outerWrapper.querySelector('.tns-liveregion .current');\n\n // == autoplayInit ==\n if (hasAutoplay) {\n var txt = autoplay ? 'stop' : 'start';\n if (autoplayButton) {\n setAttrs(autoplayButton, {'data-action': txt});\n } else if (options.autoplayButtonOutput) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.autoplayPosition), '');\n autoplayButton = outerWrapper.querySelector('[data-action]');\n }\n\n // add event\n if (autoplayButton) {\n addEvents(autoplayButton, {'click': toggleAutoplay});\n }\n\n if (autoplay) {\n startAutoplay();\n if (autoplayHoverPause) { addEvents(container, hoverEvents); }\n if (autoplayResetOnVisibility) { addEvents(container, visibilityEvent); }\n }\n }\n\n // == navInit ==\n if (hasNav) {\n var initIndex = !carousel ? 0 : cloneCount;\n // customized nav\n // will not hide the navs in case they're thumbnails\n if (navContainer) {\n setAttrs(navContainer, {'aria-label': 'Carousel Pagination'});\n navItems = navContainer.children;\n forEach(navItems, function(item, i) {\n setAttrs(item, {\n 'data-nav': i,\n 'tabindex': '-1',\n 'aria-label': navStr + (i + 1),\n 'aria-controls': slideId,\n });\n });\n\n // generated nav\n } else {\n var navHtml = '',\n hiddenStr = navAsThumbnails ? '' : 'style=\"display:none\"';\n for (var i = 0; i < slideCount; i++) {\n // hide nav items by default\n navHtml += '';\n }\n navHtml = '
' + navHtml + '
';\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition), navHtml);\n\n navContainer = outerWrapper.querySelector('.tns-nav');\n navItems = navContainer.children;\n }\n\n updateNavVisibility();\n\n // add transition\n if (TRANSITIONDURATION) {\n var prefix = TRANSITIONDURATION.substring(0, TRANSITIONDURATION.length - 18).toLowerCase(),\n str = 'transition: all ' + speed / 1000 + 's';\n\n if (prefix) {\n str = '-' + prefix + '-' + str;\n }\n\n addCSSRule(sheet, '[aria-controls^=' + slideId + '-item]', str, getCssRulesLength(sheet));\n }\n\n setAttrs(navItems[navCurrentIndex], {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navItems[navCurrentIndex], 'tabindex');\n addClass(navItems[navCurrentIndex], navActiveClass);\n\n // add events\n addEvents(navContainer, navEvents);\n }\n\n\n\n // == controlsInit ==\n if (hasControls) {\n if (!controlsContainer && (!prevButton || !nextButton)) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition), '
');\n\n controlsContainer = outerWrapper.querySelector('.tns-controls');\n }\n\n if (!prevButton || !nextButton) {\n prevButton = controlsContainer.children[0];\n nextButton = controlsContainer.children[1];\n }\n\n if (options.controlsContainer) {\n setAttrs(controlsContainer, {\n 'aria-label': 'Carousel Navigation',\n 'tabindex': '0'\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs([prevButton, nextButton], {\n 'aria-controls': slideId,\n 'tabindex': '-1',\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs(prevButton, {'data-controls' : 'prev'});\n setAttrs(nextButton, {'data-controls' : 'next'});\n }\n\n prevIsButton = isButton(prevButton);\n nextIsButton = isButton(nextButton);\n\n updateControlsStatus();\n\n // add events\n if (controlsContainer) {\n addEvents(controlsContainer, controlsEvents);\n } else {\n addEvents(prevButton, controlsEvents);\n addEvents(nextButton, controlsEvents);\n }\n }\n\n // hide tools if needed\n disableUI();\n }\n\n function initEvents () {\n // add events\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n addEvents(container, eve);\n }\n\n if (touch) { addEvents(container, touchEvents, options.preventScrollOnTouch); }\n if (mouseDrag) { addEvents(container, dragEvents); }\n if (arrowKeys) { addEvents(doc, docmentKeydownEvent); }\n\n if (nested === 'inner') {\n events.on('outerResized', function () {\n resizeTasks();\n events.emit('innerLoaded', info());\n });\n } else if (responsive || fixedWidth || autoWidth || autoHeight || !horizontal) {\n addEvents(win, {'resize': onResize});\n }\n\n if (autoHeight) {\n if (nested === 'outer') {\n events.on('innerLoaded', doAutoHeight);\n } else if (!disable) { doAutoHeight(); }\n }\n\n doLazyLoad();\n if (disable) { disableSlider(); } else if (freeze) { freezeSlider(); }\n\n events.on('indexChanged', additionalUpdates);\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n if (typeof onInit === 'function') { onInit(info()); }\n isOn = true;\n }\n\n function destroy () {\n // sheet\n sheet.disabled = true;\n if (sheet.ownerNode) { sheet.ownerNode.remove(); }\n\n // remove win event listeners\n removeEvents(win, {'resize': onResize});\n\n // arrowKeys, controls, nav\n if (arrowKeys) { removeEvents(doc, docmentKeydownEvent); }\n if (controlsContainer) { removeEvents(controlsContainer, controlsEvents); }\n if (navContainer) { removeEvents(navContainer, navEvents); }\n\n // autoplay\n removeEvents(container, hoverEvents);\n removeEvents(container, visibilityEvent);\n if (autoplayButton) { removeEvents(autoplayButton, {'click': toggleAutoplay}); }\n if (autoplay) { clearInterval(autoplayTimer); }\n\n // container\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n removeEvents(container, eve);\n }\n if (touch) { removeEvents(container, touchEvents); }\n if (mouseDrag) { removeEvents(container, dragEvents); }\n\n // cache Object values in options && reset HTML\n var htmlList = [containerHTML, controlsContainerHTML, prevButtonHTML, nextButtonHTML, navContainerHTML, autoplayButtonHTML];\n\n tnsList.forEach(function(item, i) {\n var el = item === 'container' ? outerWrapper : options[item];\n\n if (typeof el === 'object' && el) {\n var prevEl = el.previousElementSibling ? el.previousElementSibling : false,\n parentEl = el.parentNode;\n el.outerHTML = htmlList[i];\n options[item] = prevEl ? prevEl.nextElementSibling : parentEl.firstElementChild;\n }\n });\n\n\n // reset variables\n tnsList = animateIn = animateOut = animateDelay = animateNormal = horizontal = outerWrapper = innerWrapper = container = containerParent = containerHTML = slideItems = slideCount = breakpointZone = windowWidth = autoWidth = fixedWidth = edgePadding = gutter = viewport = items = slideBy = viewportMax = arrowKeys = speed = rewind = loop = autoHeight = sheet = lazyload = slidePositions = slideItemsOut = cloneCount = slideCountNew = hasRightDeadZone = rightBoundary = updateIndexBeforeTransform = transformAttr = transformPrefix = transformPostfix = getIndexMax = index = indexCached = indexMin = indexMax = resizeTimer = swipeAngle = moveDirectionExpected = running = onInit = events = newContainerClasses = slideId = disable = disabled = freezable = freeze = frozen = controlsEvents = navEvents = hoverEvents = visibilityEvent = docmentKeydownEvent = touchEvents = dragEvents = hasControls = hasNav = navAsThumbnails = hasAutoplay = hasTouch = hasMouseDrag = slideActiveClass = imgCompleteClass = imgEvents = imgsComplete = controls = controlsText = controlsContainer = controlsContainerHTML = prevButton = nextButton = prevIsButton = nextIsButton = nav = navContainer = navContainerHTML = navItems = pages = pagesCached = navClicked = navCurrentIndex = navCurrentIndexCached = navActiveClass = navStr = navStrCurrent = autoplay = autoplayTimeout = autoplayDirection = autoplayText = autoplayHoverPause = autoplayButton = autoplayButtonHTML = autoplayResetOnVisibility = autoplayHtmlStrings = autoplayTimer = animating = autoplayHoverPaused = autoplayUserPaused = autoplayVisibilityPaused = initPosition = lastPosition = translateInit = disX = disY = panStart = rafIndex = getDist = touch = mouseDrag = null;\n // check variables\n // [animateIn, animateOut, animateDelay, animateNormal, horizontal, outerWrapper, innerWrapper, container, containerParent, containerHTML, slideItems, slideCount, breakpointZone, windowWidth, autoWidth, fixedWidth, edgePadding, gutter, viewport, items, slideBy, viewportMax, arrowKeys, speed, rewind, loop, autoHeight, sheet, lazyload, slidePositions, slideItemsOut, cloneCount, slideCountNew, hasRightDeadZone, rightBoundary, updateIndexBeforeTransform, transformAttr, transformPrefix, transformPostfix, getIndexMax, index, indexCached, indexMin, indexMax, resizeTimer, swipeAngle, moveDirectionExpected, running, onInit, events, newContainerClasses, slideId, disable, disabled, freezable, freeze, frozen, controlsEvents, navEvents, hoverEvents, visibilityEvent, docmentKeydownEvent, touchEvents, dragEvents, hasControls, hasNav, navAsThumbnails, hasAutoplay, hasTouch, hasMouseDrag, slideActiveClass, imgCompleteClass, imgEvents, imgsComplete, controls, controlsText, controlsContainer, controlsContainerHTML, prevButton, nextButton, prevIsButton, nextIsButton, nav, navContainer, navContainerHTML, navItems, pages, pagesCached, navClicked, navCurrentIndex, navCurrentIndexCached, navActiveClass, navStr, navStrCurrent, autoplay, autoplayTimeout, autoplayDirection, autoplayText, autoplayHoverPause, autoplayButton, autoplayButtonHTML, autoplayResetOnVisibility, autoplayHtmlStrings, autoplayTimer, animating, autoplayHoverPaused, autoplayUserPaused, autoplayVisibilityPaused, initPosition, lastPosition, translateInit, disX, disY, panStart, rafIndex, getDist, touch, mouseDrag ].forEach(function(item) { if (item !== null) { console.log(item); } });\n\n for (var a in this) {\n if (a !== 'rebuild') { this[a] = null; }\n }\n isOn = false;\n }\n\n// === ON RESIZE ===\n // responsive || fixedWidth || autoWidth || !horizontal\n function onResize (e) {\n raf(function(){ resizeTasks(getEvent(e)); });\n }\n\n function resizeTasks (e) {\n if (!isOn) { return; }\n if (nested === 'outer') { events.emit('outerResized', info(e)); }\n windowWidth = getWindowWidth();\n var bpChanged,\n breakpointZoneTem = breakpointZone,\n needContainerTransform = false;\n\n if (responsive) {\n setBreakpointZone();\n bpChanged = breakpointZoneTem !== breakpointZone;\n // if (hasRightDeadZone) { needContainerTransform = true; } // *?\n if (bpChanged) { events.emit('newBreakpointStart', info(e)); }\n }\n\n var indChanged,\n itemsChanged,\n itemsTem = items,\n disableTem = disable,\n freezeTem = freeze,\n arrowKeysTem = arrowKeys,\n controlsTem = controls,\n navTem = nav,\n touchTem = touch,\n mouseDragTem = mouseDrag,\n autoplayTem = autoplay,\n autoplayHoverPauseTem = autoplayHoverPause,\n autoplayResetOnVisibilityTem = autoplayResetOnVisibility,\n indexTem = index;\n\n if (bpChanged) {\n var fixedWidthTem = fixedWidth,\n autoHeightTem = autoHeight,\n controlsTextTem = controlsText,\n centerTem = center,\n autoplayTextTem = autoplayText;\n\n if (!CSSMQ) {\n var gutterTem = gutter,\n edgePaddingTem = edgePadding;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n arrowKeys = getOption('arrowKeys');\n controls = getOption('controls');\n nav = getOption('nav');\n touch = getOption('touch');\n center = getOption('center');\n mouseDrag = getOption('mouseDrag');\n autoplay = getOption('autoplay');\n autoplayHoverPause = getOption('autoplayHoverPause');\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility');\n\n if (bpChanged) {\n disable = getOption('disable');\n fixedWidth = getOption('fixedWidth');\n speed = getOption('speed');\n autoHeight = getOption('autoHeight');\n controlsText = getOption('controlsText');\n autoplayText = getOption('autoplayText');\n autoplayTimeout = getOption('autoplayTimeout');\n\n if (!CSSMQ) {\n edgePadding = getOption('edgePadding');\n gutter = getOption('gutter');\n }\n }\n // update options\n resetVariblesWhenDisable(disable);\n\n viewport = getViewportWidth(); // <= edgePadding, gutter\n if ((!horizontal || autoWidth) && !disable) {\n setSlidePositions();\n if (!horizontal) {\n updateContentWrapperHeight(); // <= setSlidePositions\n needContainerTransform = true;\n }\n }\n if (fixedWidth || autoWidth) {\n rightBoundary = getRightBoundary(); // autoWidth: <= viewport, slidePositions, gutter\n // fixedWidth: <= viewport, fixedWidth, gutter\n indexMax = getIndexMax(); // autoWidth: <= rightBoundary, slidePositions\n // fixedWidth: <= rightBoundary, fixedWidth, gutter\n }\n\n if (bpChanged || fixedWidth) {\n items = getOption('items');\n slideBy = getOption('slideBy');\n itemsChanged = items !== itemsTem;\n\n if (itemsChanged) {\n if (!fixedWidth && !autoWidth) { indexMax = getIndexMax(); } // <= items\n // check index before transform in case\n // slider reach the right edge then items become bigger\n updateIndex();\n }\n }\n\n if (bpChanged) {\n if (disable !== disableTem) {\n if (disable) {\n disableSlider();\n } else {\n enableSlider(); // <= slidePositions, rightBoundary, indexMax\n }\n }\n }\n\n if (freezable && (bpChanged || fixedWidth || autoWidth)) {\n freeze = getFreeze(); // <= autoWidth: slidePositions, gutter, viewport, rightBoundary\n // <= fixedWidth: fixedWidth, gutter, rightBoundary\n // <= others: items\n\n if (freeze !== freezeTem) {\n if (freeze) {\n doContainerTransform(getContainerTransformValue(getStartIndex(0)));\n freezeSlider();\n } else {\n unfreezeSlider();\n needContainerTransform = true;\n }\n }\n }\n\n resetVariblesWhenDisable(disable || freeze); // controls, nav, touch, mouseDrag, arrowKeys, autoplay, autoplayHoverPause, autoplayResetOnVisibility\n if (!autoplay) { autoplayHoverPause = autoplayResetOnVisibility = false; }\n\n if (arrowKeys !== arrowKeysTem) {\n arrowKeys ?\n addEvents(doc, docmentKeydownEvent) :\n removeEvents(doc, docmentKeydownEvent);\n }\n if (controls !== controlsTem) {\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n } else {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n if (nav !== navTem) {\n if (nav) {\n showElement(navContainer);\n updateNavVisibility();\n } else {\n hideElement(navContainer)\n }\n }\n if (touch !== touchTem) {\n touch ?\n addEvents(container, touchEvents, options.preventScrollOnTouch) :\n removeEvents(container, touchEvents);\n }\n if (mouseDrag !== mouseDragTem) {\n mouseDrag ?\n addEvents(container, dragEvents) :\n removeEvents(container, dragEvents);\n }\n if (autoplay !== autoplayTem) {\n if (autoplay) {\n if (autoplayButton) { showElement(autoplayButton); }\n if (!animating && !autoplayUserPaused) { startAutoplay(); }\n } else {\n if (autoplayButton) { hideElement(autoplayButton); }\n if (animating) { stopAutoplay(); }\n }\n }\n if (autoplayHoverPause !== autoplayHoverPauseTem) {\n autoplayHoverPause ?\n addEvents(container, hoverEvents) :\n removeEvents(container, hoverEvents);\n }\n if (autoplayResetOnVisibility !== autoplayResetOnVisibilityTem) {\n autoplayResetOnVisibility ?\n addEvents(doc, visibilityEvent) :\n removeEvents(doc, visibilityEvent);\n }\n\n if (bpChanged) {\n if (fixedWidth !== fixedWidthTem || center !== centerTem) { needContainerTransform = true; }\n\n if (autoHeight !== autoHeightTem) {\n if (!autoHeight) { innerWrapper.style.height = ''; }\n }\n\n if (controls && controlsText !== controlsTextTem) {\n prevButton.innerHTML = controlsText[0];\n nextButton.innerHTML = controlsText[1];\n }\n\n if (autoplayButton && autoplayText !== autoplayTextTem) {\n var i = autoplay ? 1 : 0,\n html = autoplayButton.innerHTML,\n len = html.length - autoplayTextTem[i].length;\n if (html.substring(len) === autoplayTextTem[i]) {\n autoplayButton.innerHTML = html.substring(0, len) + autoplayText[i];\n }\n }\n } else {\n if (center && (fixedWidth || autoWidth)) { needContainerTransform = true; }\n }\n\n if (itemsChanged || fixedWidth && !autoWidth) {\n pages = getPages();\n updateNavVisibility();\n }\n\n indChanged = index !== indexTem;\n if (indChanged) {\n events.emit('indexChanged', info());\n needContainerTransform = true;\n } else if (itemsChanged) {\n if (!indChanged) { additionalUpdates(); }\n } else if (fixedWidth || autoWidth) {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n }\n\n if (itemsChanged && !carousel) { updateGallerySlidePositions(); }\n\n if (!disable && !freeze) {\n // non-mediaqueries: IE8\n if (bpChanged && !CSSMQ) {\n // middle wrapper styles\n\n // inner wrapper styles\n if (edgePadding !== edgePaddingTem || gutter !== gutterTem) {\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, speed, autoHeight);\n }\n\n if (horizontal) {\n // container styles\n if (carousel) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = getSlideWidthStyle(fixedWidth, gutter, items) +\n getSlideGutterStyle(gutter);\n\n // remove the last line and\n // add new styles\n removeCSSRule(sheet, getCssRulesLength(sheet) - 1);\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n }\n }\n\n // auto height\n if (autoHeight) { doAutoHeight(); }\n\n if (needContainerTransform) {\n doContainerTransformSilent();\n indexCached = index;\n }\n }\n\n if (bpChanged) { events.emit('newBreakpointEnd', info(e)); }\n }\n\n\n\n\n\n // === INITIALIZATION FUNCTIONS === //\n function getFreeze () {\n if (!fixedWidth && !autoWidth) {\n var a = center ? items - (items - 1) / 2 : items;\n return slideCount <= a;\n }\n\n var width = fixedWidth ? (fixedWidth + gutter) * slideCount : slidePositions[slideCount],\n vp = edgePadding ? viewport + edgePadding * 2 : viewport + gutter;\n\n if (center) {\n vp -= fixedWidth ? (viewport - fixedWidth) / 2 : (viewport - (slidePositions[index + 1] - slidePositions[index] - gutter)) / 2;\n }\n\n return width <= vp;\n }\n\n function setBreakpointZone () {\n breakpointZone = 0;\n for (var bp in responsive) {\n bp = parseInt(bp); // convert string to number\n if (windowWidth >= bp) { breakpointZone = bp; }\n }\n }\n\n // (slideBy, indexMin, indexMax) => index\n var updateIndex = (function () {\n return loop ?\n carousel ?\n // loop + carousel\n function () {\n var leftEdge = indexMin,\n rightEdge = indexMax;\n\n leftEdge += slideBy;\n rightEdge -= slideBy;\n\n // adjust edges when has edge paddings\n // or fixed-width slider with extra space on the right side\n if (edgePadding) {\n leftEdge += 1;\n rightEdge -= 1;\n } else if (fixedWidth) {\n if ((viewport + gutter)%(fixedWidth + gutter)) { rightEdge -= 1; }\n }\n\n if (cloneCount) {\n if (index > rightEdge) {\n index -= slideCount;\n } else if (index < leftEdge) {\n index += slideCount;\n }\n }\n } :\n // loop + gallery\n function() {\n if (index > indexMax) {\n while (index >= indexMin + slideCount) { index -= slideCount; }\n } else if (index < indexMin) {\n while (index <= indexMax - slideCount) { index += slideCount; }\n }\n } :\n // non-loop\n function() {\n index = Math.max(indexMin, Math.min(indexMax, index));\n };\n })();\n\n function disableUI () {\n if (!autoplay && autoplayButton) { hideElement(autoplayButton); }\n if (!nav && navContainer) { hideElement(navContainer); }\n if (!controls) {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n\n function enableUI () {\n if (autoplay && autoplayButton) { showElement(autoplayButton); }\n if (nav && navContainer) { showElement(navContainer); }\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n }\n }\n\n function freezeSlider () {\n if (frozen) { return; }\n\n // remove edge padding from inner wrapper\n if (edgePadding) { innerWrapper.style.margin = '0px'; }\n\n // add class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { addClass(slideItems[i], str); }\n addClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n disableUI();\n\n frozen = true;\n }\n\n function unfreezeSlider () {\n if (!frozen) { return; }\n\n // restore edge padding for inner wrapper\n // for mordern browsers\n if (edgePadding && CSSMQ) { innerWrapper.style.margin = ''; }\n\n // remove class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { removeClass(slideItems[i], str); }\n removeClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n enableUI();\n\n frozen = false;\n }\n\n function disableSlider () {\n if (disabled) { return; }\n\n sheet.disabled = true;\n container.className = container.className.replace(newContainerClasses.substring(1), '');\n removeAttrs(container, ['style']);\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { hideElement(slideItems[j]); }\n hideElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // vertical slider\n if (!horizontal || !carousel) { removeAttrs(innerWrapper, ['style']); }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i];\n removeAttrs(item, ['style']);\n removeClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // update tools\n disableUI();\n\n disabled = true;\n }\n\n function enableSlider () {\n if (!disabled) { return; }\n\n sheet.disabled = false;\n container.className += newContainerClasses;\n doContainerTransformSilent();\n\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { showElement(slideItems[j]); }\n showElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i],\n classN = i < index + items ? animateIn : animateNormal;\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, classN);\n }\n }\n\n // update tools\n enableUI();\n\n disabled = false;\n }\n\n function updateLiveRegion () {\n var str = getLiveRegionStr();\n if (liveregionCurrent.innerHTML !== str) { liveregionCurrent.innerHTML = str; }\n }\n\n function getLiveRegionStr () {\n var arr = getVisibleSlideRange(),\n start = arr[0] + 1,\n end = arr[1] + 1;\n return start === end ? start + '' : start + ' to ' + end;\n }\n\n function getVisibleSlideRange (val) {\n if (val == null) { val = getContainerTransformValue(); }\n var start = index, end, rangestart, rangeend;\n\n // get range start, range end for autoWidth and fixedWidth\n if (center || edgePadding) {\n if (autoWidth || fixedWidth) {\n rangestart = - (parseFloat(val) + edgePadding);\n rangeend = rangestart + viewport + edgePadding * 2;\n }\n } else {\n if (autoWidth) {\n rangestart = slidePositions[index];\n rangeend = rangestart + viewport;\n }\n }\n\n // get start, end\n // - check auto width\n if (autoWidth) {\n slidePositions.forEach(function(point, i) {\n if (i < slideCountNew) {\n if ((center || edgePadding) && point <= rangestart + 0.5) { start = i; }\n if (rangeend - point >= 0.5) { end = i; }\n }\n });\n\n // - check percentage width, fixed width\n } else {\n\n if (fixedWidth) {\n var cell = fixedWidth + gutter;\n if (center || edgePadding) {\n start = Math.floor(rangestart/cell);\n end = Math.ceil(rangeend/cell - 1);\n } else {\n end = start + Math.ceil(viewport/cell) - 1;\n }\n\n } else {\n if (center || edgePadding) {\n var a = items - 1;\n if (center) {\n start -= a / 2;\n end = index + a / 2;\n } else {\n end = index + a;\n }\n\n if (edgePadding) {\n var b = edgePadding * items / viewport;\n start -= b;\n end += b;\n }\n\n start = Math.floor(start);\n end = Math.ceil(end);\n } else {\n end = start + items - 1;\n }\n }\n\n start = Math.max(start, 0);\n end = Math.min(end, slideCountNew - 1);\n }\n\n return [start, end];\n }\n\n function doLazyLoad () {\n if (lazyload && !disable) {\n var arg = getVisibleSlideRange();\n arg.push(lazyloadSelector);\n\n getImageArray.apply(null, arg).forEach(function (img) {\n if (!hasClass(img, imgCompleteClass)) {\n // stop propagation transitionend event to container\n var eve = {};\n eve[TRANSITIONEND] = function (e) { e.stopPropagation(); };\n addEvents(img, eve);\n\n addEvents(img, imgEvents);\n\n // update src\n img.src = getAttr(img, 'data-src');\n\n // update srcset\n var srcset = getAttr(img, 'data-srcset');\n if (srcset) { img.srcset = srcset; }\n\n addClass(img, 'loading');\n }\n });\n }\n }\n\n function onImgLoaded (e) {\n imgLoaded(getTarget(e));\n }\n\n function onImgFailed (e) {\n imgFailed(getTarget(e));\n }\n\n function imgLoaded (img) {\n addClass(img, 'loaded');\n imgCompleted(img);\n }\n\n function imgFailed (img) {\n addClass(img, 'failed');\n imgCompleted(img);\n }\n\n function imgCompleted (img) {\n addClass(img, imgCompleteClass);\n removeClass(img, 'loading');\n removeEvents(img, imgEvents);\n }\n\n function getImageArray (start, end, imgSelector) {\n var imgs = [];\n if (!imgSelector) { imgSelector = 'img'; }\n\n while (start <= end) {\n forEach(slideItems[start].querySelectorAll(imgSelector), function (img) { imgs.push(img); });\n start++;\n }\n\n return imgs;\n }\n\n // check if all visible images are loaded\n // and update container height if it's done\n function doAutoHeight () {\n var imgs = getImageArray.apply(null, getVisibleSlideRange());\n raf(function(){ imgsLoadedCheck(imgs, updateInnerWrapperHeight); });\n }\n\n function imgsLoadedCheck (imgs, cb) {\n // execute callback function if all images are complete\n if (imgsComplete) { return cb(); }\n\n // check image classes\n imgs.forEach(function (img, index) {\n if (!lazyload && img.complete) { imgCompleted(img); } // Check image.complete\n if (hasClass(img, imgCompleteClass)) { imgs.splice(index, 1); }\n });\n\n // execute callback function if selected images are all complete\n if (!imgs.length) { return cb(); }\n\n // otherwise execute this functiona again\n raf(function(){ imgsLoadedCheck(imgs, cb); });\n }\n\n function additionalUpdates () {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n updateControlsStatus();\n updateNavStatus();\n }\n\n\n function update_carousel_transition_duration () {\n if (carousel && autoHeight) {\n middleWrapper.style[TRANSITIONDURATION] = speed / 1000 + 's';\n }\n }\n\n function getMaxSlideHeight (slideStart, slideRange) {\n var heights = [];\n for (var i = slideStart, l = Math.min(slideStart + slideRange, slideCountNew); i < l; i++) {\n heights.push(slideItems[i].offsetHeight);\n }\n\n return Math.max.apply(null, heights);\n }\n\n // update inner wrapper height\n // 1. get the max-height of the visible slides\n // 2. set transitionDuration to speed\n // 3. update inner wrapper height to max-height\n // 4. set transitionDuration to 0s after transition done\n function updateInnerWrapperHeight () {\n var maxHeight = autoHeight ? getMaxSlideHeight(index, items) : getMaxSlideHeight(cloneCount, slideCount),\n wp = middleWrapper ? middleWrapper : innerWrapper;\n\n if (wp.style.height !== maxHeight) { wp.style.height = maxHeight + 'px'; }\n }\n\n // get the distance from the top edge of the first slide to each slide\n // (init) => slidePositions\n function setSlidePositions () {\n slidePositions = [0];\n var attr = horizontal ? 'left' : 'top',\n attr2 = horizontal ? 'right' : 'bottom',\n base = slideItems[0].getBoundingClientRect()[attr];\n\n forEach(slideItems, function(item, i) {\n // skip the first slide\n if (i) { slidePositions.push(item.getBoundingClientRect()[attr] - base); }\n // add the end edge\n if (i === slideCountNew - 1) { slidePositions.push(item.getBoundingClientRect()[attr2] - base); }\n });\n }\n\n // update slide\n function updateSlideStatus () {\n var range = getVisibleSlideRange(),\n start = range[0],\n end = range[1];\n\n forEach(slideItems, function(item, i) {\n // show slides\n if (i >= start && i <= end) {\n if (hasAttr(item, 'aria-hidden')) {\n removeAttrs(item, ['aria-hidden', 'tabindex']);\n addClass(item, slideActiveClass);\n }\n // hide slides\n } else {\n if (!hasAttr(item, 'aria-hidden')) {\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n removeClass(item, slideActiveClass);\n }\n }\n });\n }\n\n // gallery: update slide position\n function updateGallerySlidePositions () {\n var l = index + Math.min(slideCount, items);\n for (var i = slideCountNew; i--;) {\n var item = slideItems[i];\n\n if (i >= index && i < l) {\n // add transitions to visible slides when adjusting their positions\n addClass(item, 'tns-moving');\n\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n } else if (item.style.left) {\n item.style.left = '';\n addClass(item, animateNormal);\n removeClass(item, animateIn);\n }\n\n // remove outlet animation\n removeClass(item, animateOut);\n }\n\n // removing '.tns-moving'\n setTimeout(function() {\n forEach(slideItems, function(el) {\n removeClass(el, 'tns-moving');\n });\n }, 300);\n }\n\n // set tabindex on Nav\n function updateNavStatus () {\n // get current nav\n if (nav) {\n navCurrentIndex = navClicked >= 0 ? navClicked : getCurrentNavIndex();\n navClicked = -1;\n\n if (navCurrentIndex !== navCurrentIndexCached) {\n var navPrev = navItems[navCurrentIndexCached],\n navCurrent = navItems[navCurrentIndex];\n\n setAttrs(navPrev, {\n 'tabindex': '-1',\n 'aria-label': navStr + (navCurrentIndexCached + 1)\n });\n removeClass(navPrev, navActiveClass);\n\n setAttrs(navCurrent, {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navCurrent, 'tabindex');\n addClass(navCurrent, navActiveClass);\n\n navCurrentIndexCached = navCurrentIndex;\n }\n }\n }\n\n function getLowerCaseNodeName (el) {\n return el.nodeName.toLowerCase();\n }\n\n function isButton (el) {\n return getLowerCaseNodeName(el) === 'button';\n }\n\n function isAriaDisabled (el) {\n return el.getAttribute('aria-disabled') === 'true';\n }\n\n function disEnableElement (isButton, el, val) {\n if (isButton) {\n el.disabled = val;\n } else {\n el.setAttribute('aria-disabled', val.toString());\n }\n }\n\n // set 'disabled' to true on controls when reach the edges\n function updateControlsStatus () {\n if (!controls || rewind || loop) { return; }\n\n var prevDisabled = (prevIsButton) ? prevButton.disabled : isAriaDisabled(prevButton),\n nextDisabled = (nextIsButton) ? nextButton.disabled : isAriaDisabled(nextButton),\n disablePrev = (index <= indexMin) ? true : false,\n disableNext = (!rewind && index >= indexMax) ? true : false;\n\n if (disablePrev && !prevDisabled) {\n disEnableElement(prevIsButton, prevButton, true);\n }\n if (!disablePrev && prevDisabled) {\n disEnableElement(prevIsButton, prevButton, false);\n }\n if (disableNext && !nextDisabled) {\n disEnableElement(nextIsButton, nextButton, true);\n }\n if (!disableNext && nextDisabled) {\n disEnableElement(nextIsButton, nextButton, false);\n }\n }\n\n // set duration\n function resetDuration (el, str) {\n if (TRANSITIONDURATION) { el.style[TRANSITIONDURATION] = str; }\n }\n\n function getSliderWidth () {\n return fixedWidth ? (fixedWidth + gutter) * slideCountNew : slidePositions[slideCountNew];\n }\n\n function getCenterGap (num) {\n if (num == null) { num = index; }\n\n var gap = edgePadding ? gutter : 0;\n return autoWidth ? ((viewport - gap) - (slidePositions[num + 1] - slidePositions[num] - gutter))/2 :\n fixedWidth ? (viewport - fixedWidth) / 2 :\n (items - 1) / 2;\n }\n\n function getRightBoundary () {\n var gap = edgePadding ? gutter : 0,\n result = (viewport + gap) - getSliderWidth();\n\n if (center && !loop) {\n result = fixedWidth ? - (fixedWidth + gutter) * (slideCountNew - 1) - getCenterGap() :\n getCenterGap(slideCountNew - 1) - slidePositions[slideCountNew - 1];\n }\n if (result > 0) { result = 0; }\n\n return result;\n }\n\n function getContainerTransformValue (num) {\n if (num == null) { num = index; }\n\n var val;\n if (horizontal && !autoWidth) {\n if (fixedWidth) {\n val = - (fixedWidth + gutter) * num;\n if (center) { val += getCenterGap(); }\n } else {\n var denominator = TRANSFORM ? slideCountNew : items;\n if (center) { num -= getCenterGap(); }\n val = - num * 100 / denominator;\n }\n } else {\n val = - slidePositions[num];\n if (center && autoWidth) {\n val += getCenterGap();\n }\n }\n\n if (hasRightDeadZone) { val = Math.max(val, rightBoundary); }\n\n val += (horizontal && !autoWidth && !fixedWidth) ? '%' : 'px';\n\n return val;\n }\n\n function doContainerTransformSilent (val) {\n resetDuration(container, '0s');\n doContainerTransform(val);\n }\n\n function doContainerTransform (val) {\n if (val == null) { val = getContainerTransformValue(); }\n container.style[transformAttr] = transformPrefix + val + transformPostfix;\n }\n\n function animateSlide (number, classOut, classIn, isOut) {\n var l = number + items;\n if (!loop) { l = Math.min(l, slideCountNew); }\n\n for (var i = number; i < l; i++) {\n var item = slideItems[i];\n\n // set item positions\n if (!isOut) { item.style.left = (i - index) * 100 / items + '%'; }\n\n if (animateDelay && TRANSITIONDELAY) {\n item.style[TRANSITIONDELAY] = item.style[ANIMATIONDELAY] = animateDelay * (i - number) / 1000 + 's';\n }\n removeClass(item, classOut);\n addClass(item, classIn);\n\n if (isOut) { slideItemsOut.push(item); }\n }\n }\n\n // make transfer after click/drag:\n // 1. change 'transform' property for mordern browsers\n // 2. change 'left' property for legacy browsers\n var transformCore = (function () {\n return carousel ?\n function () {\n resetDuration(container, '');\n if (TRANSITIONDURATION || !speed) {\n // for morden browsers with non-zero duration or\n // zero duration for all browsers\n doContainerTransform();\n // run fallback function manually\n // when duration is 0 / container is hidden\n if (!speed || !isVisible(container)) { onTransitionEnd(); }\n\n } else {\n // for old browser with non-zero duration\n jsTransform(container, transformAttr, transformPrefix, transformPostfix, getContainerTransformValue(), speed, onTransitionEnd);\n }\n\n if (!horizontal) { updateContentWrapperHeight(); }\n } :\n function () {\n slideItemsOut = [];\n\n var eve = {};\n eve[TRANSITIONEND] = eve[ANIMATIONEND] = onTransitionEnd;\n removeEvents(slideItems[indexCached], eve);\n addEvents(slideItems[index], eve);\n\n animateSlide(indexCached, animateIn, animateOut, true);\n animateSlide(index, animateNormal, animateIn);\n\n // run fallback function manually\n // when transition or animation not supported / duration is 0\n if (!TRANSITIONEND || !ANIMATIONEND || !speed || !isVisible(container)) { onTransitionEnd(); }\n };\n })();\n\n function render (e, sliderMoved) {\n if (updateIndexBeforeTransform) { updateIndex(); }\n\n // render when slider was moved (touch or drag) even though index may not change\n if (index !== indexCached || sliderMoved) {\n // events\n events.emit('indexChanged', info());\n events.emit('transitionStart', info());\n if (autoHeight) { doAutoHeight(); }\n\n // pause autoplay when click or keydown from user\n if (animating && e && ['click', 'keydown'].indexOf(e.type) >= 0) { stopAutoplay(); }\n\n running = true;\n transformCore();\n }\n }\n\n /*\n * Transfer prefixed properties to the same format\n * CSS: -Webkit-Transform => webkittransform\n * JS: WebkitTransform => webkittransform\n * @param {string} str - property\n *\n */\n function strTrans (str) {\n return str.toLowerCase().replace(/-/g, '');\n }\n\n // AFTER TRANSFORM\n // Things need to be done after a transfer:\n // 1. check index\n // 2. add classes to visible slide\n // 3. disable controls buttons when reach the first/last slide in non-loop slider\n // 4. update nav status\n // 5. lazyload images\n // 6. update container height\n function onTransitionEnd (event) {\n // check running on gallery mode\n // make sure trantionend/animationend events run only once\n if (carousel || running) {\n events.emit('transitionEnd', info(event));\n\n if (!carousel && slideItemsOut.length > 0) {\n for (var i = 0; i < slideItemsOut.length; i++) {\n var item = slideItemsOut[i];\n // set item positions\n item.style.left = '';\n\n if (ANIMATIONDELAY && TRANSITIONDELAY) {\n item.style[ANIMATIONDELAY] = '';\n item.style[TRANSITIONDELAY] = '';\n }\n removeClass(item, animateOut);\n addClass(item, animateNormal);\n }\n }\n\n /* update slides, nav, controls after checking ...\n * => legacy browsers who don't support 'event'\n * have to check event first, otherwise event.target will cause an error\n * => or 'gallery' mode:\n * + event target is slide item\n * => or 'carousel' mode:\n * + event target is container,\n * + event.property is the same with transform attribute\n */\n if (!event ||\n !carousel && event.target.parentNode === container ||\n event.target === container && strTrans(event.propertyName) === strTrans(transformAttr)) {\n\n if (!updateIndexBeforeTransform) {\n var indexTem = index;\n updateIndex();\n if (index !== indexTem) {\n events.emit('indexChanged', info());\n\n doContainerTransformSilent();\n }\n }\n\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n running = false;\n indexCached = index;\n }\n }\n\n }\n\n // # ACTIONS\n function goTo (targetIndex, e) {\n if (freeze) { return; }\n\n // prev slideBy\n if (targetIndex === 'prev') {\n onControlsClick(e, -1);\n\n // next slideBy\n } else if (targetIndex === 'next') {\n onControlsClick(e, 1);\n\n // go to exact slide\n } else {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n var absIndex = getAbsIndex(),\n indexGap = 0;\n\n if (targetIndex === 'first') {\n indexGap = - absIndex;\n } else if (targetIndex === 'last') {\n indexGap = carousel ? slideCount - items - absIndex : slideCount - 1 - absIndex;\n } else {\n if (typeof targetIndex !== 'number') { targetIndex = parseInt(targetIndex); }\n\n if (!isNaN(targetIndex)) {\n // from directly called goTo function\n if (!e) { targetIndex = Math.max(0, Math.min(slideCount - 1, targetIndex)); }\n\n indexGap = targetIndex - absIndex;\n }\n }\n\n // gallery: make sure new page won't overlap with current page\n if (!carousel && indexGap && Math.abs(indexGap) < items) {\n var factor = indexGap > 0 ? 1 : -1;\n indexGap += (index + indexGap - slideCount) >= indexMin ? slideCount * factor : slideCount * 2 * factor * -1;\n }\n\n index += indexGap;\n\n // make sure index is in range\n if (carousel && loop) {\n if (index < indexMin) { index += slideCount; }\n if (index > indexMax) { index -= slideCount; }\n }\n\n // if index is changed, start rendering\n if (getAbsIndex(index) !== getAbsIndex(indexCached)) {\n render(e);\n }\n\n }\n }\n\n // on controls click\n function onControlsClick (e, dir) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n var passEventObject;\n\n if (!dir) {\n e = getEvent(e);\n var target = getTarget(e);\n\n while (target !== controlsContainer && [prevButton, nextButton].indexOf(target) < 0) { target = target.parentNode; }\n\n var targetIn = [prevButton, nextButton].indexOf(target);\n if (targetIn >= 0) {\n passEventObject = true;\n dir = targetIn === 0 ? -1 : 1;\n }\n }\n\n if (rewind) {\n if (index === indexMin && dir === -1) {\n goTo('last', e);\n return;\n } else if (index === indexMax && dir === 1) {\n goTo('first', e);\n return;\n }\n }\n\n if (dir) {\n index += slideBy * dir;\n if (autoWidth) { index = Math.floor(index); }\n // pass e when click control buttons or keydown\n render((passEventObject || (e && e.type === 'keydown')) ? e : null);\n }\n }\n\n // on nav click\n function onNavClick (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n e = getEvent(e);\n var target = getTarget(e), navIndex;\n\n // find the clicked nav item\n while (target !== navContainer && !hasAttr(target, 'data-nav')) { target = target.parentNode; }\n if (hasAttr(target, 'data-nav')) {\n var navIndex = navClicked = Number(getAttr(target, 'data-nav')),\n targetIndexBase = fixedWidth || autoWidth ? navIndex * slideCount / pages : navIndex * items,\n targetIndex = navAsThumbnails ? navIndex : Math.min(Math.ceil(targetIndexBase), slideCount - 1);\n goTo(targetIndex, e);\n\n if (navCurrentIndex === navIndex) {\n if (animating) { stopAutoplay(); }\n navClicked = -1; // reset navClicked\n }\n }\n }\n\n // autoplay functions\n function setAutoplayTimer () {\n autoplayTimer = setInterval(function () {\n onControlsClick(null, autoplayDirection);\n }, autoplayTimeout);\n\n animating = true;\n }\n\n function stopAutoplayTimer () {\n clearInterval(autoplayTimer);\n animating = false;\n }\n\n function updateAutoplayButton (action, txt) {\n setAttrs(autoplayButton, {'data-action': action});\n autoplayButton.innerHTML = autoplayHtmlStrings[0] + action + autoplayHtmlStrings[1] + txt;\n }\n\n function startAutoplay () {\n setAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('stop', autoplayText[1]); }\n }\n\n function stopAutoplay () {\n stopAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('start', autoplayText[0]); }\n }\n\n // programaitcally play/pause the slider\n function play () {\n if (autoplay && !animating) {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n function pause () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n }\n }\n\n function toggleAutoplay () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n } else {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n\n function onVisibilityChange () {\n if (doc.hidden) {\n if (animating) {\n stopAutoplayTimer();\n autoplayVisibilityPaused = true;\n }\n } else if (autoplayVisibilityPaused) {\n setAutoplayTimer();\n autoplayVisibilityPaused = false;\n }\n }\n\n function mouseoverPause () {\n if (animating) {\n stopAutoplayTimer();\n autoplayHoverPaused = true;\n }\n }\n\n function mouseoutRestart () {\n if (autoplayHoverPaused) {\n setAutoplayTimer();\n autoplayHoverPaused = false;\n }\n }\n\n // keydown events on document\n function onDocumentKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n onControlsClick(e, keyIndex === 0 ? -1 : 1);\n }\n }\n\n // on key control\n function onControlsKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (!prevButton.disabled) { onControlsClick(e, -1); }\n } else if (!nextButton.disabled) {\n onControlsClick(e, 1);\n }\n }\n }\n\n // set focus\n function setFocus (el) {\n el.focus();\n }\n\n // on key nav\n function onNavKeydown (e) {\n e = getEvent(e);\n var curElement = doc.activeElement;\n if (!hasAttr(curElement, 'data-nav')) { return; }\n\n // var code = e.keyCode,\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT, KEYS.ENTER, KEYS.SPACE].indexOf(e.keyCode),\n navIndex = Number(getAttr(curElement, 'data-nav'));\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (navIndex > 0) { setFocus(navItems[navIndex - 1]); }\n } else if (keyIndex === 1) {\n if (navIndex < pages - 1) { setFocus(navItems[navIndex + 1]); }\n } else {\n navClicked = navIndex;\n goTo(navIndex, e);\n }\n }\n }\n\n function getEvent (e) {\n e = e || win.event;\n return isTouchEvent(e) ? e.changedTouches[0] : e;\n }\n function getTarget (e) {\n return e.target || win.event.srcElement;\n }\n\n function isTouchEvent (e) {\n return e.type.indexOf('touch') >= 0;\n }\n\n function preventDefaultBehavior (e) {\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\n }\n\n function getMoveDirectionExpected () {\n return getTouchDirection(toDegree(lastPosition.y - initPosition.y, lastPosition.x - initPosition.x), swipeAngle) === options.axis;\n }\n\n function onPanStart (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n if (autoplay && animating) { stopAutoplayTimer(); }\n\n panStart = true;\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n\n var $ = getEvent(e);\n events.emit(isTouchEvent(e) ? 'touchStart' : 'dragStart', info(e));\n\n if (!isTouchEvent(e) && ['img', 'a'].indexOf(getLowerCaseNodeName(getTarget(e))) >= 0) {\n preventDefaultBehavior(e);\n }\n\n lastPosition.x = initPosition.x = $.clientX;\n lastPosition.y = initPosition.y = $.clientY;\n if (carousel) {\n translateInit = parseFloat(container.style[transformAttr].replace(transformPrefix, ''));\n resetDuration(container, '0s');\n }\n }\n\n function onPanMove (e) {\n if (panStart) {\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n\n if (carousel) {\n if (!rafIndex) { rafIndex = raf(function(){ panUpdate(e); }); }\n } else {\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) { preventScroll = true; }\n }\n\n if ((typeof e.cancelable !== 'boolean' || e.cancelable) && preventScroll) {\n e.preventDefault();\n }\n }\n }\n\n function panUpdate (e) {\n if (!moveDirectionExpected) {\n panStart = false;\n return;\n }\n caf(rafIndex);\n if (panStart) { rafIndex = raf(function(){ panUpdate(e); }); }\n\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) {\n if (!preventScroll && isTouchEvent(e)) { preventScroll = true; }\n\n try {\n if (e.type) { events.emit(isTouchEvent(e) ? 'touchMove' : 'dragMove', info(e)); }\n } catch(err) {}\n\n var x = translateInit,\n dist = getDist(lastPosition, initPosition);\n if (!horizontal || fixedWidth || autoWidth) {\n x += dist;\n x += 'px';\n } else {\n var percentageX = TRANSFORM ? dist * items * 100 / ((viewport + gutter) * slideCountNew): dist * 100 / (viewport + gutter);\n x += percentageX;\n x += '%';\n }\n\n container.style[transformAttr] = transformPrefix + x + transformPostfix;\n }\n }\n\n function onPanEnd (e) {\n if (panStart) {\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n if (carousel) { resetDuration(container, ''); }\n panStart = false;\n\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n var dist = getDist(lastPosition, initPosition);\n\n if (Math.abs(dist)) {\n // drag vs click\n if (!isTouchEvent(e)) {\n // prevent \"click\"\n var target = getTarget(e);\n addEvents(target, {'click': function preventClick (e) {\n preventDefaultBehavior(e);\n removeEvents(target, {'click': preventClick});\n }});\n }\n\n if (carousel) {\n rafIndex = raf(function() {\n if (horizontal && !autoWidth) {\n var indexMoved = - dist * items / (viewport + gutter);\n indexMoved = dist > 0 ? Math.floor(indexMoved) : Math.ceil(indexMoved);\n index += indexMoved;\n } else {\n var moved = - (translateInit + dist);\n if (moved <= 0) {\n index = indexMin;\n } else if (moved >= slidePositions[slideCountNew - 1]) {\n index = indexMax;\n } else {\n var i = 0;\n while (i < slideCountNew && moved >= slidePositions[i]) {\n index = i;\n if (moved > slidePositions[i] && dist < 0) { index += 1; }\n i++;\n }\n }\n }\n\n render(e, dist);\n events.emit(isTouchEvent(e) ? 'touchEnd' : 'dragEnd', info(e));\n });\n } else {\n if (moveDirectionExpected) {\n onControlsClick(e, dist > 0 ? -1 : 1);\n }\n }\n }\n }\n\n // reset\n if (options.preventScrollOnTouch === 'auto') { preventScroll = false; }\n if (swipeAngle) { moveDirectionExpected = '?'; }\n if (autoplay && !animating) { setAutoplayTimer(); }\n }\n\n // === RESIZE FUNCTIONS === //\n // (slidePositions, index, items) => vertical_conentWrapper.height\n function updateContentWrapperHeight () {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.style.height = slidePositions[index + items] - slidePositions[index] + 'px';\n }\n\n function getPages () {\n var rough = fixedWidth ? (fixedWidth + gutter) * slideCount / viewport : slideCount / items;\n return Math.min(Math.ceil(rough), slideCount);\n }\n\n /*\n * 1. update visible nav items list\n * 2. add \"hidden\" attributes to previous visible nav items\n * 3. remove \"hidden\" attrubutes to new visible nav items\n */\n function updateNavVisibility () {\n if (!nav || navAsThumbnails) { return; }\n\n if (pages !== pagesCached) {\n var min = pagesCached,\n max = pages,\n fn = showElement;\n\n if (pagesCached > pages) {\n min = pages;\n max = pagesCached;\n fn = hideElement;\n }\n\n while (min < max) {\n fn(navItems[min]);\n min++;\n }\n\n // cache pages\n pagesCached = pages;\n }\n }\n\n function info (e) {\n return {\n container: container,\n slideItems: slideItems,\n navContainer: navContainer,\n navItems: navItems,\n controlsContainer: controlsContainer,\n hasControls: hasControls,\n prevButton: prevButton,\n nextButton: nextButton,\n items: items,\n slideBy: slideBy,\n cloneCount: cloneCount,\n slideCount: slideCount,\n slideCountNew: slideCountNew,\n index: index,\n indexCached: indexCached,\n displayIndex: getCurrentSlide(),\n navCurrentIndex: navCurrentIndex,\n navCurrentIndexCached: navCurrentIndexCached,\n pages: pages,\n pagesCached: pagesCached,\n sheet: sheet,\n isOn: isOn,\n event: e || {},\n };\n }\n\n return {\n version: '2.9.4',\n getInfo: info,\n events: events,\n goTo: goTo,\n play: play,\n pause: pause,\n isOn: isOn,\n updateSliderHeight: updateInnerWrapperHeight,\n refresh: initSliderTransform,\n destroy: destroy,\n rebuild: function() {\n return tns(extend(options, optionsElements));\n }\n };\n};\n","// get css-calc \n// @return - false | calc | -webkit-calc | -moz-calc\n// @usage - var calc = getCalc(); \nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function calc() {\n var doc = document, \n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'), \n result = false;\n\n body.appendChild(div);\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n if (div.offsetWidth === 100) { \n result = val.replace(str, ''); \n break;\n }\n }\n } catch (e) {}\n \n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return result;\n}","// get subpixel support value\n// @return - boolean\nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '
';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n\n return supported;\n}","import { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function mediaquerySupport () {\n if (window.matchMedia || window.msMatchMedia) {\n return true;\n }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return position === \"absolute\";\n}\n","import { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function has3DTransforms(tf){\n if (!tf) { return false; }\n if (!window.getComputedStyle) { return false; }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n el = doc.createElement('p'),\n has3d,\n cssTF = tf.length > 9 ? '-' + tf.slice(0, -9).toLowerCase() + '-' : '';\n\n cssTF += 'transform';\n\n // Add it to the body to get the computed style\n body.insertBefore(el, null);\n\n el.style[tf] = 'translate3d(1px,1px,1px)';\n has3d = window.getComputedStyle(el).getPropertyValue(cssTF);\n\n body.fake ? resetFakeBody(body, docOverflow) : el.remove();\n\n return (has3d !== undefined && has3d.length > 0 && has3d !== \"none\");\n}\n","export function getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n \n return 'tns' + window.tnsId;\n}","// create and append style sheet\nexport function createStyleSheet (media, nonce) {\n // Create the