{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/@stimulus/core/dist/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/action.js","webpack:///./node_modules/@stimulus/core/dist/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/attribute_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/string_map_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/value_observer.js","webpack:///./node_modules/@stimulus/core/dist/context.js","webpack:///./node_modules/@stimulus/core/dist/inheritable_statics.js","webpack:///./node_modules/@stimulus/core/dist/blessing.js","webpack:///./node_modules/@stimulus/core/dist/module.js","webpack:///./node_modules/@stimulus/core/dist/definition.js","webpack:///./node_modules/@stimulus/core/dist/class_map.js","webpack:///./node_modules/@stimulus/core/dist/string_helpers.js","webpack:///./node_modules/@stimulus/core/dist/data_map.js","webpack:///./node_modules/@stimulus/core/dist/guide.js","webpack:///./node_modules/@stimulus/core/dist/selectors.js","webpack:///./node_modules/@stimulus/core/dist/target_set.js","webpack:///./node_modules/@stimulus/core/dist/scope.js","webpack:///./node_modules/@stimulus/core/dist/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/router.js","webpack:///./node_modules/@stimulus/core/dist/schema.js","webpack:///./node_modules/@stimulus/core/dist/application.js","webpack:///./node_modules/@stimulus/core/dist/class_properties.js","webpack:///./node_modules/@stimulus/core/dist/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/value_properties.js","webpack:///./node_modules/@stimulus/core/dist/controller.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/slide/slideTo.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/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/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/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/@babel/runtime/regenerator/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./app/javascript/images/45-arrow.svg","webpack:///./app/javascript/images/about-bg.jpg","webpack:///./app/javascript/images/article-bg.jpg","webpack:///./app/javascript/images/cta-bg.jpg","webpack:///./app/javascript/images/dl-bg.jpg","webpack:///./app/javascript/images/favicon.svg","webpack:///./app/javascript/images/footer-bg.jpg","webpack:///./app/javascript/images/garage.svg","webpack:///./app/javascript/images/home-bg.jpg","webpack:///./app/javascript/images/instagram.svg","webpack:///./app/javascript/images/link.svg","webpack:///./app/javascript/images/linkedin.svg","webpack:///./app/javascript/images/logo.svg","webpack:///./app/javascript/images/logos/chas-logo.png","webpack:///./app/javascript/images/logos/cisrs-logo.png","webpack:///./app/javascript/images/logos/citb-logo.png","webpack:///./app/javascript/images/logos/construction-logo.png","webpack:///./app/javascript/images/logos/faset-logo.png","webpack:///./app/javascript/images/logos/ipaf-logo.png","webpack:///./app/javascript/images/logos/nsc-logo.png","webpack:///./app/javascript/images/logos/safecontractor-logo.png","webpack:///./app/javascript/images/long-arrow.svg","webpack:///./app/javascript/images/opengraph-image.jpg","webpack:///./app/javascript/images/plus.svg","webpack:///./app/javascript/images/quote.svg","webpack:///./app/javascript/images/short-arrow.svg","webpack:///./app/javascript/images/star.svg","webpack:///./app/javascript/images/twitter.svg","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/event_listener.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/action.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/binding.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/context.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/definition.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/module.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/data_map.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/selectors.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/target_set.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/scope.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/router.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/schema.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/application.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/target_properties.js","webpack:///./node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/controller.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/stimulus-reveal/dist/stimulus-reveal.js","webpack:///./node_modules/alpinejs/dist/alpine.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./app/javascript/images sync ^\\.\\/.*$","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/about_team_controller.js","webpack:///./app/javascript/controllers/home_projects_controller.js","webpack:///./app/javascript/controllers/service_projects_controller.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./app/javascript/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","obj","iterator","constructor","deleteProps","keys","forEach","e","nextTick","callback","delay","setTimeout","now","Date","getTranslate","el","axis","matrix","curTransform","transformMatrix","window","curStyle","getComputedStyle","WebKitCSSMatrix","transform","webkitTransform","split","length","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","getPropertyValue","toString","m41","parseFloat","m42","isObject","extend","to","arguments","undefined","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","bindModuleMethods","instance","subKey","target","src","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","Image","screen","clearTimeout","matchMedia","requestAnimationFrame","cancelAnimationFrame","id","getWindow","win","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_construct","Parent","args","Class","push","apply","Function","_wrapNativeSuper","_cache","Map","fn","indexOf","TypeError","has","set","Wrapper","writable","configurable","Dom7","_Array","subClass","superClass","items","_this","proto","concat","self","ReferenceError","_assertThisInitialized","Array","arrayFlat","arr","res","isArray","arrayFilter","filter","$","selector","context","html","trim","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","shortcut","_len","_key","trigger","on","Methods","addClass","classes","classNames","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","className","contains","toggleClass","_len3","_key3","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transition","duration","transitionDuration","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","j","events","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","splice","_len9","_key9","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","_prop","each","index","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","find","foundElements","found","removeChild","methodName","EventListener","eventTarget","eventName","eventOptions","unorderedBindings","Set","connect","disconnect","bindingConnected","binding","bindingDisconnected","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","from","sort","right","leftIndex","rightIndex","Dispatcher","application","eventListenerMaps","started","start","eventListeners","eventListener","stop","values","reduce","listeners","fetchEventListenerForBinding","handleError","error","message","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","parts","descriptorPattern","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","forToken","token","descriptorString","content","match","eventTargetName","options","test","eventNameSuffix","Error","Binding","action","willBeInvokedByEvent","invokeWithEvent","method","controller","Element","scope","containsElement","ElementObserver","delegate","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","type","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","stringMap","knownAttributeNames","refreshAttribute","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","fetch","del","size","prune","_extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","__extends","b","__","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","slice","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","attributeValue","invokeChangedCallbackForValue","valueDescriptors","name_1","defaultValue","Context","controllerConstructor","bindingObserver","dispatcher","valueObserver","initialize","parentElement","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","reverse","__spreadArrays","il","jl","bless","properties","shadowConstructor","shadowProperties","getOwnKeys","shadowingDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","_newTarget","Module","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","ClassMap","getDataKey","getAttributeName","getAttributeNameForKey","capitalize","charAt","toUpperCase","dasherize","_char2","DataMap","Guide","logger","warnedKeysByObject","warn","warnedKeys","attributeValueContainsToken","TargetSet","targetName","targetNames","findTarget","findLegacyTarget","findAll","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","guide","Scope","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","result","done","then","__generator","f","y","g","label","sent","trys","ops","verb","v","op","pop","Application","documentElement","console","router","readyState","register","load","head","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","ClassPropertiesBlessing","classDefinition","TargetPropertiesBlessing","targetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","read","readers","write","writers","propertiesForValueDefinitionPair","_char","defaultValuesByType","valueDescriptorForTokenAndType","typeConstant","Boolean","Number","String","parseValueTypeConstant","number","string","array","JSON","parse","writeJSON","stringify","Controller","blessings","browser","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","_temp","support","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","calcBrowser","swiper","resize","resizeHandler","destroyed","initialized","emit","orientationChangeHandler","init","destroy","_extends","source","Observer","attach","WebkitMutationObserver","observerUpdate","characterData","observers","params","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","onTouchStart","touchEventsData","touches","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","preventDefault","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","rtl","rtlTranslate","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","loop","isVertical","translate","maxTranslate","minTranslate","diffX","diffY","sqrt","pow","touchAngle","isHorizontal","atan2","abs","PI","cssMode","touchMoveStopPropagation","nested","stopPropagation","loopFix","startTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","position","time","updateProgress","setTranslate","onTouchEnd","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","run","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","progress","dummyEventAttached","dummyEventListener","direction","initialSlide","updateOnWindowResize","url","autoHeight","setWrapperSize","virtualTranslate","effect","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","_defineProperties","prototypes","modular","useParams","instanceParams","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","update","clientWidth","clientHeight","parseInt","isNaN","swiperSize","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","slidesForMargin","slideEl","slideIndex","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","floor","ceil","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","_slide$","paddingTop","paddingBottom","_boxSizing","_slide$2","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","byController","x","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","indexAsNumber","isFinite","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","move","end","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","_points$i","innerWidth","wasLocked","lastSlidePosition","addClasses","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","moduleParamName","swiperParams","defaults","passedParams","swipers","containerEl","newParams","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","protoProps","staticProps","_proto","getSlideClasses","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","webpackPolyfill","paths","Autoplay","$activeSlideEl","timeout","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","disableOnInteraction","beforeTransitionStart","sliderFirstMove","touchEnd","Navigation","_swiper$navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","toEdge","fromEdge","click","isHidden","_swiper$navigation3","extendStatics","blessControllerConstructor","getFormattedKey","getSelectorForTargetNames","tail","filterElements","defineTargetProperties","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","matchesSelector","mozMatchesSelector","oMatchesSelector","getData","setData","csrfParam","csrfToken","meta","CSRFProtection","xhr","setRequestHeader","refreshCSRFTokens","input","fire","initCustomEvent","Event","defaultPrevented","stopEverything","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","script","ajax","response","responseText","getResponseHeader","status","success","statusText","beforeSend","XMLHttpRequest","OPENED","send","dataType","accept","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","toArray","serializeElement","additionalParam","inputs","disabled","option","selected","checked","encodeURIComponent","form","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","display","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","factory","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","charCodeAt","md5blk_array","md51","tmp","lo","hi","state","substring","rhex","hex","toUtf8","str","unescape","hexToBinaryString","bytes","fromCharCode","SparkMD5","reset","ArrayBuffer","clamp","num","targetArray","sourceArray","byteLength","begin","Uint8Array","appendBinary","contents","_buff","_length","_hash","raw","ret","buff","_finish","getState","setState","hashBinary","first","second","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","classCallCheck","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","root","eventInit","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","notify","upload","messages","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","total","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","shift","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","focus","submitForm","ActiveStorage","Turbolinks","supported","visit","clearCache","setProgressBarDelay","copyObject","defer","throttle","u","uuid","random","Location","absoluteURL","requestURL","anchor","wrap","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","valueOf","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","notifyApplicationBeforeRequestStart","setProgress","requestStarted","abort","lengthComputable","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","ontimeout","onabort","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","show","visible","installStylesheetElement","installProgressElement","startTrickling","hide","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","opacity","trickleInterval","setInterval","clearInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","findMetaElementByName","_e","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","clone","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","render","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","async","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","replaceChild","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","_t7","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","pageXOffset","pageYOffset","scrollPositionChanged","SnapshotCache","snapshots","put","Visit","performScroll","_t8","adapter","timingMetrics","recordTimingMetric","request","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTime","getTimingMetrics","snapshotCached","frame","_t9","clickBubbled","clickCaptured","view","scrollManager","startHistory","stopHistory","cache","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","altKey","shiftKey","nodeIsVisitable","currentScript","isOpen","_initCloseKeypressListener","_initToggleKeypressListener","isTransitioning","_init","_n","_doInitTransition","_initAwayListener","includes","awayHandler","dataset","transitionEndHandler","_didEndTransition","_transitionSetup","_doStartTransition","hidden","_doCompleteTransition","useTransitionClasses","_transitionClasses","transitionType","_transitionDefaults","transformOrigin","transitionProperty","transitionTimingFunction","scale","before","opacityCache","transformCache","transformOriginCache","global","_classCallCheck","_createClass","_slicedToArray","_arrayWithHoles","_arr","_d","_s","err","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","asyncGeneratorStep","gen","_throw","arg","info","_asyncToGenerator","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","minLen","arr2","_defineProperty","ownKeys","enumerableOnly","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","isTesting","checkedAttrLooseCompare","valueA","valueB","warnIfMalformedTemplate","directive","childElementCount","camelCase","subject","walk","firstElementChild","debounce","func","wait","later","expression","tryCatch","cb","_ref","saferEval","dataContext","additionalHelperVariables","saferEvalNoReturn","AsyncFunction","mark","_callee","_context","methodReference","xAttrRE","isXAttr","replaceAtAndColonWithStandardSyntax","getXAttrs","component","directives","parseHtmlAttribute","spreadDirective","spreadObject","$data","entries","_ref3","_ref4","directiveOrder","typeA","typeB","sortDirectives","_ref5","normalizedName","typeMatch","valueMatch","modifiers","startsWith","convertClassStringToArray","filterFn","transitionIn","forceSkip","__x_transition","showAttr","settingBothSidesOfTransition","transitionHelperIn","transitionClassesIn","transitionOut","transitionHelperOut","transitionClassesOut","showCallback","transitionHelper","modifierValue","hideCallback","fallback","rawValue","isNumeric","hook1","hook2","styleValues","noModifiers","transitionOpacity","transitionScale","stages","during","cleanup","ensureStringExpression","evaluateReturnExpression","transitionClasses","classesDuring","classesStart","classesEnd","originalClasses","__x_original_classes","_el$classList3","_el$classList4","_el$classList5","_el$classList6","finish","nextFrame","animationDuration","called","handleForDirective","templateEl","initialUpdate","extraVars","iteratorNames","parseForExpression","ifAttribute","evaluateItemsAndReturnEmptyIfXIfIsPresentAndFalseOnElement","currentEl","item","iterationScopeVariables","scopeVariables","collection","getIterationScopeVariables","currentKey","bindKeyAttribute","generateKeyForIteration","__x_for_key","tmpNextEl","lookAheadForMatchingKeyedElementAndMoveItIfFound","__x_for","updateElements","addElementInLoopAfterCurrentEl","initializeElements","nextElementFromOldLoop","_loop","nextElementFromOldLoopImmutable","nextSibling","removeAnyLeftOverElementsFromPreviousUpdate","forIteratorRE","inMatch","iteratorMatch","handleAttributeBindingDirective","attrType","Alpine","ignoreFocusedForValueBinding","isSameNode","arrayWrappedValue","updateSelect","_originalClasses","newClasses","isBooleanAttr","setIfChanged","handleTextDirective","output","handleHtmlDirective","handleShowDirective","__x_is_shown","removeProperty","handle","showDirectiveLastElement","executeAndClearRemainingShowDirectiveStack","showDirectiveStack","handleIfDirective","expressionResult","elementHasAlreadyBeenAdded","__x_inserted_me","registerListener","runListenerHandler","listenerTarget","_handler2","isKeyEvent","isListeningForASpecificKeyThatHasntBeenPressed","nextModifier","evaluateCommandExpression","keyModifiers","debounceIndex","keyToModifier","selectedSystemKeyModifiers","modifier","generateModelAssignmentFunction","currentValue","newValue","safeParseNumber","multiple","selectedOptions","ObjectDefineProperty","_isExtensible","isExtensible","_getOwnPropertyDescriptor","_preventExtensions","preventExtensions","_Array$prototype","ArrayConcat","isUndefined","isFunction","proxyToValueMap","registerProxy","proxy","unwrap","replicaOrAny","wrapValue","membrane","valueIsObservable","getProxy","lockShadowTarget","shadowTarget","originalTarget","wrapDescriptor","ReactiveProxyHandler","valueObserved","valueMutated","argArray","newTarget","shadowIsExtensible","targetIsExtensible","shadowDescriptor","originalDescriptor","unwrapDescriptor","wrapReadOnlyValue","getReadOnlyProxy","ReadOnlyHandler","createShadowTarget","ObjectDotPrototype","defaultValueIsObservable","defaultValueObserved","defaultValueMutated","defaultValueDistortion","getValue","unwrapProxy","_start","ReactiveMembrane","valueDistortion","objectGraph","unwrappedValue","distorted","getReactiveState","readOnly","reactive","distortedValue","reactiveState","reactiveHandler","readOnlyHandler","Component","componentForClone","dataAttr","dataExpression","initExpression","dataExtras","canonicalComponentElementReference","magicProperties","_ref6","_ref7","unobservedData","getUnobservedData","initReturnedCallback","_this$wrapDataInObser","wrapDataInObservable","$refs","getRefsProxy","nextTickStack","$nextTick","watchers","$watch","_ref8","_ref9","onBeforeComponentInitializeds","pauseReactivity","listenForNewElementsToInitialize","onComponentInitializeds","observable","unwrappedData","copy","updateDom","mutationCallback","fullDotNotationKey","dotNotationParts","comparisonData","part","initializeComponentCallback","__x","rootEl","_this3","walkAndSkipNestedComponents","initializeElement","executeAndClearNextTickStack","registerListeners","resolveBoundAttributes","_this4","updateElement","_this5","promiseChain","promise","finishElement","_this6","_ref10","listenerExpression","rightSideOfExpression","registerModelListener","_this7","_ref11","$dispatch","getDispatchFunction","_this8","targetNode","closestParentComponent","xAttr","rawData","version","pauseMutationObserver","_callee2","_this9","_context2","discoverComponents","initializeComponent","discoverUninitializedComponents","listenForNewUninitializedComponentsAtRunTime","rootEls","_this10","newEl","addMagicProperty","onComponentInitialized","onBeforeComponentInitialized","deferLoadingAlpine","define","originalModule","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","__webpack_amd_options__","webpackContext","req","webpackContextResolve","code","containerTarget","nextTarget","640","768","1024","require","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","RevealController"],"mappings":"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","file":"js/application-6dfff2bd1c1b7f7f5a78.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 56);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return _typeof(o) === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\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\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\n\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n\n if (src === void 0) {\n src = {};\n }\n\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\n\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\n};\n\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","/**\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/* eslint-disable no-proto */\n\n\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}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\n\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.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');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = Methods[methodName];\n});\nexport default $;","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings[\"delete\"](binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: false,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: false,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n Dispatcher.prototype.cacheKey = function (eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\" + (eventOptions[key] ? \"\" : \"!\") + key);\n });\n return parts.join(\":\");\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 768 9 98\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nexport function parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n var _a;\n\n return Object.assign(options, (_a = {}, _a[token.replace(/^!/, \"\")] = !/^!/.test(token), _a));\n }, {});\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseActionDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: false,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"input\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function get() {\n return this.action.index;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function get() {\n return this.action.eventTarget;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventOptions\", {\n get: function get() {\n return this.action.eventOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function get() {\n return this.action.eventName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: false,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function get() {\n return this.action.methodName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements[\"delete\"](element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function get() {\n return this.elementObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function get() {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: false,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function get() {\n return this.elementObserver.started;\n },\n enumerable: false,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","var StringMapObserver =\n/** @class */\nfunction () {\n function StringMapObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n StringMapObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true\n });\n this.refresh();\n }\n };\n\n StringMapObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n StringMapObserver.prototype.refresh = function () {\n if (this.started) {\n for (var _i = 0, _a = this.knownAttributeNames; _i < _a.length; _i++) {\n var attributeName = _a[_i];\n this.refreshAttribute(attributeName);\n }\n }\n }; // Mutation record processing\n\n\n StringMapObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n StringMapObserver.prototype.processMutation = function (mutation) {\n var attributeName = mutation.attributeName;\n\n if (attributeName) {\n this.refreshAttribute(attributeName);\n }\n }; // State tracking\n\n\n StringMapObserver.prototype.refreshAttribute = function (attributeName) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n\n var value = this.element.getAttribute(attributeName);\n\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key);\n }\n\n if (value == null) {\n this.stringMap[\"delete\"](attributeName);\n this.stringMapKeyRemoved(key, attributeName);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n };\n\n StringMapObserver.prototype.stringMapKeyAdded = function (key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n };\n\n StringMapObserver.prototype.stringMapValueChanged = function (value, key) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key);\n }\n };\n\n StringMapObserver.prototype.stringMapKeyRemoved = function (key, attributeName) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName);\n }\n };\n\n Object.defineProperty(StringMapObserver.prototype, \"knownAttributeNames\", {\n get: function get() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"currentAttributeNames\", {\n get: function get() {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"recordedAttributeNames\", {\n get: function get() {\n return Array.from(this.stringMap.keys());\n },\n enumerable: false,\n configurable: true\n });\n return StringMapObserver;\n}();\n\nexport { StringMapObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key)[\"delete\"](value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map[\"delete\"](key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: false,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype[\"delete\"] = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function get() {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: false,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype[\"delete\"] = function (key, value) {\n _super.prototype[\"delete\"].call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function get() {\n return this.attributeObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function get() {\n return this.attributeObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.attributeObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement[\"delete\"](token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function get() {\n return this.tokenListObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function get() {\n return this.tokenListObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.tokenListObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element)[\"delete\"](token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function get() {\n return this.schema.actionAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function get() {\n return this.context.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: false,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction[\"delete\"](action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { StringMapObserver } from \"@stimulus/mutation-observers\";\n\nvar ValueObserver =\n/** @class */\nfunction () {\n function ValueObserver(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n\n ValueObserver.prototype.start = function () {\n this.stringMapObserver.start();\n };\n\n ValueObserver.prototype.stop = function () {\n this.stringMapObserver.stop();\n };\n\n Object.defineProperty(ValueObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueObserver.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n }); // String map observer delegate\n\n ValueObserver.prototype.getStringMapKeyForAttribute = function (attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n };\n\n ValueObserver.prototype.stringMapValueChanged = function (attributeValue, name) {\n this.invokeChangedCallbackForValue(name);\n };\n\n ValueObserver.prototype.invokeChangedCallbacksForDefaultValues = function () {\n for (var _i = 0, _a = this.valueDescriptors; _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b.key,\n name_1 = _b.name,\n defaultValue = _b.defaultValue;\n\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallbackForValue(name_1);\n }\n }\n };\n\n ValueObserver.prototype.invokeChangedCallbackForValue = function (name) {\n var methodName = name + \"Changed\";\n var method = this.receiver[methodName];\n\n if (typeof method == \"function\") {\n var value = this.receiver[name];\n method.call(this.receiver, value);\n }\n };\n\n Object.defineProperty(ValueObserver.prototype, \"valueDescriptors\", {\n get: function get() {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n },\n enumerable: false,\n configurable: true\n });\n return ValueObserver;\n}();\n\nexport { ValueObserver };","import { BindingObserver } from \"./binding_observer\";\nimport { ValueObserver } from \"./value_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n this.valueObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.valueObserver.stop();\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function get() {\n return this.module.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function get() {\n return this.module.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function get() {\n return this.application.dispatcher;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function get() {\n return this.element.parentElement;\n },\n enumerable: false,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","export function readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\nexport function readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors.reverse();\n}\n\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { readInheritableStaticArrayValues } from \"./inheritable_statics\";\n/** @hidden */\n\nexport function bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\n\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\n\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n\n return blessedProperties;\n }, {});\n}\n\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var _a;\n\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n\n if (descriptor) {\n Object.assign(shadowProperties, (_a = {}, _a[key] = descriptor, _a));\n }\n\n return shadowProperties;\n }, {});\n}\n\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n\n return descriptor;\n }\n}\n\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return __spreadArrays(Object.getOwnPropertyNames(object), Object.getOwnPropertySymbols(object));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n var _newTarget = this && this instanceof extended ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(extended, _super);\n\n function extended() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return extended;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function get() {\n return this.definition.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function get() {\n return this.definition.controllerConstructor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function get() {\n return Array.from(this.connectedContexts);\n },\n enumerable: false,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts[\"delete\"](context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","import { bless } from \"./blessing\";\n/** @hidden */\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}","var ClassMap =\n/** @class */\nfunction () {\n function ClassMap(scope) {\n this.scope = scope;\n }\n\n ClassMap.prototype.has = function (name) {\n return this.data.has(this.getDataKey(name));\n };\n\n ClassMap.prototype.get = function (name) {\n return this.data.get(this.getDataKey(name));\n };\n\n ClassMap.prototype.getAttributeName = function (name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n };\n\n ClassMap.prototype.getDataKey = function (name) {\n return name + \"-class\";\n };\n\n Object.defineProperty(ClassMap.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n return ClassMap;\n}();\n\nexport { ClassMap };","export function camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, _char) {\n return _char.toUpperCase();\n });\n}\nexport function capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nexport function dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, _char2) {\n return \"-\" + _char2.toLowerCase();\n });\n}","import { dasherize } from \"./string_helpers\";\n\nvar DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n };\n\n DataMap.prototype.set = function (key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n };\n\n DataMap.prototype[\"delete\"] = function (key) {\n if (this.has(key)) {\n var name_1 = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name_1);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getAttributeNameForKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };","var Guide =\n/** @class */\nfunction () {\n function Guide(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n\n Guide.prototype.warn = function (object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n };\n\n return Guide;\n}();\n\nexport { Guide };","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function get() {\n return this.scope.schema;\n },\n enumerable: false,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var _this = this;\n\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n return targetNames.reduce(function (target, targetName) {\n return target || _this.findTarget(targetName) || _this.findLegacyTarget(targetName);\n }, undefined);\n };\n\n TargetSet.prototype.findAll = function () {\n var _this = this;\n\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n return targetNames.reduce(function (targets, targetName) {\n return __spreadArrays(targets, _this.findAllTargets(targetName), _this.findAllLegacyTargets(targetName));\n }, []);\n };\n\n TargetSet.prototype.findTarget = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAllTargets = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var attributeName = \"data-\" + this.identifier + \"-target\";\n return attributeValueContainsToken(attributeName, targetName);\n };\n\n TargetSet.prototype.findLegacyTarget = function (targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n };\n\n TargetSet.prototype.findAllLegacyTargets = function (targetName) {\n var _this = this;\n\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this.deprecate(element, targetName);\n });\n };\n\n TargetSet.prototype.getLegacySelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n TargetSet.prototype.deprecate = function (element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n this.guide.warn(element, \"target:\" + targetName, \"Please replace \" + attributeName + \"=\\\"\" + identifier + \".\" + targetName + \"\\\" with data-\" + identifier + \"-target=\\\"\" + targetName + \"\\\". \" + (\"The \" + attributeName + \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n\n return element;\n };\n\n Object.defineProperty(TargetSet.prototype, \"guide\", {\n get: function get() {\n return this.scope.guide;\n },\n enumerable: false,\n configurable: true\n });\n return TargetSet;\n}();\n\nexport { TargetSet };","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { ClassMap } from \"./class_map\";\nimport { DataMap } from \"./data_map\";\nimport { Guide } from \"./guide\";\nimport { attributeValueContainsToken } from \"./selectors\";\nimport { TargetSet } from \"./target_set\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, element, identifier, logger) {\n var _this = this;\n\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n\n this.containsElement = function (element) {\n return element.closest(_this.controllerSelector) === _this.element;\n };\n\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n };\n\n Scope.prototype.findAllElements = function (selector) {\n return __spreadArrays(this.element.matches(selector) ? [this.element] : [], this.queryElements(selector).filter(this.containsElement));\n };\n\n Scope.prototype.queryElements = function (selector) {\n return Array.from(this.element.querySelectorAll(selector));\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: false,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { Scope } from \"./scope\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function get() {\n return this.application.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"logger\", {\n get: function get() {\n return this.application.logger;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.createScopeForElementAndIdentifier = function (element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n };\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier[\"delete\"](scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier[\"delete\"](module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.logger = console;\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.dispatcher.start();\n this.router.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.dispatcher.stop();\n this.router.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : __spreadArrays([head], rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : __spreadArrays([head], rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: false,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\n\nexport function ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\n\nfunction propertiesForClassDefinition(key) {\n var _a;\n\n var name = key + \"Class\";\n return _a = {}, _a[name] = {\n get: function get() {\n var classes = this.classes;\n\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\" + attribute + \"\\\"\");\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function get() {\n return this.classes.has(key);\n }\n }, _a;\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\n\nexport function TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\n\nfunction propertiesForTargetDefinition(name) {\n var _a;\n\n return _a = {}, _a[name + \"Target\"] = {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function get() {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function get() {\n return this.targets.has(name);\n }\n }, _a;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { readInheritableStaticObjectPairs } from \"./inheritable_statics\";\nimport { camelize, capitalize, dasherize } from \"./string_helpers\";\n/** @hidden */\n\nexport function ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function get() {\n var _this = this;\n\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var _a;\n\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n\n var attributeName = _this.data.getAttributeNameForKey(valueDescriptor.key);\n\n return Object.assign(result, (_a = {}, _a[attributeName] = valueDescriptor, _a));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n/** @hidden */\n\nexport function propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _a;\n\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var type = definition.type,\n key = definition.key,\n name = definition.name;\n var read = readers[type],\n write = writers[type] || writers[\"default\"];\n return _a = {}, _a[name] = {\n get: function get() {\n var value = this.data.get(key);\n\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function set(value) {\n if (value === undefined) {\n this.data[\"delete\"](key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function get() {\n return this.data.has(key);\n }\n }, _a;\n}\n\nfunction parseValueDefinitionPair(_a) {\n var token = _a[0],\n typeConstant = _a[1];\n var type = parseValueTypeConstant(typeConstant);\n return valueDescriptorForTokenAndType(token, type);\n}\n\nfunction parseValueTypeConstant(typeConstant) {\n switch (typeConstant) {\n case Array:\n return \"array\";\n\n case Boolean:\n return \"boolean\";\n\n case Number:\n return \"number\";\n\n case Object:\n return \"object\";\n\n case String:\n return \"string\";\n }\n\n throw new Error(\"Unknown value type constant \\\"\" + typeConstant + \"\\\"\");\n}\n\nfunction valueDescriptorForTokenAndType(token, type) {\n var key = dasherize(token) + \"-value\";\n return {\n type: type,\n key: key,\n name: camelize(key),\n\n get defaultValue() {\n return defaultValuesByType[type];\n }\n\n };\n}\n\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n\n \"boolean\": false,\n number: 0,\n\n get object() {\n return {};\n },\n\n string: \"\"\n};\nvar readers = {\n array: function array(value) {\n var array = JSON.parse(value);\n\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n\n return array;\n },\n \"boolean\": function boolean(value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function number(value) {\n return parseFloat(value);\n },\n object: function object(value) {\n var object = JSON.parse(value);\n\n if (object === null || _typeof(object) != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n\n return object;\n },\n string: function string(value) {\n return value;\n }\n};\nvar writers = {\n \"default\": writeString,\n array: writeJSON,\n object: writeJSON\n};\n\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\n\nfunction writeString(value) {\n return \"\" + value;\n}","import { ClassPropertiesBlessing } from \"./class_properties\";\nimport { TargetPropertiesBlessing } from \"./target_properties\";\nimport { ValuePropertiesBlessing } from \"./value_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function get() {\n return this.context.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function get() {\n return this.scope.targets;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"classes\", {\n get: function get() {\n return this.scope.classes;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\n Controller.targets = [];\n Controller.values = {};\n return Controller;\n}();\n\nexport { Controller };","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow(); // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends(_extends({}, Observer), {}, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function slideTo(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + _typeof(index) + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (_typeof(slidesIndexes) === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.screen.width - edgeSwipeThreshold)) {\n return;\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n nested: false,\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/* eslint no-param-reassign: \"off\" */\n\n\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el; // Swiper Instance\n\n var swiper = this;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (_typeof(moduleParams) !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (_typeof(params[moduleParamName]) === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Find el\n\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper; // Find Wrapper\n\n var $wrapperEl;\n\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n $wrapperEl.children = function (options) {\n return $el.children(options);\n };\n } else {\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n } // Extend Swiper\n\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n swiper.emit('_slideClass', slideEl, classNames);\n });\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.init = function init() {\n var swiper = this;\n if (swiper.initialized) return;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.width !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { getWindow } from 'ssr-window';\nimport { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n var window = getWindow();\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = window.getComputedStyle(slide[0], null);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n } else {\n var height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n\n var _boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (_boxSizing && _boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n var _slide$2 = slide[0],\n clientHeight = _slide$2.clientHeight,\n offsetHeight = _slide$2.offsetHeight;\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom + (offsetHeight - clientHeight);\n }\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({\n marginLeft: spaceBetween + \"px\"\n });else slides.filter(slidesForMargin).css({\n marginRight: spaceBetween + \"px\"\n });\n } else slides.filter(slidesForMargin).css({\n marginBottom: spaceBetween + \"px\"\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n } // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoints(breakpoints) {\n var window = getWindow(); // Get breakpoint for window width\n\n if (!breakpoints) return undefined;\n var breakpoint = false;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = window.innerHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","export default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device;\n var suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n\n if (rtl) {\n suffixes.push('rtl');\n }\n\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n\n if (device.android) {\n suffixes.push('android');\n }\n\n if (device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","module.exports = require(\"regenerator-runtime\");\n","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n/* eslint no-underscore-dangle: \"off\" */\n\n\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends(_extends({}, Autoplay), {}, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Navigation = {\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n click: function click(swiper, e) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if (swiper.params.navigation.hideOnClick && !$(e.target).is($prevEl) && !$(e.target).is($nextEl)) {\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","export default __webpack_public_path__ + \"media/images/45-arrow-22da159629cf9379851862c8ef9c660a.svg\";","export default __webpack_public_path__ + \"media/images/about-bg-4b78ec281159564bf07e5e2bfad8af5b.jpg\";","export default __webpack_public_path__ + \"media/images/article-bg-19c1215e1395450191b3f979c74b37ab.jpg\";","export default __webpack_public_path__ + \"media/images/cta-bg-5abbca00a0f94a31624f529bbbe75446.jpg\";","export default __webpack_public_path__ + \"media/images/dl-bg-e7f0226e8453fe4d8b26e25c5437593b.jpg\";","export default __webpack_public_path__ + \"media/images/favicon-93e3bb73dc285617caa3f7ccd5e66e27.svg\";","export default __webpack_public_path__ + \"media/images/footer-bg-53014969ecd317e014a388ed2ba16788.jpg\";","export default __webpack_public_path__ + \"media/images/garage-108461263859c8e8ace0daebdd5187ed.svg\";","export default __webpack_public_path__ + \"media/images/home-bg-5a9b043be59a37ece4816290bf84d76a.jpg\";","export default __webpack_public_path__ + \"media/images/instagram-0c988e863f16ea452d9a878cc2eeede7.svg\";","export default __webpack_public_path__ + \"media/images/link-9f37df0e82c0f627c09c320d60fb03c7.svg\";","export default __webpack_public_path__ + \"media/images/linkedin-efa3abb0fe4b0f408bf25be153867594.svg\";","export default __webpack_public_path__ + \"media/images/logo-d8eeab14e5883f8ae1890cd92c32a12a.svg\";","export default __webpack_public_path__ + \"media/images/logos/chas-logo-47dff1fbeb6f73de3b2339b903a6487d.png\";","export default __webpack_public_path__ + \"media/images/logos/cisrs-logo-656fa07b45fdfd978dfc2dfacaa8a4c0.png\";","export default __webpack_public_path__ + \"media/images/logos/citb-logo-4c92a58be00fa8da603e778a58a125d9.png\";","export default __webpack_public_path__ + \"media/images/logos/construction-logo-a946b45330a868ba1c1086079688c949.png\";","export default __webpack_public_path__ + \"media/images/logos/faset-logo-66e2f29e7cabcde889e1788d53cfd790.png\";","export default __webpack_public_path__ + \"media/images/logos/ipaf-logo-630af9b2e969346d1fccd2bceaff05dc.png\";","export default __webpack_public_path__ + \"media/images/logos/nsc-logo-3b8b80e6dc42acc90186895fc45fdf78.png\";","export default __webpack_public_path__ + \"media/images/logos/safecontractor-logo-7496fbb522fa89c1a26730978f3da3c7.png\";","export default __webpack_public_path__ + \"media/images/long-arrow-a35e1682b583a21382c6618c17cdf749.svg\";","export default __webpack_public_path__ + \"media/images/opengraph-image-3aed610959858caf54d399a1e662454d.jpg\";","export default __webpack_public_path__ + \"media/images/plus-abb5fb19d85367d9541dc28f44d7fa58.svg\";","export default __webpack_public_path__ + \"media/images/quote-cf9bcef562d092a392b852d3167de28a.svg\";","export default __webpack_public_path__ + \"media/images/short-arrow-a7f6964e653eebf3ab0e26d1f3963c1f.svg\";","export default __webpack_public_path__ + \"media/images/star-a95e6fe28d14a0da1d5c3df3ccc9b197.svg\";","export default __webpack_public_path__ + \"media/images/twitter-f47de6c0a9734becb0c318cba351ac7e.svg\";","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, false);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, false);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings[\"delete\"](binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: true,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: true,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName;\n return this.fetchEventListener(eventTarget, eventName);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var eventListener = eventListenerMap.get(eventName);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName);\n eventListenerMap.set(eventName, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName) {\n var eventListener = new EventListener(eventTarget, eventName);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 76\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#(.+))?$/;\nexport function parseDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: true,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"change\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"change\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function get() {\n return this.action.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function get() {\n return this.action.eventTarget;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function get() {\n return this.action.eventName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return true;\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function get() {\n return this.action.methodName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements[\"delete\"](element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function get() {\n return this.elementObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function get() {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: true,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function get() {\n return this.elementObserver.started;\n },\n enumerable: true,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key)[\"delete\"](value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map[\"delete\"](key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: true,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype[\"delete\"] = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function get() {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: true,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype[\"delete\"] = function (key, value) {\n _super.prototype[\"delete\"].call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function get() {\n return this.attributeObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function get() {\n return this.attributeObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.attributeObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement[\"delete\"](token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function get() {\n return this.tokenListObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function get() {\n return this.tokenListObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.tokenListObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element)[\"delete\"](token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function get() {\n return this.schema.actionAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function get() {\n return this.context.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: true,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction[\"delete\"](action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { BindingObserver } from \"./binding_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function get() {\n return this.module.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function get() {\n return this.module.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function get() {\n return this.application.dispatcher;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function get() {\n return this.element.parentElement;\n },\n enumerable: true,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n/** @hidden */\n\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: blessControllerConstructor(definition.controllerConstructor)\n };\n}\n\nfunction blessControllerConstructor(controllerConstructor) {\n var constructor = extend(controllerConstructor);\n constructor.bless();\n return constructor;\n}\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function Controller() {\n var _newTarget = this && this instanceof Controller ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n Controller.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: Controller\n }\n });\n Reflect.setPrototypeOf(Controller, constructor);\n return Controller;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(Controller, _super);\n\n function Controller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return Controller;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function get() {\n return this.definition.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function get() {\n return this.definition.controllerConstructor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function get() {\n return Array.from(this.connectedContexts);\n },\n enumerable: true,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts[\"delete\"](context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","var DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n key = this.getFormattedKey(key);\n return this.element.getAttribute(key);\n };\n\n DataMap.prototype.set = function (key, value) {\n key = this.getFormattedKey(key);\n this.element.setAttribute(key, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n key = this.getFormattedKey(key);\n return this.element.hasAttribute(key);\n };\n\n DataMap.prototype[\"delete\"] = function (key) {\n if (this.has(key)) {\n key = this.getFormattedKey(key);\n this.element.removeAttribute(key);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getFormattedKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, _char) {\n return \"-\" + _char.toLowerCase();\n });\n}","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","import { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function get() {\n return this.scope.schema;\n },\n enumerable: true,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAll = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetNames = function (targetNames) {\n var _this = this;\n\n return targetNames.map(function (targetName) {\n return _this.getSelectorForTargetName(targetName);\n }).join(\", \");\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n return TargetSet;\n}();\n\nexport { TargetSet };","import { DataMap } from \"./data_map\";\nimport { TargetSet } from \"./target_set\";\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, identifier, element) {\n this.schema = schema;\n this.identifier = identifier;\n this.element = element;\n this.targets = new TargetSet(this);\n this.data = new DataMap(this);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.findAllElements(selector)[0];\n };\n\n Scope.prototype.findAllElements = function (selector) {\n var head = this.element.matches(selector) ? [this.element] : [];\n var tail = this.filterElements(Array.from(this.element.querySelectorAll(selector)));\n return head.concat(tail);\n };\n\n Scope.prototype.filterElements = function (elements) {\n var _this = this;\n\n return elements.filter(function (element) {\n return _this.containsElement(element);\n });\n };\n\n Scope.prototype.containsElement = function (element) {\n return element.closest(this.controllerSelector) === this.element;\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: true,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { Scope } from \"./scope\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = new Scope(this.schema, identifier, element);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function get() {\n return this.application.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier[\"delete\"](scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier[\"delete\"](module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.router.start();\n this.dispatcher.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.router.stop();\n this.dispatcher.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: true,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n console.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","/** @hidden */\nexport function defineTargetProperties(constructor) {\n var prototype = constructor.prototype;\n var targetNames = getTargetNamesForConstructor(constructor);\n targetNames.forEach(function (name) {\n var _a;\n\n return defineLinkedProperties(prototype, (_a = {}, _a[name + \"Target\"] = {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function get() {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function get() {\n return this.targets.has(name);\n }\n }, _a));\n });\n}\n\nfunction getTargetNamesForConstructor(constructor) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (targetNames, constructor) {\n getOwnTargetNamesForConstructor(constructor).forEach(function (name) {\n return targetNames.add(name);\n });\n return targetNames;\n }, new Set()));\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors;\n}\n\nfunction getOwnTargetNamesForConstructor(constructor) {\n var definition = constructor[\"targets\"];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction defineLinkedProperties(object, properties) {\n Object.keys(properties).forEach(function (name) {\n if (!(name in object)) {\n var descriptor = properties[name];\n Object.defineProperty(object, name, descriptor);\n }\n });\n}\n\nfunction capitalize(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}","import { defineTargetProperties } from \"./target_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Controller.bless = function () {\n defineTargetProperties(this);\n };\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function get() {\n return this.context.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function get() {\n return this.scope.targets;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: true,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.targets = [];\n return Controller;\n}();\n\nexport { Controller };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n CSRFProtection(xhr);\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm[\"delete\"](form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function () {\n var t = this;\n (function () {\n (function () {\n this.Turbolinks = {\n supported: function () {\n return null != window.history.pushState && null != window.requestAnimationFrame && null != window.addEventListener;\n }(),\n visit: function visit(t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function clearCache() {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function setProgressBarDelay(t) {\n return e.controller.setProgressBarDelay(t);\n }\n };\n }).call(this);\n }).call(t);\n var e = t.Turbolinks;\n (function () {\n (function () {\n var t,\n r,\n n,\n o = [].slice;\n e.copyObject = function (t) {\n var e, r, n;\n r = {};\n\n for (e in t) {\n n = t[e], r[e] = n;\n }\n\n return r;\n }, e.closest = function (e, r) {\n return t.call(e, r);\n }, t = function () {\n var t, e;\n return t = document.documentElement, null != (e = t.closest) ? e : function (t) {\n var e;\n\n for (e = this; e;) {\n if (e.nodeType === Node.ELEMENT_NODE && r.call(e, t)) return e;\n e = e.parentNode;\n }\n };\n }(), e.defer = function (t) {\n return setTimeout(t, 1);\n }, e.throttle = function (t) {\n var e;\n return e = null, function () {\n var r;\n return r = 1 <= arguments.length ? o.call(arguments, 0) : [], null != e ? e : e = requestAnimationFrame(function (n) {\n return function () {\n return e = null, t.apply(n, r);\n };\n }(this));\n };\n }, e.dispatch = function (t, e) {\n var r, o, i, s, a, u;\n return a = null != e ? e : {}, u = a.target, r = a.cancelable, o = a.data, i = document.createEvent(\"Events\"), i.initEvent(t, !0, r === !0), i.data = null != o ? o : {}, i.cancelable && !n && (s = i.preventDefault, i.preventDefault = function () {\n return this.defaultPrevented || Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n }\n }), s.call(this);\n }), (null != u ? u : document).dispatchEvent(i), i;\n }, n = function () {\n var t;\n return t = document.createEvent(\"Events\"), t.initEvent(\"test\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }(), e.match = function (t, e) {\n return r.call(t, e);\n }, r = function () {\n var t, e, r, n;\n return t = document.documentElement, null != (e = null != (r = null != (n = t.matchesSelector) ? n : t.webkitMatchesSelector) ? r : t.msMatchesSelector) ? e : t.mozMatchesSelector;\n }(), e.uuid = function () {\n var t, e, r;\n\n for (r = \"\", t = e = 1; 36 >= e; t = ++e) {\n r += 9 === t || 14 === t || 19 === t || 24 === t ? \"-\" : 15 === t ? \"4\" : 20 === t ? (Math.floor(4 * Math.random()) + 8).toString(16) : Math.floor(15 * Math.random()).toString(16);\n }\n\n return r;\n };\n }).call(this), function () {\n e.Location = function () {\n function t(t) {\n var e, r;\n null == t && (t = \"\"), r = document.createElement(\"a\"), r.href = t.toString(), this.absoluteURL = r.href, e = r.hash.length, 2 > e ? this.requestURL = this.absoluteURL : (this.requestURL = this.absoluteURL.slice(0, -e), this.anchor = r.hash.slice(1));\n }\n\n var e, r, n, o;\n return t.wrap = function (t) {\n return t instanceof this ? t : new this(t);\n }, t.prototype.getOrigin = function () {\n return this.absoluteURL.split(\"/\", 3).join(\"/\");\n }, t.prototype.getPath = function () {\n var t, e;\n return null != (t = null != (e = this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/)) ? e[1] : void 0) ? t : \"/\";\n }, t.prototype.getPathComponents = function () {\n return this.getPath().split(\"/\").slice(1);\n }, t.prototype.getLastPathComponent = function () {\n return this.getPathComponents().slice(-1)[0];\n }, t.prototype.getExtension = function () {\n var t, e;\n return null != (t = null != (e = this.getLastPathComponent().match(/\\.[^.]*$/)) ? e[0] : void 0) ? t : \"\";\n }, t.prototype.isHTML = function () {\n return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/);\n }, t.prototype.isPrefixedBy = function (t) {\n var e;\n return e = r(t), this.isEqualTo(t) || o(this.absoluteURL, e);\n }, t.prototype.isEqualTo = function (t) {\n return this.absoluteURL === (null != t ? t.absoluteURL : void 0);\n }, t.prototype.toCacheKey = function () {\n return this.requestURL;\n }, t.prototype.toJSON = function () {\n return this.absoluteURL;\n }, t.prototype.toString = function () {\n return this.absoluteURL;\n }, t.prototype.valueOf = function () {\n return this.absoluteURL;\n }, r = function r(t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function e(t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function o(t, e) {\n return t.slice(0, e.length) === e;\n }, n = function n(t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t, e) {\n return function () {\n return _t.apply(e, arguments);\n };\n };\n\n e.HttpRequest = function () {\n function r(r, n, o) {\n this.delegate = r, this.requestCanceled = t(this.requestCanceled, this), this.requestTimedOut = t(this.requestTimedOut, this), this.requestFailed = t(this.requestFailed, this), this.requestLoaded = t(this.requestLoaded, this), this.requestProgressed = t(this.requestProgressed, this), this.url = e.Location.wrap(n).requestURL, this.referrer = e.Location.wrap(o).absoluteURL, this.createXHR();\n }\n\n return r.NETWORK_FAILURE = 0, r.TIMEOUT_FAILURE = -1, r.timeout = 60, r.prototype.send = function () {\n var t;\n return this.xhr && !this.sent ? (this.notifyApplicationBeforeRequestStart(), this.setProgress(0), this.xhr.send(), this.sent = !0, \"function\" == typeof (t = this.delegate).requestStarted ? t.requestStarted() : void 0) : void 0;\n }, r.prototype.cancel = function () {\n return this.xhr && this.sent ? this.xhr.abort() : void 0;\n }, r.prototype.requestProgressed = function (t) {\n return t.lengthComputable ? this.setProgress(t.loaded / t.total) : void 0;\n }, r.prototype.requestLoaded = function () {\n return this.endRequest(function (t) {\n return function () {\n var e;\n return 200 <= (e = t.xhr.status) && 300 > e ? t.delegate.requestCompletedWithResponse(t.xhr.responseText, t.xhr.getResponseHeader(\"Turbolinks-Location\")) : (t.failed = !0, t.delegate.requestFailedWithStatusCode(t.xhr.status, t.xhr.responseText));\n };\n }(this));\n }, r.prototype.requestFailed = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE);\n };\n }(this));\n }, r.prototype.requestTimedOut = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE);\n };\n }(this));\n }, r.prototype.requestCanceled = function () {\n return this.endRequest();\n }, r.prototype.notifyApplicationBeforeRequestStart = function () {\n return e.dispatch(\"turbolinks:request-start\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.notifyApplicationAfterRequestEnd = function () {\n return e.dispatch(\"turbolinks:request-end\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.createXHR = function () {\n return this.xhr = new XMLHttpRequest(), this.xhr.open(\"GET\", this.url, !0), this.xhr.timeout = 1e3 * this.constructor.timeout, this.xhr.setRequestHeader(\"Accept\", \"text/html, application/xhtml+xml\"), this.xhr.setRequestHeader(\"Turbolinks-Referrer\", this.referrer), this.xhr.onprogress = this.requestProgressed, this.xhr.onload = this.requestLoaded, this.xhr.onerror = this.requestFailed, this.xhr.ontimeout = this.requestTimedOut, this.xhr.onabort = this.requestCanceled;\n }, r.prototype.endRequest = function (t) {\n return this.xhr ? (this.notifyApplicationAfterRequestEnd(), null != t && t.call(this), this.destroy()) : void 0;\n }, r.prototype.setProgress = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.delegate).requestProgressed ? e.requestProgressed(this.progress) : void 0;\n }, r.prototype.destroy = function () {\n var t;\n return this.setProgress(1), \"function\" == typeof (t = this.delegate).requestFinished && t.requestFinished(), this.delegate = null, this.xhr = null;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t2, e) {\n return function () {\n return _t2.apply(e, arguments);\n };\n };\n\n e.ProgressBar = function () {\n function e() {\n this.trickle = t(this.trickle, this), this.stylesheetElement = this.createStylesheetElement(), this.progressElement = this.createProgressElement();\n }\n\n var r;\n return r = 300, e.defaultCSS = \".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \" + r + \"ms ease-out, opacity \" + r / 2 + \"ms \" + r / 2 + \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\", e.prototype.show = function () {\n return this.visible ? void 0 : (this.visible = !0, this.installStylesheetElement(), this.installProgressElement(), this.startTrickling());\n }, e.prototype.hide = function () {\n return this.visible && !this.hiding ? (this.hiding = !0, this.fadeProgressElement(function (t) {\n return function () {\n return t.uninstallProgressElement(), t.stopTrickling(), t.visible = !1, t.hiding = !1;\n };\n }(this))) : void 0;\n }, e.prototype.setValue = function (t) {\n return this.value = t, this.refresh();\n }, e.prototype.installStylesheetElement = function () {\n return document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }, e.prototype.installProgressElement = function () {\n return this.progressElement.style.width = 0, this.progressElement.style.opacity = 1, document.documentElement.insertBefore(this.progressElement, document.body), this.refresh();\n }, e.prototype.fadeProgressElement = function (t) {\n return this.progressElement.style.opacity = 0, setTimeout(t, 1.5 * r);\n }, e.prototype.uninstallProgressElement = function () {\n return this.progressElement.parentNode ? document.documentElement.removeChild(this.progressElement) : void 0;\n }, e.prototype.startTrickling = function () {\n return null != this.trickleInterval ? this.trickleInterval : this.trickleInterval = setInterval(this.trickle, r);\n }, e.prototype.stopTrickling = function () {\n return clearInterval(this.trickleInterval), this.trickleInterval = null;\n }, e.prototype.trickle = function () {\n return this.setValue(this.value + Math.random() / 100);\n }, e.prototype.refresh = function () {\n return requestAnimationFrame(function (t) {\n return function () {\n return t.progressElement.style.width = 10 + 90 * t.value + \"%\";\n };\n }(this));\n }, e.prototype.createStylesheetElement = function () {\n var t;\n return t = document.createElement(\"style\"), t.type = \"text/css\", t.textContent = this.constructor.defaultCSS, t;\n }, e.prototype.createProgressElement = function () {\n var t;\n return t = document.createElement(\"div\"), t.className = \"turbolinks-progress-bar\", t;\n }, e;\n }();\n }.call(this), function () {\n var t = function t(_t3, e) {\n return function () {\n return _t3.apply(e, arguments);\n };\n };\n\n e.BrowserAdapter = function () {\n function r(r) {\n this.controller = r, this.showProgressBar = t(this.showProgressBar, this), this.progressBar = new e.ProgressBar();\n }\n\n var n, o, i;\n return i = e.HttpRequest, n = i.NETWORK_FAILURE, o = i.TIMEOUT_FAILURE, r.prototype.visitProposedToLocationWithAction = function (t, e) {\n return this.controller.startVisitToLocationWithAction(t, e);\n }, r.prototype.visitStarted = function (t) {\n return t.issueRequest(), t.changeHistory(), t.loadCachedSnapshot();\n }, r.prototype.visitRequestStarted = function (t) {\n return this.progressBar.setValue(0), t.hasCachedSnapshot() || \"restore\" !== t.action ? this.showProgressBarAfterDelay() : this.showProgressBar();\n }, r.prototype.visitRequestProgressed = function (t) {\n return this.progressBar.setValue(t.progress);\n }, r.prototype.visitRequestCompleted = function (t) {\n return t.loadResponse();\n }, r.prototype.visitRequestFailedWithStatusCode = function (t, e) {\n switch (e) {\n case n:\n case o:\n return this.reload();\n\n default:\n return t.loadResponse();\n }\n }, r.prototype.visitRequestFinished = function (t) {\n return this.hideProgressBar();\n }, r.prototype.visitCompleted = function (t) {\n return t.followRedirect();\n }, r.prototype.pageInvalidated = function () {\n return this.reload();\n }, r.prototype.showProgressBarAfterDelay = function () {\n return this.progressBarTimeout = setTimeout(this.showProgressBar, this.controller.progressBarDelay);\n }, r.prototype.showProgressBar = function () {\n return this.progressBar.show();\n }, r.prototype.hideProgressBar = function () {\n return this.progressBar.hide(), clearTimeout(this.progressBarTimeout);\n }, r.prototype.reload = function () {\n return window.location.reload();\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t4, e) {\n return function () {\n return _t4.apply(e, arguments);\n };\n };\n\n e.History = function () {\n function r(e) {\n this.delegate = e, this.onPageLoad = t(this.onPageLoad, this), this.onPopState = t(this.onPopState, this);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"popstate\", this.onPopState, !1), addEventListener(\"load\", this.onPageLoad, !1), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"popstate\", this.onPopState, !1), removeEventListener(\"load\", this.onPageLoad, !1), this.started = !1) : void 0;\n }, r.prototype.push = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"push\", t, r);\n }, r.prototype.replace = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"replace\", t, r);\n }, r.prototype.onPopState = function (t) {\n var r, n, o, i;\n return this.shouldHandlePopState() && (i = null != (n = t.state) ? n.turbolinks : void 0) ? (r = e.Location.wrap(window.location), o = i.restorationIdentifier, this.delegate.historyPoppedToLocationWithRestorationIdentifier(r, o)) : void 0;\n }, r.prototype.onPageLoad = function (t) {\n return e.defer(function (t) {\n return function () {\n return t.pageLoaded = !0;\n };\n }(this));\n }, r.prototype.shouldHandlePopState = function () {\n return this.pageIsLoaded();\n }, r.prototype.pageIsLoaded = function () {\n return this.pageLoaded || \"complete\" === document.readyState;\n }, r.prototype.update = function (t, e, r) {\n var n;\n return n = {\n turbolinks: {\n restorationIdentifier: r\n }\n }, history[t + \"State\"](n, null, e);\n }, r;\n }();\n }.call(this), function () {\n e.HeadDetails = function () {\n function t(t) {\n var e, r, n, s, a, u;\n\n for (this.elements = {}, n = 0, a = t.length; a > n; n++) {\n u = t[n], u.nodeType === Node.ELEMENT_NODE && (s = u.outerHTML, r = null != (e = this.elements)[s] ? e[s] : e[s] = {\n type: i(u),\n tracked: o(u),\n elements: []\n }, r.elements.push(u));\n }\n }\n\n var e, r, n, o, i;\n return t.fromHeadElement = function (t) {\n var e;\n return new this(null != (e = null != t ? t.childNodes : void 0) ? e : []);\n }, t.prototype.hasElementWithKey = function (t) {\n return t in this.elements;\n }, t.prototype.getTrackedElementSignature = function () {\n var t, e;\n return function () {\n var r, n;\n r = this.elements, n = [];\n\n for (t in r) {\n e = r[t].tracked, e && n.push(t);\n }\n\n return n;\n }.call(this).join(\"\");\n }, t.prototype.getScriptElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"script\", t);\n }, t.prototype.getStylesheetElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"stylesheet\", t);\n }, t.prototype.getElementsMatchingTypeNotInDetails = function (t, e) {\n var r, n, o, i, s, a;\n o = this.elements, s = [];\n\n for (n in o) {\n i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\n }\n\n return s;\n }, t.prototype.getProvisionalElements = function () {\n var t, e, r, n, o, i, s;\n r = [], n = this.elements;\n\n for (e in n) {\n o = n[e], s = o.type, i = o.tracked, t = o.elements, null != s || i ? t.length > 1 && r.push.apply(r, t.slice(1)) : r.push.apply(r, t);\n }\n\n return r;\n }, t.prototype.getMetaValue = function (t) {\n var e;\n return null != (e = this.findMetaElementByName(t)) ? e.getAttribute(\"content\") : void 0;\n }, t.prototype.findMetaElementByName = function (t) {\n var r, n, o, i;\n r = void 0, i = this.elements;\n\n for (o in i) {\n n = i[o].elements, e(n[0], t) && (r = n[0]);\n }\n\n return r;\n }, i = function i(t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function o(t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function r(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function n(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function e(t, _e) {\n var r;\n return r = t.tagName.toLowerCase(), \"meta\" === r && t.getAttribute(\"name\") === _e;\n }, t;\n }();\n }.call(this), function () {\n e.Snapshot = function () {\n function t(t, e) {\n this.headDetails = t, this.bodyElement = e;\n }\n\n return t.wrap = function (t) {\n return t instanceof this ? t : \"string\" == typeof t ? this.fromHTMLString(t) : this.fromHTMLElement(t);\n }, t.fromHTMLString = function (t) {\n var e;\n return e = document.createElement(\"html\"), e.innerHTML = t, this.fromHTMLElement(e);\n }, t.fromHTMLElement = function (t) {\n var r, n, o, i;\n return o = t.querySelector(\"head\"), r = null != (i = t.querySelector(\"body\")) ? i : document.createElement(\"body\"), n = e.HeadDetails.fromHeadElement(o), new this(n, r);\n }, t.prototype.clone = function () {\n return new this.constructor(this.headDetails, this.bodyElement.cloneNode(!0));\n }, t.prototype.getRootLocation = function () {\n var t, r;\n return r = null != (t = this.getSetting(\"root\")) ? t : \"/\", new e.Location(r);\n }, t.prototype.getCacheControlValue = function () {\n return this.getSetting(\"cache-control\");\n }, t.prototype.getElementForAnchor = function (t) {\n try {\n return this.bodyElement.querySelector(\"[id='\" + t + \"'], a[name='\" + t + \"']\");\n } catch (e) {}\n }, t.prototype.getPermanentElements = function () {\n return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementById = function (t) {\n return this.bodyElement.querySelector(\"#\" + t + \"[data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementsPresentInSnapshot = function (t) {\n var e, r, n, o, i;\n\n for (o = this.getPermanentElements(), i = [], r = 0, n = o.length; n > r; r++) {\n e = o[r], t.getPermanentElementById(e.id) && i.push(e);\n }\n\n return i;\n }, t.prototype.findFirstAutofocusableElement = function () {\n return this.bodyElement.querySelector(\"[autofocus]\");\n }, t.prototype.hasAnchor = function (t) {\n return null != this.getElementForAnchor(t);\n }, t.prototype.isPreviewable = function () {\n return \"no-preview\" !== this.getCacheControlValue();\n }, t.prototype.isCacheable = function () {\n return \"no-cache\" !== this.getCacheControlValue();\n }, t.prototype.isVisitable = function () {\n return \"reload\" !== this.getSetting(\"visit-control\");\n }, t.prototype.getSetting = function (t) {\n return this.headDetails.getMetaValue(\"turbolinks-\" + t);\n }, t;\n }();\n }.call(this), function () {\n var t = [].slice;\n\n e.Renderer = function () {\n function e() {}\n\n var r;\n return e.render = function () {\n var e, r, n, o;\n return n = arguments[0], r = arguments[1], e = 3 <= arguments.length ? t.call(arguments, 2) : [], o = function (t, e, r) {\n r.prototype = t.prototype;\n var n = new r(),\n o = t.apply(n, e);\n return Object(o) === o ? o : n;\n }(this, e, function () {}), o.delegate = n, o.render(r), o;\n }, e.prototype.renderView = function (t) {\n return this.delegate.viewWillRender(this.newBody), t(), this.delegate.viewRendered(this.newBody);\n }, e.prototype.invalidateView = function () {\n return this.delegate.viewInvalidated();\n }, e.prototype.createScriptElement = function (t) {\n var e;\n return \"false\" === t.getAttribute(\"data-turbolinks-eval\") ? t : (e = document.createElement(\"script\"), e.textContent = t.textContent, e.async = !1, r(e, t), e);\n }, r = function r(t, e) {\n var r, n, o, i, s, a, u;\n\n for (i = e.attributes, a = [], r = 0, n = i.length; n > r; r++) {\n s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n }\n\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function n(t, e) {\n function r() {\n this.constructor = t;\n }\n\n for (var n in e) {\n o.call(e, n) && (t[n] = e[n]);\n }\n\n return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n e.SnapshotRenderer = function (e) {\n function o(t, e, r) {\n this.currentSnapshot = t, this.newSnapshot = e, this.isPreview = r, this.currentHeadDetails = this.currentSnapshot.headDetails, this.newHeadDetails = this.newSnapshot.headDetails, this.currentBody = this.currentSnapshot.bodyElement, this.newBody = this.newSnapshot.bodyElement;\n }\n\n return n(o, e), o.prototype.render = function (t) {\n return this.shouldRender() ? (this.mergeHead(), this.renderView(function (e) {\n return function () {\n return e.replaceBody(), e.isPreview || e.focusFirstAutofocusableElement(), t();\n };\n }(this))) : this.invalidateView();\n }, o.prototype.mergeHead = function () {\n return this.copyNewHeadStylesheetElements(), this.copyNewHeadScriptElements(), this.removeCurrentHeadProvisionalElements(), this.copyNewHeadProvisionalElements();\n }, o.prototype.replaceBody = function () {\n var t;\n return t = this.relocateCurrentBodyPermanentElements(), this.activateNewBodyScriptElements(), this.assignNewBody(), this.replacePlaceholderElementsWithClonedPermanentElements(t);\n }, o.prototype.shouldRender = function () {\n return this.newSnapshot.isVisitable() && this.trackedElementsAreIdentical();\n }, o.prototype.trackedElementsAreIdentical = function () {\n return this.currentHeadDetails.getTrackedElementSignature() === this.newHeadDetails.getTrackedElementSignature();\n }, o.prototype.copyNewHeadStylesheetElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadStylesheetElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadScriptElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadScriptElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\n }\n\n return o;\n }, o.prototype.removeCurrentHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getCurrentHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.removeChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.relocateCurrentBodyPermanentElements = function () {\n var e, n, o, i, s, a, u;\n\n for (a = this.getCurrentBodyPermanentElements(), u = [], e = 0, n = a.length; n > e; e++) {\n i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\n }\n\n return u;\n }, o.prototype.replacePlaceholderElementsWithClonedPermanentElements = function (t) {\n var e, n, o, i, s, a, u;\n\n for (u = [], o = 0, i = t.length; i > o; o++) {\n a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\n }\n\n return u;\n }, o.prototype.activateNewBodyScriptElements = function () {\n var t, e, n, o, i, s;\n\n for (i = this.getNewBodyScriptElements(), s = [], e = 0, o = i.length; o > e; e++) {\n n = i[e], t = this.createScriptElement(n), s.push(r(n, t));\n }\n\n return s;\n }, o.prototype.assignNewBody = function () {\n return document.body = this.newBody;\n }, o.prototype.focusFirstAutofocusableElement = function () {\n var t;\n return null != (t = this.newSnapshot.findFirstAutofocusableElement()) ? t.focus() : void 0;\n }, o.prototype.getNewHeadStylesheetElements = function () {\n return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getNewHeadScriptElements = function () {\n return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getCurrentHeadProvisionalElements = function () {\n return this.currentHeadDetails.getProvisionalElements();\n }, o.prototype.getNewHeadProvisionalElements = function () {\n return this.newHeadDetails.getProvisionalElements();\n }, o.prototype.getCurrentBodyPermanentElements = function () {\n return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot);\n }, o.prototype.getNewBodyScriptElements = function () {\n return this.newBody.querySelectorAll(\"script\");\n }, o;\n }(e.Renderer), t = function t(_t5) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", _t5.id), {\n element: e,\n permanentElement: _t5\n };\n }, r = function r(t, e) {\n var r;\n return (r = t.parentNode) ? r.replaceChild(e, t) : void 0;\n };\n }.call(this), function () {\n var t = function t(_t6, e) {\n function n() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n r.call(e, o) && (_t6[o] = e[o]);\n }\n\n return n.prototype = e.prototype, _t6.prototype = new n(), _t6.__super__ = e.prototype, _t6;\n },\n r = {}.hasOwnProperty;\n\n e.ErrorRenderer = function (e) {\n function r(t) {\n var e;\n e = document.createElement(\"html\"), e.innerHTML = t, this.newHead = e.querySelector(\"head\"), this.newBody = e.querySelector(\"body\");\n }\n\n return t(r, e), r.prototype.render = function (t) {\n return this.renderView(function (e) {\n return function () {\n return e.replaceHeadAndBody(), e.activateBodyScriptElements(), t();\n };\n }(this));\n }, r.prototype.replaceHeadAndBody = function () {\n var t, e;\n return e = document.head, t = document.body, e.parentNode.replaceChild(this.newHead, e), t.parentNode.replaceChild(this.newBody, t);\n }, r.prototype.activateBodyScriptElements = function () {\n var t, e, r, n, o, i;\n\n for (n = this.getScriptElements(), i = [], e = 0, r = n.length; r > e; e++) {\n o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\n }\n\n return i;\n }, r.prototype.getScriptElements = function () {\n return document.documentElement.querySelectorAll(\"script\");\n }, r;\n }(e.Renderer);\n }.call(this), function () {\n e.View = function () {\n function t(t) {\n this.delegate = t, this.htmlElement = document.documentElement;\n }\n\n return t.prototype.getRootLocation = function () {\n return this.getSnapshot().getRootLocation();\n }, t.prototype.getElementForAnchor = function (t) {\n return this.getSnapshot().getElementForAnchor(t);\n }, t.prototype.getSnapshot = function () {\n return e.Snapshot.fromHTMLElement(this.htmlElement);\n }, t.prototype.render = function (t, e) {\n var r, n, o;\n return o = t.snapshot, r = t.error, n = t.isPreview, this.markAsPreview(n), null != o ? this.renderSnapshot(o, n, e) : this.renderError(r, e);\n }, t.prototype.markAsPreview = function (t) {\n return t ? this.htmlElement.setAttribute(\"data-turbolinks-preview\", \"\") : this.htmlElement.removeAttribute(\"data-turbolinks-preview\");\n }, t.prototype.renderSnapshot = function (t, r, n) {\n return e.SnapshotRenderer.render(this.delegate, n, this.getSnapshot(), e.Snapshot.wrap(t), r);\n }, t.prototype.renderError = function (t, r) {\n return e.ErrorRenderer.render(this.delegate, r, t);\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t7, e) {\n return function () {\n return _t7.apply(e, arguments);\n };\n };\n\n e.ScrollManager = function () {\n function r(r) {\n this.delegate = r, this.onScroll = t(this.onScroll, this), this.onScroll = e.throttle(this.onScroll);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"scroll\", this.onScroll, !1), this.onScroll(), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"scroll\", this.onScroll, !1), this.started = !1) : void 0;\n }, r.prototype.scrollToElement = function (t) {\n return t.scrollIntoView();\n }, r.prototype.scrollToPosition = function (t) {\n var e, r;\n return e = t.x, r = t.y, window.scrollTo(e, r);\n }, r.prototype.onScroll = function (t) {\n return this.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n }, r.prototype.updatePosition = function (t) {\n var e;\n return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0;\n }, r;\n }();\n }.call(this), function () {\n e.SnapshotCache = function () {\n function t(t) {\n this.size = t, this.keys = [], this.snapshots = {};\n }\n\n var r;\n return t.prototype.has = function (t) {\n var e;\n return e = r(t), e in this.snapshots;\n }, t.prototype.get = function (t) {\n var e;\n if (this.has(t)) return e = this.read(t), this.touch(t), e;\n }, t.prototype.put = function (t, e) {\n return this.write(t, e), this.touch(t), e;\n }, t.prototype.read = function (t) {\n var e;\n return e = r(t), this.snapshots[e];\n }, t.prototype.write = function (t, e) {\n var n;\n return n = r(t), this.snapshots[n] = e;\n }, t.prototype.touch = function (t) {\n var e, n;\n return n = r(t), e = this.keys.indexOf(n), e > -1 && this.keys.splice(e, 1), this.keys.unshift(n), this.trim();\n }, t.prototype.trim = function () {\n var t, e, r, n, o;\n\n for (n = this.keys.splice(this.size), o = [], t = 0, r = n.length; r > t; t++) {\n e = n[t], o.push(delete this.snapshots[e]);\n }\n\n return o;\n }, r = function r(t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t8, e) {\n return function () {\n return _t8.apply(e, arguments);\n };\n };\n\n e.Visit = function () {\n function r(r, n, o) {\n this.controller = r, this.action = o, this.performScroll = t(this.performScroll, this), this.identifier = e.uuid(), this.location = e.Location.wrap(n), this.adapter = this.controller.adapter, this.state = \"initialized\", this.timingMetrics = {};\n }\n\n var n;\n return r.prototype.start = function () {\n return \"initialized\" === this.state ? (this.recordTimingMetric(\"visitStart\"), this.state = \"started\", this.adapter.visitStarted(this)) : void 0;\n }, r.prototype.cancel = function () {\n var t;\n return \"started\" === this.state ? (null != (t = this.request) && t.cancel(), this.cancelRender(), this.state = \"canceled\") : void 0;\n }, r.prototype.complete = function () {\n var t;\n return \"started\" === this.state ? (this.recordTimingMetric(\"visitEnd\"), this.state = \"completed\", \"function\" == typeof (t = this.adapter).visitCompleted && t.visitCompleted(this), this.controller.visitCompleted(this)) : void 0;\n }, r.prototype.fail = function () {\n var t;\n return \"started\" === this.state ? (this.state = \"failed\", \"function\" == typeof (t = this.adapter).visitFailed ? t.visitFailed(this) : void 0) : void 0;\n }, r.prototype.changeHistory = function () {\n var t, e;\n return this.historyChanged ? void 0 : (t = this.location.isEqualTo(this.referrer) ? \"replace\" : this.action, e = n(t), this.controller[e](this.location, this.restorationIdentifier), this.historyChanged = !0);\n }, r.prototype.issueRequest = function () {\n return this.shouldIssueRequest() && null == this.request ? (this.progress = 0, this.request = new e.HttpRequest(this, this.location, this.referrer), this.request.send()) : void 0;\n }, r.prototype.getCachedSnapshot = function () {\n var t;\n return !(t = this.controller.getCachedSnapshotForLocation(this.location)) || null != this.location.anchor && !t.hasAnchor(this.location.anchor) || \"restore\" !== this.action && !t.isPreviewable() ? void 0 : t;\n }, r.prototype.hasCachedSnapshot = function () {\n return null != this.getCachedSnapshot();\n }, r.prototype.loadCachedSnapshot = function () {\n var t, e;\n return (e = this.getCachedSnapshot()) ? (t = this.shouldIssueRequest(), this.render(function () {\n var r;\n return this.cacheSnapshot(), this.controller.render({\n snapshot: e,\n isPreview: t\n }, this.performScroll), \"function\" == typeof (r = this.adapter).visitRendered && r.visitRendered(this), t ? void 0 : this.complete();\n })) : void 0;\n }, r.prototype.loadResponse = function () {\n return null != this.response ? this.render(function () {\n var t, e;\n return this.cacheSnapshot(), this.request.failed ? (this.controller.render({\n error: this.response\n }, this.performScroll), \"function\" == typeof (t = this.adapter).visitRendered && t.visitRendered(this), this.fail()) : (this.controller.render({\n snapshot: this.response\n }, this.performScroll), \"function\" == typeof (e = this.adapter).visitRendered && e.visitRendered(this), this.complete());\n }) : void 0;\n }, r.prototype.followRedirect = function () {\n return this.redirectedToLocation && !this.followedRedirect ? (this.location = this.redirectedToLocation, this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation, this.restorationIdentifier), this.followedRedirect = !0) : void 0;\n }, r.prototype.requestStarted = function () {\n var t;\n return this.recordTimingMetric(\"requestStart\"), \"function\" == typeof (t = this.adapter).visitRequestStarted ? t.visitRequestStarted(this) : void 0;\n }, r.prototype.requestProgressed = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.adapter).visitRequestProgressed ? e.visitRequestProgressed(this) : void 0;\n }, r.prototype.requestCompletedWithResponse = function (t, r) {\n return this.response = t, null != r && (this.redirectedToLocation = e.Location.wrap(r)), this.adapter.visitRequestCompleted(this);\n }, r.prototype.requestFailedWithStatusCode = function (t, e) {\n return this.response = e, this.adapter.visitRequestFailedWithStatusCode(this, t);\n }, r.prototype.requestFinished = function () {\n var t;\n return this.recordTimingMetric(\"requestEnd\"), \"function\" == typeof (t = this.adapter).visitRequestFinished ? t.visitRequestFinished(this) : void 0;\n }, r.prototype.performScroll = function () {\n return this.scrolled ? void 0 : (\"restore\" === this.action ? this.scrollToRestoredPosition() || this.scrollToTop() : this.scrollToAnchor() || this.scrollToTop(), this.scrolled = !0);\n }, r.prototype.scrollToRestoredPosition = function () {\n var t, e;\n return t = null != (e = this.restorationData) ? e.scrollPosition : void 0, null != t ? (this.controller.scrollToPosition(t), !0) : void 0;\n }, r.prototype.scrollToAnchor = function () {\n return null != this.location.anchor ? (this.controller.scrollToAnchor(this.location.anchor), !0) : void 0;\n }, r.prototype.scrollToTop = function () {\n return this.controller.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.recordTimingMetric = function (t) {\n var e;\n return null != (e = this.timingMetrics)[t] ? e[t] : e[t] = new Date().getTime();\n }, r.prototype.getTimingMetrics = function () {\n return e.copyObject(this.timingMetrics);\n }, n = function n(t) {\n switch (t) {\n case \"replace\":\n return \"replaceHistoryWithLocationAndRestorationIdentifier\";\n\n case \"advance\":\n case \"restore\":\n return \"pushHistoryWithLocationAndRestorationIdentifier\";\n }\n }, r.prototype.shouldIssueRequest = function () {\n return \"restore\" === this.action ? !this.hasCachedSnapshot() : !0;\n }, r.prototype.cacheSnapshot = function () {\n return this.snapshotCached ? void 0 : (this.controller.cacheSnapshot(), this.snapshotCached = !0);\n }, r.prototype.render = function (t) {\n return this.cancelRender(), this.frame = requestAnimationFrame(function (e) {\n return function () {\n return e.frame = null, t.call(e);\n };\n }(this));\n }, r.prototype.cancelRender = function () {\n return this.frame ? cancelAnimationFrame(this.frame) : void 0;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t9, e) {\n return function () {\n return _t9.apply(e, arguments);\n };\n };\n\n e.Controller = function () {\n function r() {\n this.clickBubbled = t(this.clickBubbled, this), this.clickCaptured = t(this.clickCaptured, this), this.pageLoaded = t(this.pageLoaded, this), this.history = new e.History(this), this.view = new e.View(this), this.scrollManager = new e.ScrollManager(this), this.restorationData = {}, this.clearCache(), this.setProgressBarDelay(500);\n }\n\n return r.prototype.start = function () {\n return e.supported && !this.started ? (addEventListener(\"click\", this.clickCaptured, !0), addEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.start(), this.startHistory(), this.started = !0, this.enabled = !0) : void 0;\n }, r.prototype.disable = function () {\n return this.enabled = !1;\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"click\", this.clickCaptured, !0), removeEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.stop(), this.stopHistory(), this.started = !1) : void 0;\n }, r.prototype.clearCache = function () {\n return this.cache = new e.SnapshotCache(10);\n }, r.prototype.visit = function (t, r) {\n var n, o;\n return null == r && (r = {}), t = e.Location.wrap(t), this.applicationAllowsVisitingLocation(t) ? this.locationIsVisitable(t) ? (n = null != (o = r.action) ? o : \"advance\", this.adapter.visitProposedToLocationWithAction(t, n)) : window.location = t : void 0;\n }, r.prototype.startVisitToLocationWithAction = function (t, r, n) {\n var o;\n return e.supported ? (o = this.getRestorationDataForIdentifier(n), this.startVisit(t, r, {\n restorationData: o\n })) : window.location = t;\n }, r.prototype.setProgressBarDelay = function (t) {\n return this.progressBarDelay = t;\n }, r.prototype.startHistory = function () {\n return this.location = e.Location.wrap(window.location), this.restorationIdentifier = e.uuid(), this.history.start(), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.stopHistory = function () {\n return this.history.stop();\n }, r.prototype.pushHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.push(this.location, this.restorationIdentifier);\n }, r.prototype.replaceHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.historyPoppedToLocationWithRestorationIdentifier = function (t, r) {\n var n;\n return this.restorationIdentifier = r, this.enabled ? (n = this.getRestorationDataForIdentifier(this.restorationIdentifier), this.startVisit(t, \"restore\", {\n restorationIdentifier: this.restorationIdentifier,\n restorationData: n,\n historyChanged: !0\n }), this.location = e.Location.wrap(t)) : this.adapter.pageInvalidated();\n }, r.prototype.getCachedSnapshotForLocation = function (t) {\n var e;\n return null != (e = this.cache.get(t)) ? e.clone() : void 0;\n }, r.prototype.shouldCacheSnapshot = function () {\n return this.view.getSnapshot().isCacheable();\n }, r.prototype.cacheSnapshot = function () {\n var t, r;\n return this.shouldCacheSnapshot() ? (this.notifyApplicationBeforeCachingSnapshot(), r = this.view.getSnapshot(), t = this.lastRenderedLocation, e.defer(function (e) {\n return function () {\n return e.cache.put(t, r.clone());\n };\n }(this))) : void 0;\n }, r.prototype.scrollToAnchor = function (t) {\n var e;\n return (e = this.view.getElementForAnchor(t)) ? this.scrollToElement(e) : this.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.scrollToElement = function (t) {\n return this.scrollManager.scrollToElement(t);\n }, r.prototype.scrollToPosition = function (t) {\n return this.scrollManager.scrollToPosition(t);\n }, r.prototype.scrollPositionChanged = function (t) {\n var e;\n return e = this.getCurrentRestorationData(), e.scrollPosition = t;\n }, r.prototype.render = function (t, e) {\n return this.view.render(t, e);\n }, r.prototype.viewInvalidated = function () {\n return this.adapter.pageInvalidated();\n }, r.prototype.viewWillRender = function (t) {\n return this.notifyApplicationBeforeRender(t);\n }, r.prototype.viewRendered = function () {\n return this.lastRenderedLocation = this.currentVisit.location, this.notifyApplicationAfterRender();\n }, r.prototype.pageLoaded = function () {\n return this.lastRenderedLocation = this.location, this.notifyApplicationAfterPageLoad();\n }, r.prototype.clickCaptured = function () {\n return removeEventListener(\"click\", this.clickBubbled, !1), addEventListener(\"click\", this.clickBubbled, !1);\n }, r.prototype.clickBubbled = function (t) {\n var e, r, n;\n return this.enabled && this.clickEventIsSignificant(t) && (r = this.getVisitableLinkForNode(t.target)) && (n = this.getVisitableLocationForLink(r)) && this.applicationAllowsFollowingLinkToLocation(r, n) ? (t.preventDefault(), e = this.getActionForLink(r), this.visit(n, {\n action: e\n })) : void 0;\n }, r.prototype.applicationAllowsFollowingLinkToLocation = function (t, e) {\n var r;\n return r = this.notifyApplicationAfterClickingLinkToLocation(t, e), !r.defaultPrevented;\n }, r.prototype.applicationAllowsVisitingLocation = function (t) {\n var e;\n return e = this.notifyApplicationBeforeVisitingLocation(t), !e.defaultPrevented;\n }, r.prototype.notifyApplicationAfterClickingLinkToLocation = function (t, r) {\n return e.dispatch(\"turbolinks:click\", {\n target: t,\n data: {\n url: r.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationBeforeVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:before-visit\", {\n data: {\n url: t.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationAfterVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:visit\", {\n data: {\n url: t.absoluteURL\n }\n });\n }, r.prototype.notifyApplicationBeforeCachingSnapshot = function () {\n return e.dispatch(\"turbolinks:before-cache\");\n }, r.prototype.notifyApplicationBeforeRender = function (t) {\n return e.dispatch(\"turbolinks:before-render\", {\n data: {\n newBody: t\n }\n });\n }, r.prototype.notifyApplicationAfterRender = function () {\n return e.dispatch(\"turbolinks:render\");\n }, r.prototype.notifyApplicationAfterPageLoad = function (t) {\n return null == t && (t = {}), e.dispatch(\"turbolinks:load\", {\n data: {\n url: this.location.absoluteURL,\n timing: t\n }\n });\n }, r.prototype.startVisit = function (t, e, r) {\n var n;\n return null != (n = this.currentVisit) && n.cancel(), this.currentVisit = this.createVisit(t, e, r), this.currentVisit.start(), this.notifyApplicationAfterVisitingLocation(t);\n }, r.prototype.createVisit = function (t, r, n) {\n var o, i, s, a, u;\n return i = null != n ? n : {}, a = i.restorationIdentifier, s = i.restorationData, o = i.historyChanged, u = new e.Visit(this, t, r), u.restorationIdentifier = null != a ? a : e.uuid(), u.restorationData = e.copyObject(s), u.historyChanged = o, u.referrer = this.location, u;\n }, r.prototype.visitCompleted = function (t) {\n return this.notifyApplicationAfterPageLoad(t.getTimingMetrics());\n }, r.prototype.clickEventIsSignificant = function (t) {\n return !(t.defaultPrevented || t.target.isContentEditable || t.which > 1 || t.altKey || t.ctrlKey || t.metaKey || t.shiftKey);\n }, r.prototype.getVisitableLinkForNode = function (t) {\n return this.nodeIsVisitable(t) ? e.closest(t, \"a[href]:not([target]):not([download])\") : void 0;\n }, r.prototype.getVisitableLocationForLink = function (t) {\n var r;\n return r = new e.Location(t.getAttribute(\"href\")), this.locationIsVisitable(r) ? r : void 0;\n }, r.prototype.getActionForLink = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-turbolinks-action\")) ? e : \"advance\";\n }, r.prototype.nodeIsVisitable = function (t) {\n var r;\n return (r = e.closest(t, \"[data-turbolinks]\")) ? \"false\" !== r.getAttribute(\"data-turbolinks\") : !0;\n }, r.prototype.locationIsVisitable = function (t) {\n return t.isPrefixedBy(this.view.getRootLocation()) && t.isHTML();\n }, r.prototype.getCurrentRestorationData = function () {\n return this.getRestorationDataForIdentifier(this.restorationIdentifier);\n }, r.prototype.getRestorationDataForIdentifier = function (t) {\n var e;\n return null != (e = this.restorationData)[t] ? e[t] : e[t] = {};\n }, r;\n }();\n }.call(this), function () {\n !function () {\n var t, e;\n if ((t = e = document.currentScript) && !e.hasAttribute(\"data-turbolinks-suppress-warning\")) for (; t = t.parentNode;) {\n if (t === document.body) return console.warn(\"You are loading Turbolinks from a