{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@hotwired/stimulus/dist/stimulus.js","webpack:///./app/javascript/controllers/application.js","webpack:///./app/javascript/controllers/banner_controller.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/shared/dom.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/images/index.js","webpack:///./node_modules/swiper/core/images/loadImage.js","webpack:///./node_modules/swiper/core/images/preloadImages.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.js","webpack:///./node_modules/swiper/shared/classes-to-selector.js","webpack:///./node_modules/swiper/modules/pagination/pagination.js","webpack:///./node_modules/swiper/modules/autoplay/autoplay.js","webpack:///./app/javascript/controllers/carousel_controller.js","webpack:///./app/javascript/controllers/navigation_controller.js","webpack:///./node_modules/stimulus-rails-nested-form/dist/stimulus-rails-nested-form.es.js","webpack:///./node_modules/@rails/request.js/src/fetch_response.js","webpack:///./node_modules/@rails/request.js/src/request_interceptor.js","webpack:///./node_modules/@rails/request.js/src/lib/utils.js","webpack:///./node_modules/@rails/request.js/src/fetch_request.js","webpack:///./app/javascript/controllers/registration_controller.js","webpack:///./app/javascript/controllers/state_select_controller.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","_typeof","obj","iterator","constructor","asyncGeneratorStep","gen","_next","_throw","arg","info","done","then","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_unsupportedIterableToArray","TypeError","_nonIterableSpread","_inherits","subClass","superClass","writable","configurable","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","arguments","apply","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","getPrototypeOf","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","_iterableToArrayLimit","_nonIterableRest","_defineProperty","_createForOfIteratorHelper","allowArrayLike","it","F","_e2","f","normalCompletion","didErr","step","_e3","return","minLen","toString","test","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","EventListener","eventTarget","eventName","eventOptions","unorderedBindings","Set","addEventListener","removeEventListener","binding","add","delete","_step","extendedEvent","_stopImmediatePropagation","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_iterator","bindings","handleEvent","sort","left","right","leftIndex","index","rightIndex","Dispatcher","application","eventListenerMaps","Map","started","eventListeners","forEach","eventListener","connect","disconnect","values","reduce","listeners","map","concat","fetchEventListenerForBinding","bindingConnected","bindingDisconnected","detail","handleError","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","set","parts","keys","join","descriptorPattern","parseEventTarget","eventTargetName","camelize","replace","_","char","toUpperCase","capitalize","charAt","dasherize","toLowerCase","Action","element","tagName","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","eventNameSuffix","Element","getParamsFromEventTargetAttributes","params","pattern","RegExp","attributes","_ref","match","JSON","parse","o_O","typecast","token","descriptorString","content","matches","trim","split","options","getAttribute","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","currentTarget","actionEvent","logDebugActivity","contains","scope","containsElement","ElementObserver","delegate","_this","mutationObserverInit","childList","subtree","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","refresh","callback","takeRecords","matchElementsInTree","_Array$from","has","removeElement","_i2","_Array$from2","_element","addElement","_step2","_iterator2","mutation","processMutation","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","_i3","_Array$from3","elementFromNode","processTree","_i4","_Array$from4","elementIsActive","tree","processor","_step3","_iterator3","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","start","pause","stop","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","_this2","stringMap","attributeOldValue","_step4","_iterator4","knownAttributeNames","refreshAttribute","_step5","_iterator5","oldValue","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","_oldValue","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","_add","fetch","del","size","prune","Multimap","valuesByKey","some","filter","_ref2","_ref3","_ref4","_ref5","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","_this$refreshTokensFo2","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","getValuesForKey","tokens","_this4","tokenMatched","_this5","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","findIndex","_ref6","_ref7","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","_this6","clear","forToken","connectAction","disconnectAction","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","hasValue","invokeChangedCallback","writer","defaultValue","valueDescriptorNameMap","_step6","_iterator6","valueDescriptors","_ref9","rawValue","rawOldValue","changedMethodName","changedMethod","reader","_this7","descriptors","hasMethodName","TargetObserver","targetsByName","disconnectAllTargets","_ref10","connectTarget","_ref11","disconnectTarget","_a","_this8","targetConnected","_this9","targetDisconnected","_step7","_iterator7","_step8","_iterator8","Context","_this10","functionName","controllerConstructor","bindingObserver","dispatcher","valueObserver","targetObserver","initialize","parentElement","invokeControllerMethod","_len","args","_key","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","reverse","bless","properties","shadowConstructor","extend","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","b","a","_constructor","_super2","Module","blessDefinition","contextsByScope","connectedContexts","fetchContextForScope","ClassMap","getDataKey","getAll","getAttributeNameForKey","DataMap","removeAttribute","Guide","logger","warnedKeysByObject","warnedKeys","warn","attributeValueContainsToken","TargetSet","targetName","find","_this11","_len2","targetNames","_key2","findTarget","findLegacyTarget","_this12","_len3","_key3","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","targetAttributeForScope","getLegacySelectorForTargetName","deprecate","_this13","targetDescriptor","targetAttribute","revisedAttributeName","guide","Scope","_this14","classes","closest","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","unloadIdentifier","connectModule","disconnectModule","connectContextForScope","disconnectContextForScope","defaultSchema","Application","_this15","documentElement","debug","logFormattedMessage","router","fn","_start","mark","_callee","wrap","_context","prev","readyState","shouldLoad","load","_this16","_len4","rest","_key4","definitions","loadDefinition","_this17","_len5","_key5","identifiers","getContextForElementAndIdentifier","groupCollapsed","log","groupEnd","parseValueDefinitionPair","_ref15","_ref16","typeDefinition","typeFromObject","typeObject","parseValueTypeConstant","defaultValueType","parseValueTypeDefault","default","parseValueTypeObject","typeFromDefaultValue","typeFromConstant","parseValueTypeDefinition","constant","defaultValuesByType","defaultValueForDefinition","hasCustomDefaultValue","readers","writers","valueDescriptorForTokenAndTypeDefinition","Number","String","array","boolean","number","string","writeJSON","stringify","Controller","_ref17","_ref17$target","_ref17$detail","_ref17$prefix","prefix","_ref17$bubbles","bubbles","_ref17$cancelable","cancelable","CustomEvent","dispatchEvent","blessings","classDefinition","_ref12","getAttributeName","targetDefinition","_ref13","findAll","valueDefinitionPairs","propertyDescriptorMap","_this18","valueDefinitionPair","valueDescriptor","_ref14","read","write","propertiesForValueDefinitionPair","Stimulus","controllers","teardown","Turbo","setProgressBarDelay","hideNotificationBanner","localStorage","setItem","notificationBanner","getElementById","$","fadeOut","style","display","showNotificationBanner","isCookieAccepted","getItem","isObject","ssrDocument","body","activeElement","blur","nodeName","querySelector","createEvent","initEvent","children","childNodes","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","getComputedStyle","getPropertyValue","Image","Date","screen","matchMedia","requestAnimationFrame","cancelAnimationFrame","id","getWindow","win","_wrapNativeSuper","Class","_cache","Function","indexOf","Wrapper","_construct","Parent","Dom7","_Array","_super","items","proto","arrayFlat","res","el","arrayFilter","_html","toCreate","tempParent","innerHTML","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","_len14","_key14","trigger","on","Methods","addClass","classNames","_el$classList","classList","removeClass","_el$classList2","remove","hasClass","className","toggleClass","toggle","attr","attrs","attrName","removeAttr","transform","transition","duration","transitionDuration","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","j","events","_event","dom7LiveListeners","proxyListener","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","splice","_len9","_key9","evt","dataIndex","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","parseFloat","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","_scrollTop","scrollY","scrollTop","_scrollLeft","scrollX","scrollLeft","top","css","_prop","each","html","text","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","prepend","insertBefore","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","foundElements","found","removeChild","deviceCached","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","HTMLElement","to","noExtend","nextSource","keysArray","nextIndex","nextKey","desc","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","time","swiper","targetPosition","side","startPosition","translate","startTime","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","getSupport","smoothScroll","touch","DocumentTouch","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","isSafari","isWebView","calcBrowser","priority","eventsListeners","destroyed","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","eventsArray","transitionEmit","runCallbacks","direction","activeIndex","previousIndex","slideTo","internal","initial","indexAsNumber","parseInt","isFinite","slideIndex","snapGrid","slidesGrid","rtl","rtlTranslate","enabled","animating","preventInteractionOnTransition","skip","slidesPerGroupSkip","snapIndex","floor","slidesPerGroup","initialSlide","updateProgress","normalizeSlideIndex","normalizedTranslate","normalizedGrid","normalizedGridNext","initialized","allowSlideNext","minTranslate","allowSlidePrev","maxTranslate","updateActiveIndex","autoHeight","updateAutoHeight","updateSlidesClasses","effect","setTranslate","transitionStart","cssMode","isH","isHorizontal","isVirtual","virtual","_immediateVirtual","_swiperImmediateVirtual","_wrapperEl$scrollTo","setTransition","onSlideToWrapperTransitionEnd","$wrapperEl","slideToLoop","newIndex","loop","loopedSlides","slideNext","perGroup","slidesPerView","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","isEnd","slidePrev","normalize","val","abs","prevSnapIndex","normalizedSnapGrid","prevSnap","snap","prevIndex","isBeginning","lastIndex","slides","slideReset","slideToClosest","threshold","currentSnap","slideToClickedSlide","realIndex","slideToIndex","clickedIndex","clickedSlide","centeredSlides","slideClass","slideDuplicateClass","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchStart","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","diffX","diffY","sqrt","pow","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","watchSlidesProgress","onTouchMove","currentPos","touchEndTime","timeDiff","pathTree","composedPath","updateClickedSlide","lastClickTime","onTouchEnd","stopIndex","groupSize","slidesSizesGrid","_increment","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","autoplay","running","paused","run","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","onScroll","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","passive","move","end","cancel","onClick","updateOnWindowResize","isGridEnabled","grid","rows","init","resizeObserver","createElements","url","setWrapperSize","virtualTranslate","breakpointsBase","spaceBetween","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopFillGroupWithBlank","maxBackfaceHiddenSlides","containerModifierClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","update","$el","clientWidth","clientHeight","isNaN","getDirectionLabel","getDirectionPropertyValue","label","swiperSize","wrongRTL","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","slideSize","gridEnabled","initSlides","shouldResetSlideSize","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","_allSlidesSize","allSlidesOffset","addToSnapGrid","addToSlidesGrid","v","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","activeSlides","newHeight","getSlideByIndex","visibleSlides","ceil","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","wasBeginning","wasEnd","activeSlide","nextSlide","prevSlide","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","slideFound","byController","x","y","translateTo","translateBounds","newTranslate","onTranslateToWrapperTransitionEnd","loopCreate","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","attachEvents","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","_points$i","wasLocked","lastSlideIndex","lastSlideRightEdge","addClasses","entries","resultClasses","suffixes","item","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","_swiper$modules","browser","__modules__","mod","extendParams","desktop","swiperParams","defaults","passedParams","velocity","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","newDefaults","installModule","cls","slideEl","updates","getSlideClasses","view","exact","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","getWrapper","wrapper","mount","deleteInstance","cleanStyles","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","unobserve","observers","attach","WebkitMutationObserver","observerUpdate","characterData","observeParents","observeSlideChildren","containerParents","createElementIfNotDefined","checkProps","classesToSelector","Pagination","bulletSize","pfx","pagination","bulletElement","clickable","hideOnClick","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","horizontalClass","verticalClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","position","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","destroy","targetEl","isHidden","Autoplay","$activeSlideEl","proceed","autoplayResult","reverseDirection","stopOnLastSlide","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","pauseOnMouseEnter","isCustom","defaultOptions","optionsValue","title","getElementsByClassName","menu","toggleNav","constructor2","_ref6$target","_ref6$detail","_ref6$prefix","_ref6$bubbles","_ref6$cancelable","src_default","_Controller","templateTarget","targetTarget","insertAdjacentHTML","wrapperSelectorValue","dataset","newRecord","wrapperSelector","FetchResponse","response","_renderTurboStream","status","redirected","ok","statusCode","headers","contentType","responseJson","json","responseText","isTurboStream","t0","t1","sent","renderStreamMessage","abrupt","RequestInterceptor","interceptor","metaContent","mergeEntries","searchParams","File","FetchRequest","originalUrl","_perform","requestInterceptor","fetchOptions","t2","unauthenticated","authenticationURL","renderTurboStream","additionalHeaders","formattedBody","signal","credentials","redirect","compact","csrfToken","Accept","accept","cookies","cookie","encodeURIComponent","startsWith","decodeURIComponent","getCookie","FormData","responseKind","originalQuery","URLSearchParams","requestQuery","query","bodyIsAString","withProgress","handleChange","syncSpots","makeRequest","urlValue","form","perform","bookingSpots","maxSpotIndex","spotIndex","selectedIndex","btn","nestedForms","NestedForm","param","country","register","BannerController","CarouselController","NavigationController","RegistrationController","StateSelectController","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","awrap","async","pop","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","_templateObject","_templateObject2","_get","_superPropBase","_taggedTemplateLiteral","strings","raw","freeze","_asyncToGenerator","customElements","polyfillWrapFlushCallback","BuiltInHTMLElement","wrapperForTheName","raise","errorConstructor","requestSubmit","submitter","DOMException","validateSubmitter","click","hidden","HTMLFormElement","FrameLoadingStyle","submittersByForm","clickCaptured","candidate","Event","vendor","SubmitEvent","FrameElement","_HTMLElement","loaded","delegateConstructor","loadingStyleChanged","sourceURLChanged","disabledChanged","lazy","eager","frameLoadingStyleFromString","isLoading","ownerDocument","isPreview","_b","expandURL","locatable","URL","baseURI","getAnchor","anchorMatch","getAction","getExtension","getPathComponents","getLastPathComponent","isPrefixedBy","baseURL","endsWith","getPrefix","locationIsVisitable","rootLocation","getRequestURL","anchor","toCacheKey","FetchMethod","succeeded","header","clone","isHTML","dispatch","nextAnimationFrame","parseHTMLDocument","DOMParser","parseFromString","unindent","lines","interpolate","indent","line","uuid","random","markAsBusy","_elements","localName","clearBusyState","_elements2","FormSubmissionState","FormEnctype","abortController","AbortController","resolveRequestPromise","defaultHeaders","_allowRequestToBeIntercepted","_receive","abort","prepareHeadersForRequest","allowRequestToBeIntercepted","requestStarted","receive","requestErrored","requestFinished","_callee2","fetchResponse","_context2","defaultPrevented","requestPreventedHandlingResponse","requestSucceededWithResponse","requestFailedWithResponse","_x","isIdempotent","abortSignal","referrer","_callee3","requestInterception","_context3","resume","_x2","AppearanceObserver","_this3","intersect","lastEntry","isIntersecting","elementAppearedInViewport","intersectionObserver","IntersectionObserver","StreamMessage","templateElement","fragment","createDocumentFragment","foreignElements","templateChildren","streamElements","FormSubmission","formElement","mustRedirect","formData","buildFormData","mergeFormDataEntries","fetchRequest","post","put","patch","fetchMethodFromString","formElementAction","enctype","urlEncoded","stringFormData","encoding","multipart","plain","formEnctypeFromString","confirmationMessage","_callee4","_FormSubmissionState","requesting","_context4","needsConfirmation","confirmMethod","_FormSubmissionState2","stopping","stopped","cookieName","getCookieValue","getMetaContent","waiting","formSubmission","formSubmissionStarted","success","clientError","serverError","formSubmissionFailedWithResponse","requestMustRedirect","responseSucceededWithoutRedirect","formSubmissionErrored","receiving","formSubmissionSucceededWithResponse","formSubmissionFinished","confirm","Snapshot","getElementForAnchor","snapshot","permanentElementMap","permanentElements","currentPermanentElement","newPermanentElement","getPermanentElementById","FormInterceptor","submitBubbled","shouldInterceptFormSubmission","formSubmissionIntercepted","View","resolveRenderPromise","resolveInterceptionPromise","_renderSnapshot","_render","scrollToElement","focusElement","scrollToPosition","scrollToAnchor","scrollIntoView","focus","scrollRoot","_callee5","renderer","shouldRender","renderInterception","_context5","newSnapshot","renderPromise","prepareToRenderSnapshot","allowsImmediateRender","renderSnapshot","viewRenderedSnapshot","finishRenderingSnapshot","invalidate","_x3","viewInvalidated","markAsPreview","prepareToRender","_callee6","_context6","_x4","finishRendering","FrameView","_View","LinkInterceptor","clickBubbled","respondsToEventTarget","clickEvent","linkClicked","shouldInterceptLinkClick","linkClickIntercepted","willVisit","Bardo","replaceNewPermanentElementWithPlaceholder","replaceCurrentPermanentElementWithClone","replacePlaceholderWithPermanentElement","permanentElement","placeholder","createPlaceholderForPermanentElement","replaceWith","getPlaceholderById","placeholders","bardo","enter","leave","Renderer","currentSnapshot","willRender","resolvingFunctions","createdScriptElement","cspNonce","nonce","destinationElement","sourceElement","_arr2","copyElementAttributes","preservingPermanentElements","connectedSnapshot","firstAutofocusableElement","elementIsFocusable","getPermanentElementMapForSnapshot","_Renderer","FrameRenderer","_render2","_super3","_callee7","_context7","loadFrameElement","scrollFrameIntoView","focusFirstAutofocusableElement","activateScriptElements","destinationRange","createRange","selectNodeContents","currentElement","deleteContents","frameElement","newElement","sourceRange","extractContents","autoscroll","firstElementChild","block","newScriptElements","inertScriptElement","activatedScriptElement","createScriptElement","ProgressBar","hiding","visible","trickle","setValue","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","installStylesheetElement","installProgressElement","startTrickling","fadeProgressElement","uninstallProgressElement","stopTrickling","opacity","animationDuration","trickleInterval","setInterval","clearInterval","defaultCSS","HeadSnapshot","_Snapshot","_super4","detailsByOuterHTML","elementIsNoscript","elementWithoutNonce","outerHTML","details","elementType","tracked","elementIsTracked","getElementsMatchingTypeNotInSnapshot","matchedType","_this15$detailsByOute","findMetaElementByName","elementIsMetaElementWithName","elementIsScript","elementIsStylesheet","TimingMetric","VisitState","PageSnapshot","_Snapshot2","_super5","headSnapshot","getSetting","cacheControlValue","getMetaValue","fromDocument","SystemStatusCode","historyChanged","visitCachedSnapshot","Visit","restorationIdentifier","timingMetrics","followedRedirect","scrolled","snapshotCached","_Object$assign2","snapshotHTML","isSamePage","locationWithActionIsSamePage","_render3","_requestFailedWithResponse","_requestSucceededWithResponse","adapter","getRestorationDataForIdentifier","recordTimingMetric","visitStart","visitStarted","cancelRender","canceled","visitEnd","completed","visitCompleted","followRedirect","failed","visitFailed","actionForHistory","getHistoryMethodForAction","hasPreloadedResponse","simulateRequest","shouldIssueRequest","startRequest","recordResponse","finishRequest","requestStart","visitRequestStarted","isSuccessful","visitRequestCompleted","visitRequestFailedWithStatusCode","requestEnd","visitRequestFinished","_this$response","responseHTML","_callee8","_context8","cacheSnapshot","renderPage","fromHTMLString","visitRendered","renderError","fail","getCachedSnapshotForLocation","getPreloadedSnapshot","hasAnchor","isPreviewable","getCachedSnapshot","_this19","_callee9","_context9","redirectedToLocation","visitProposedToLocation","_this20","_callee10","_context10","_callee11","_context11","contentTypeMismatch","_x5","_x6","_callee12","_context12","_x7","_x8","networkFailure","scrollToRestoredPosition","scrollToTop","visitScrolledToSamePageLocation","lastRenderedLocation","scrollPosition","restorationData","metric","hasCachedSnapshot","_this21","_callee13","_this22","_context13","frame","performScroll","_x9","BrowserAdapter","session","_this23","progressBar","showProgressBar","show","startVisit","visit","loadCachedSnapshot","issueRequest","changeHistory","goToSamePageAnchor","showVisitProgressBarAfterDelay","loadResponse","timeoutFailure","reload","hideVisitProgressBar","showFormProgressBarAfterDelay","hideFormProgressBar","visitProgressBarTimeout","progressBarDelay","hide","formProgressBarTimeout","CacheObserver","removeStaleElements","FormSubmitObserver","_this24","submitCaptured","willSubmitForm","formSubmitted","FrameRedirector","linkInterceptor","formInterceptor","shouldRedirect","findFrameElement","shouldSubmit","meta","History","_this25","pageLoaded","onPopState","shouldHandlePopState","turbo","historyPoppedToLocationWithRestorationIdentifier","onPageLoad","_callee14","_context14","_x10","additionalData","previousScrollRestoration","scrollRestoration","pageIsLoaded","LinkClickObserver","_this26","clickEventIsSignificant","link","findLinkFromClickTarget","_location","getLocationForLink","willFollowLinkToLocation","followedLinkToLocation","altKey","ctrlKey","metaKey","shiftKey","isAction","PageStage","Navigator","_formSubmissionFailedWithResponse","_formSubmissionSucceededWithResponse","allowsVisitingLocationWithAction","currentVisit","_callee15","visitOptions","_context15","clearSnapshotCache","getActionForFormSubmission","proposeVisit","_x11","_x12","_callee16","_context16","_x13","_x14","currentAnchor","isRestorationToTop","oldURL","newURL","PageObserver","_this27","stage","interpretReadyState","pageIsInteractive","pageIsComplete","pageWillUnload","loading","interactive","pageBecameInteractive","ScrollObserver","_this28","updatePosition","pageXOffset","pageYOffset","scrollPositionChanged","StreamObserver","_this29","sources","inspectFetchResponse","fetchResponseFromEvent","fetchResponseIsStream","receiveMessageResponse","receiveMessageEvent","receiveMessageHTML","_receiveMessageResponse","source","streamSourceIsConnected","_callee17","_context17","_x15","receivedMessageFromStream","_Renderer2","ErrorRenderer","_render4","_super6","_callee18","_context18","replaceHeadAndBody","_document","replaceChild","newHead","scriptElements","replaceableElement","_Renderer3","PageRenderer","_render5","_super7","isVisitable","trackedElementsAreIdentical","mergeHead","_callee19","_context19","replaceBody","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","_this30","activateNewBody","assignNewBody","currentHeadSnapshot","trackedElementSignature","newHeadSnapshot","newHeadStylesheetElements","_step9","_iterator9","newHeadScriptElements","_step10","_iterator10","currentHeadProvisionalElements","_step11","_iterator11","newHeadProvisionalElements","adoptNode","activateNewBodyScriptElements","_step12","_iterator12","newBodyScriptElements","HTMLBodyElement","getStylesheetElementsNotInSnapshot","getScriptElementsNotInSnapshot","provisionalElements","SnapshotCache","snapshots","_step13","_iterator13","_View2","PageView","_cacheSnapshot","_super8","_this31","snapshotCache","_callee20","_location2","cachedSnapshot","_context20","shouldCacheSnapshot","viewWillCacheSnapshot","fromElement","isCacheable","Session","pageObserver","cacheObserver","linkClickObserver","formSubmitObserver","scrollObserver","streamObserver","frameRedirector","drive","connectStreamSource","disconnectStreamSource","pageInvalidated","updateRestorationData","elementDriveEnabled","applicationAllowsFollowingLinkToLocation","getActionForLink","convertLinkWithMethodClickToFormSubmission","linkMethod","getTargetFrameForLink","applicationAllowsVisitingLocation","extendURLWithDeprecatedProperties","silent","notifyApplicationAfterVisitingLocation","notifyApplicationAfterPageLoad","getTimingMetrics","notifyApplicationAfterVisitingSamePageLocation","submitForm","assumeControlOfScrollRestoration","relinquishControlOfScrollRestoration","notifyApplicationBeforeCachingSnapshot","_ref18","notifyApplicationBeforeRender","notifyApplicationAfterRender","notifyApplicationAfterFrameLoad","notifyApplicationAfterFrameRender","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","newBody","timing","HashChangeEvent","container","deprecatedLocationPropertyDescriptors","absoluteURL","navigator$1","registerAdapter","clearCache","setConfirmMethod","FrameController","fetchResponseLoaded","currentFetchRequest","resolveVisitPromise","connected","hasBeenLoaded","settingSourceURL","appearanceObserver","_extractForeignFrameElement","_visit","_requestSucceededWithResponse2","_loadResponse","_loadSourceURL","reloadable","loadingStyle","loadSourceURL","_callee21","previousURL","_context21","isActive","sourceURL","currentURL","_callee22","_parseHTMLDocument","_context22","extractForeignFrameElement","frameRendered","frameLoaded","_x16","shouldInterceptNavigation","navigateFrame","_callee23","_context23","_x17","_x18","_ref19","proposeVisitIfNavigatedWithAction","_ref20","_callee24","_this32","_context24","_x19","SnapshotSubstitution","getFrameElementById","_callee25","_context25","CSS","escape","activateElement","_x20","formActionIsVisitable","disabled","_this33","_ref21","connectedCallback","disconnectedCallback","consumer","StreamActions","after","_this34","targetElements","templateContent","nextSibling","_this35","removeDuplicateTargetChildren","before","_this36","_this37","_this38","_this39","_HTMLElement2","StreamElement","_render6","_connectedCallback","_super9","_callee26","_context26","_callee28","_this40","_context28","_callee27","_context27","beforeRenderEvent","performAction","duplicateChildren","existingChildren","flatMap","newChildrenIds","includes","actionFunction","targetElementsById","targetElementsByQuery","HTMLTemplateElement","description","getConsumer","_getConsumer","setConsumer","newConsumer","_createConsumer","_yield$import","createConsumer","subscribeTo","_subscribeTo","channel","mixin","_yield$getConsumer","subscriptions","currentScript","TurboCableStreamSourceElement","received","dispatchMessageEvent","subscription","unsubscribe","MessageEvent","signed_stream_name"],"mappings":"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","file":"js/application-df7c5f57d22d6f8beeee.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"3\":\"vendors~actioncable\"}[chunkId]||chunkId) + \"-\" + {\"3\":\"fec5aba1d903f89c8b79\"}[chunkId] + \".chunk.js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 32);\n","module.exports = require(\"regenerator-runtime\");\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*\nStimulus 3.0.1\nCopyright © 2021 Basecamp, LLC\n */\nvar EventListener = /*#__PURE__*/function () {\n function EventListener(eventTarget, eventName, eventOptions) {\n _classCallCheck(this, EventListener);\n\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n\n _createClass(EventListener, [{\n key: \"connect\",\n value: function connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n }, {\n key: \"bindingConnected\",\n value: function bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n }, {\n key: \"bindingDisconnected\",\n value: function bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(event) {\n var extendedEvent = extendEvent(event);\n\n var _iterator = _createForOfIteratorHelper(this.bindings),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var binding = _step.value;\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"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 }]);\n\n return EventListener;\n}();\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var _stopImmediatePropagation = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n\n _stopImmediatePropagation.call(this);\n }\n });\n }\n}\n\nvar Dispatcher = /*#__PURE__*/function () {\n function Dispatcher(application) {\n _classCallCheck(this, Dispatcher);\n\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n _createClass(Dispatcher, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n }\n }, {\n key: \"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 }, {\n key: \"bindingConnected\",\n value: function bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n }, {\n key: \"bindingDisconnected\",\n value: function bindingDisconnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.application.handleError(error, \"Error \".concat(message), detail);\n }\n }, {\n key: \"fetchEventListenerForBinding\",\n value: function fetchEventListenerForBinding(binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n }, {\n key: \"fetchEventListener\",\n value: function fetchEventListener(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 key: \"createEventListener\",\n value: function createEventListener(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 key: \"fetchEventListenerMapForEventTarget\",\n value: function fetchEventListenerMapForEventTarget(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 key: \"cacheKey\",\n value: function cacheKey(eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\".concat(eventOptions[key] ? \"\" : \"!\").concat(key));\n });\n return parts.join(\":\");\n }\n }]);\n\n return Dispatcher;\n}();\n\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\n\nfunction 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 return Object.assign(options, _defineProperty({}, token.replace(/^!/, \"\"), !/^!/.test(token)));\n }, {});\n}\n\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) {\n return char.toUpperCase();\n });\n}\n\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\".concat(char.toLowerCase());\n });\n}\n\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nvar Action = /*#__PURE__*/function () {\n function Action(element, index, descriptor) {\n _classCallCheck(this, Action);\n\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 _createClass(Action, [{\n key: \"toString\",\n value: function toString() {\n var eventNameSuffix = this.eventTargetName ? \"@\".concat(this.eventTargetName) : \"\";\n return \"\".concat(this.eventName).concat(eventNameSuffix, \"->\").concat(this.identifier, \"#\").concat(this.methodName);\n }\n }, {\n key: \"params\",\n get: function get() {\n if (this.eventTarget instanceof Element) {\n return this.getParamsFromEventTargetAttributes(this.eventTarget);\n } else {\n return {};\n }\n }\n }, {\n key: \"getParamsFromEventTargetAttributes\",\n value: function getParamsFromEventTargetAttributes(eventTarget) {\n var params = {};\n var pattern = new RegExp(\"^data-\".concat(this.identifier, \"-(.+)-param$\"));\n var attributes = Array.from(eventTarget.attributes);\n attributes.forEach(function (_ref) {\n var name = _ref.name,\n value = _ref.value;\n var match = name.match(pattern);\n var key = match && match[1];\n\n if (key) {\n Object.assign(params, _defineProperty({}, camelize(key), typecast(value)));\n }\n });\n return params;\n }\n }, {\n key: \"eventTargetName\",\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n }\n }], [{\n key: \"forToken\",\n value: function forToken(token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n }\n }]);\n\n return Action;\n}();\n\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 \"details\": function details(e) {\n return \"toggle\";\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};\n\nfunction 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}\n\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n } catch (o_O) {\n return value;\n }\n}\n\nvar Binding = /*#__PURE__*/function () {\n function Binding(context, action) {\n _classCallCheck(this, Binding);\n\n this.context = context;\n this.action = action;\n }\n\n _createClass(Binding, [{\n key: \"index\",\n get: function get() {\n return this.action.index;\n }\n }, {\n key: \"eventTarget\",\n get: function get() {\n return this.action.eventTarget;\n }\n }, {\n key: \"eventOptions\",\n get: function get() {\n return this.action.eventOptions;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.context.identifier;\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n }\n }, {\n key: \"eventName\",\n get: function get() {\n return this.action.eventName;\n }\n }, {\n key: \"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 \\\"\".concat(this.action, \"\\\" references undefined method \\\"\").concat(this.methodName, \"\\\"\"));\n }\n }, {\n key: \"invokeWithEvent\",\n value: function invokeWithEvent(event) {\n var target = event.target,\n currentTarget = event.currentTarget;\n\n try {\n var params = this.action.params;\n var actionEvent = Object.assign(event, {\n params: params\n });\n this.method.call(this.controller, actionEvent);\n this.context.logDebugActivity(this.methodName, {\n event: event,\n target: target,\n currentTarget: currentTarget,\n action: this.methodName\n });\n } catch (error) {\n var identifier = this.identifier,\n controller = this.controller,\n element = this.element,\n index = this.index;\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 \\\"\".concat(this.action, \"\\\"\"), detail);\n }\n }\n }, {\n key: \"willBeInvokedByEvent\",\n value: function willBeInvokedByEvent(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 key: \"controller\",\n get: function get() {\n return this.context.controller;\n }\n }, {\n key: \"methodName\",\n get: function get() {\n return this.action.methodName;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }]);\n\n return Binding;\n}();\n\nvar ElementObserver = /*#__PURE__*/function () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n _classCallCheck(this, ElementObserver);\n\n this.mutationObserverInit = {\n attributes: true,\n childList: true,\n subtree: true\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 _createClass(ElementObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n\n callback();\n\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _Array$from = Array.from(this.elements); _i < _Array$from.length; _i++) {\n var element = _Array$from[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _i2 = 0, _Array$from2 = Array.from(matches); _i2 < _Array$from2.length; _i2++) {\n var _element = _Array$from2[_i2];\n this.addElement(_element);\n }\n }\n }\n }, {\n key: \"processMutations\",\n value: function processMutations(mutations) {\n if (this.started) {\n var _iterator2 = _createForOfIteratorHelper(mutations),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var mutation = _step2.value;\n this.processMutation(mutation);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n }, {\n key: \"processMutation\",\n value: function processMutation(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 key: \"processAttributeChange\",\n value: function processAttributeChange(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 key: \"processRemovedNodes\",\n value: function processRemovedNodes(nodes) {\n for (var _i3 = 0, _Array$from3 = Array.from(nodes); _i3 < _Array$from3.length; _i3++) {\n var node = _Array$from3[_i3];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n }, {\n key: \"processAddedNodes\",\n value: function processAddedNodes(nodes) {\n for (var _i4 = 0, _Array$from4 = Array.from(nodes); _i4 < _Array$from4.length; _i4++) {\n var node = _Array$from4[_i4];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n }, {\n key: \"matchElement\",\n value: function matchElement(element) {\n return this.delegate.matchElement(element);\n }\n }, {\n key: \"matchElementsInTree\",\n value: function matchElementsInTree() {\n var tree = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.element;\n return this.delegate.matchElementsInTree(tree);\n }\n }, {\n key: \"processTree\",\n value: function processTree(tree, processor) {\n var _iterator3 = _createForOfIteratorHelper(this.matchElementsInTree(tree)),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var element = _step3.value;\n processor.call(this, element);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n }, {\n key: \"elementFromNode\",\n value: function elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n }, {\n key: \"elementIsActive\",\n value: function elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }\n }, {\n key: \"addElement\",\n value: function addElement(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 key: \"removeElement\",\n value: function removeElement(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\n return ElementObserver;\n}();\n\nvar AttributeObserver = /*#__PURE__*/function () {\n function AttributeObserver(element, attributeName, delegate) {\n _classCallCheck(this, AttributeObserver);\n\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n _createClass(AttributeObserver, [{\n key: \"element\",\n get: function get() {\n return this.elementObserver.element;\n }\n }, {\n key: \"selector\",\n get: function get() {\n return \"[\".concat(this.attributeName, \"]\");\n }\n }, {\n key: \"start\",\n value: function start() {\n this.elementObserver.start();\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n this.elementObserver.pause(callback);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.elementObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.elementObserver.refresh();\n }\n }, {\n key: \"started\",\n get: function get() {\n return this.elementObserver.started;\n }\n }, {\n key: \"matchElement\",\n value: function matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n }, {\n key: \"matchElementsInTree\",\n value: function matchElementsInTree(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 key: \"elementMatched\",\n value: function elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n }, {\n key: \"elementUnmatched\",\n value: function elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n }, {\n key: \"elementAttributeChanged\",\n value: function elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n }]);\n\n return AttributeObserver;\n}();\n\nvar StringMapObserver = /*#__PURE__*/function () {\n function StringMapObserver(element, delegate) {\n var _this2 = this;\n\n _classCallCheck(this, StringMapObserver);\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 _this2.processMutations(mutations);\n });\n }\n\n _createClass(StringMapObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n attributeOldValue: true\n });\n this.refresh();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.started) {\n var _iterator4 = _createForOfIteratorHelper(this.knownAttributeNames),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var attributeName = _step4.value;\n this.refreshAttribute(attributeName, null);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n }\n }, {\n key: \"processMutations\",\n value: function processMutations(mutations) {\n if (this.started) {\n var _iterator5 = _createForOfIteratorHelper(mutations),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var mutation = _step5.value;\n this.processMutation(mutation);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n }\n }, {\n key: \"processMutation\",\n value: function processMutation(mutation) {\n var attributeName = mutation.attributeName;\n\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n }, {\n key: \"refreshAttribute\",\n value: function refreshAttribute(attributeName, oldValue) {\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, oldValue);\n }\n\n if (value == null) {\n var _oldValue = this.stringMap.get(attributeName);\n\n this.stringMap.delete(attributeName);\n if (_oldValue) this.stringMapKeyRemoved(key, attributeName, _oldValue);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n }, {\n key: \"stringMapKeyAdded\",\n value: function stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n }, {\n key: \"stringMapValueChanged\",\n value: function stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n }, {\n key: \"stringMapKeyRemoved\",\n value: function stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n }, {\n key: \"knownAttributeNames\",\n get: function get() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n }, {\n key: \"currentAttributeNames\",\n get: function get() {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n }\n }, {\n key: \"recordedAttributeNames\",\n get: function get() {\n return Array.from(this.stringMap.keys());\n }\n }]);\n\n return StringMapObserver;\n}();\n\nfunction _add(map, key, value) {\n fetch(map, key).add(value);\n}\n\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\n\nfunction 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}\n\nfunction prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nvar Multimap = /*#__PURE__*/function () {\n function Multimap() {\n _classCallCheck(this, Multimap);\n\n this.valuesByKey = new Map();\n }\n\n _createClass(Multimap, [{\n key: \"keys\",\n get: function get() {\n return Array.from(this.valuesByKey.keys());\n }\n }, {\n key: \"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 }, {\n key: \"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 }, {\n key: \"add\",\n value: function add(key, value) {\n _add(this.valuesByKey, key, value);\n }\n }, {\n key: \"delete\",\n value: function _delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n }, {\n key: \"has\",\n value: function has(key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n }, {\n key: \"hasKey\",\n value: function hasKey(key) {\n return this.valuesByKey.has(key);\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n }\n }, {\n key: \"getValuesForKey\",\n value: function getValuesForKey(key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n }, {\n key: \"getKeysForValue\",\n value: function getKeysForValue(value) {\n return Array.from(this.valuesByKey).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n values = _ref3[1];\n\n return values.has(value);\n }).map(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n key = _ref5[0],\n values = _ref5[1];\n\n return key;\n });\n }\n }]);\n\n return Multimap;\n}();\n\nvar IndexedMultimap = /*#__PURE__*/function (_Multimap) {\n _inherits(IndexedMultimap, _Multimap);\n\n var _super = _createSuper(IndexedMultimap);\n\n function IndexedMultimap() {\n var _this3;\n\n _classCallCheck(this, IndexedMultimap);\n\n _this3 = _super.call(this);\n _this3.keysByValue = new Map();\n return _this3;\n }\n\n _createClass(IndexedMultimap, [{\n key: \"values\",\n get: function get() {\n return Array.from(this.keysByValue.keys());\n }\n }, {\n key: \"add\",\n value: function add(key, value) {\n _get(_getPrototypeOf(IndexedMultimap.prototype), \"add\", this).call(this, key, value);\n\n _add(this.keysByValue, value, key);\n }\n }, {\n key: \"delete\",\n value: function _delete(key, value) {\n _get(_getPrototypeOf(IndexedMultimap.prototype), \"delete\", this).call(this, key, value);\n\n del(this.keysByValue, value, key);\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(value) {\n return this.keysByValue.has(value);\n }\n }, {\n key: \"getKeysForValue\",\n value: function getKeysForValue(value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n }]);\n\n return IndexedMultimap;\n}(Multimap);\n\nvar TokenListObserver = /*#__PURE__*/function () {\n function TokenListObserver(element, attributeName, delegate) {\n _classCallCheck(this, TokenListObserver);\n\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n _createClass(TokenListObserver, [{\n key: \"started\",\n get: function get() {\n return this.attributeObserver.started;\n }\n }, {\n key: \"start\",\n value: function start() {\n this.attributeObserver.start();\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n this.attributeObserver.pause(callback);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.attributeObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.attributeObserver.refresh();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.attributeObserver.element;\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return this.attributeObserver.attributeName;\n }\n }, {\n key: \"elementMatchedAttribute\",\n value: function elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n }, {\n key: \"elementAttributeValueChanged\",\n value: function elementAttributeValueChanged(element) {\n var _this$refreshTokensFo = this.refreshTokensForElement(element),\n _this$refreshTokensFo2 = _slicedToArray(_this$refreshTokensFo, 2),\n unmatchedTokens = _this$refreshTokensFo2[0],\n matchedTokens = _this$refreshTokensFo2[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n }, {\n key: \"elementUnmatchedAttribute\",\n value: function elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n }, {\n key: \"tokensMatched\",\n value: function tokensMatched(tokens) {\n var _this4 = this;\n\n tokens.forEach(function (token) {\n return _this4.tokenMatched(token);\n });\n }\n }, {\n key: \"tokensUnmatched\",\n value: function tokensUnmatched(tokens) {\n var _this5 = this;\n\n tokens.forEach(function (token) {\n return _this5.tokenUnmatched(token);\n });\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n }, {\n key: \"refreshTokensForElement\",\n value: function refreshTokensForElement(element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n previousToken = _ref7[0],\n currentToken = _ref7[1];\n\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 key: \"readTokensForElement\",\n value: function readTokensForElement(element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n }]);\n\n return TokenListObserver;\n}();\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}\n\nvar ValueListObserver = /*#__PURE__*/function () {\n function ValueListObserver(element, attributeName, delegate) {\n _classCallCheck(this, ValueListObserver);\n\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 _createClass(ValueListObserver, [{\n key: \"started\",\n get: function get() {\n return this.tokenListObserver.started;\n }\n }, {\n key: \"start\",\n value: function start() {\n this.tokenListObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.tokenListObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.tokenListObserver.refresh();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.tokenListObserver.element;\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return this.tokenListObserver.attributeName;\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(token) {\n var element = token.element;\n\n var _this$fetchParseResul = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul.value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(token) {\n var element = token.element;\n\n var _this$fetchParseResul2 = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul2.value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n }, {\n key: \"fetchParseResultForToken\",\n value: function fetchParseResultForToken(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 key: \"fetchValuesByTokenForElement\",\n value: function fetchValuesByTokenForElement(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 key: \"parseToken\",\n value: function parseToken(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\n return ValueListObserver;\n}();\n\nvar BindingObserver = /*#__PURE__*/function () {\n function BindingObserver(context, delegate) {\n _classCallCheck(this, BindingObserver);\n\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n _createClass(BindingObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.context.identifier;\n }\n }, {\n key: \"actionAttribute\",\n get: function get() {\n return this.schema.actionAttribute;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.context.schema;\n }\n }, {\n key: \"bindings\",\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n }\n }, {\n key: \"connectAction\",\n value: function connectAction(action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n }, {\n key: \"disconnectAction\",\n value: function disconnectAction(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 key: \"disconnectAllActions\",\n value: function disconnectAllActions() {\n var _this6 = this;\n\n this.bindings.forEach(function (binding) {\n return _this6.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }\n }, {\n key: \"parseValueForToken\",\n value: function parseValueForToken(token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n }, {\n key: \"elementMatchedValue\",\n value: function elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n }, {\n key: \"elementUnmatchedValue\",\n value: function elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n }]);\n\n return BindingObserver;\n}();\n\nvar ValueObserver = /*#__PURE__*/function () {\n function ValueObserver(context, receiver) {\n _classCallCheck(this, ValueObserver);\n\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 _createClass(ValueObserver, [{\n key: \"start\",\n value: function start() {\n this.stringMapObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.stringMapObserver.stop();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"controller\",\n get: function get() {\n return this.context.controller;\n }\n }, {\n key: \"getStringMapKeyForAttribute\",\n value: function getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n }, {\n key: \"stringMapKeyAdded\",\n value: function stringMapKeyAdded(key, attributeName) {\n var descriptor = this.valueDescriptorMap[attributeName];\n\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n }, {\n key: \"stringMapValueChanged\",\n value: function stringMapValueChanged(value, name, oldValue) {\n var descriptor = this.valueDescriptorNameMap[name];\n if (value === null) return;\n\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n\n this.invokeChangedCallback(name, value, oldValue);\n }\n }, {\n key: \"stringMapKeyRemoved\",\n value: function stringMapKeyRemoved(key, attributeName, oldValue) {\n var descriptor = this.valueDescriptorNameMap[key];\n\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n } else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n }, {\n key: \"invokeChangedCallbacksForDefaultValues\",\n value: function invokeChangedCallbacksForDefaultValues() {\n var _iterator6 = _createForOfIteratorHelper(this.valueDescriptors),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _ref9 = _step6.value;\n var key = _ref9.key;\n var name = _ref9.name;\n var defaultValue = _ref9.defaultValue;\n var writer = _ref9.writer;\n\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n }, {\n key: \"invokeChangedCallback\",\n value: function invokeChangedCallback(name, rawValue, rawOldValue) {\n var changedMethodName = \"\".concat(name, \"Changed\");\n var changedMethod = this.receiver[changedMethodName];\n\n if (typeof changedMethod == \"function\") {\n var descriptor = this.valueDescriptorNameMap[name];\n var value = descriptor.reader(rawValue);\n var oldValue = rawOldValue;\n\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n\n changedMethod.call(this.receiver, value, oldValue);\n }\n }\n }, {\n key: \"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 }, {\n key: \"valueDescriptorNameMap\",\n get: function get() {\n var _this7 = this;\n\n var descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach(function (key) {\n var descriptor = _this7.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(attributeName) {\n var descriptor = this.valueDescriptorNameMap[attributeName];\n var hasMethodName = \"has\".concat(capitalize(descriptor.name));\n return this.receiver[hasMethodName];\n }\n }]);\n\n return ValueObserver;\n}();\n\nvar TargetObserver = /*#__PURE__*/function () {\n function TargetObserver(context, delegate) {\n _classCallCheck(this, TargetObserver);\n\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n\n _createClass(TargetObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(_ref10) {\n var element = _ref10.element,\n name = _ref10.content;\n\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(_ref11) {\n var element = _ref11.element,\n name = _ref11.content;\n this.disconnectTarget(element, name);\n }\n }, {\n key: \"connectTarget\",\n value: function connectTarget(element, name) {\n var _this8 = this;\n\n var _a;\n\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(function () {\n return _this8.delegate.targetConnected(element, name);\n });\n }\n }\n }, {\n key: \"disconnectTarget\",\n value: function disconnectTarget(element, name) {\n var _this9 = this;\n\n var _a;\n\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(function () {\n return _this9.delegate.targetDisconnected(element, name);\n });\n }\n }\n }, {\n key: \"disconnectAllTargets\",\n value: function disconnectAllTargets() {\n var _iterator7 = _createForOfIteratorHelper(this.targetsByName.keys),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var name = _step7.value;\n\n var _iterator8 = _createForOfIteratorHelper(this.targetsByName.getValuesForKey(name)),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var element = _step8.value;\n this.disconnectTarget(element, name);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return \"data-\".concat(this.context.identifier, \"-target\");\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }]);\n\n return TargetObserver;\n}();\n\nvar Context = /*#__PURE__*/function () {\n function Context(module, scope) {\n var _this10 = this;\n\n _classCallCheck(this, Context);\n\n this.logDebugActivity = function (functionName) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var identifier = _this10.identifier,\n controller = _this10.controller,\n element = _this10.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n\n _this10.application.logDebugActivity(_this10.identifier, functionName, detail);\n };\n\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 this.targetObserver = new TargetObserver(this, this);\n\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n _createClass(Context, [{\n key: \"connect\",\n value: function connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n }, {\n key: \"application\",\n get: function get() {\n return this.module.application;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.module.identifier;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.application.schema;\n }\n }, {\n key: \"dispatcher\",\n get: function get() {\n return this.application.dispatcher;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"parentElement\",\n get: function get() {\n return this.element.parentElement;\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var identifier = this.identifier,\n controller = this.controller,\n element = this.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \".concat(message), detail);\n }\n }, {\n key: \"targetConnected\",\n value: function targetConnected(element, name) {\n this.invokeControllerMethod(\"\".concat(name, \"TargetConnected\"), element);\n }\n }, {\n key: \"targetDisconnected\",\n value: function targetDisconnected(element, name) {\n this.invokeControllerMethod(\"\".concat(name, \"TargetDisconnected\"), element);\n }\n }, {\n key: \"invokeControllerMethod\",\n value: function invokeControllerMethod(methodName) {\n var controller = this.controller;\n\n if (typeof controller[methodName] == \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n controller[methodName].apply(controller, args);\n }\n }\n }]);\n\n return Context;\n}();\n\nfunction 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}\n\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, _toConsumableArray(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}\n\nfunction 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 descriptor = getShadowedDescriptor(prototype, properties, key);\n\n if (descriptor) {\n Object.assign(shadowProperties, _defineProperty({}, key, descriptor));\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 [].concat(_toConsumableArray(Object.getOwnPropertyNames(object)), _toConsumableArray(Object.getOwnPropertySymbols(object)));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, this instanceof extended ? this.constructor : void 0);\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 /*#__PURE__*/function (_constructor) {\n _inherits(extended, _constructor);\n\n var _super2 = _createSuper(extended);\n\n function extended() {\n _classCallCheck(this, extended);\n\n return _super2.apply(this, arguments);\n }\n\n return _createClass(extended);\n }(constructor);\n };\n }\n}();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}\n\nvar Module = /*#__PURE__*/function () {\n function Module(application, definition) {\n _classCallCheck(this, Module);\n\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n _createClass(Module, [{\n key: \"identifier\",\n get: function get() {\n return this.definition.identifier;\n }\n }, {\n key: \"controllerConstructor\",\n get: function get() {\n return this.definition.controllerConstructor;\n }\n }, {\n key: \"contexts\",\n get: function get() {\n return Array.from(this.connectedContexts);\n }\n }, {\n key: \"connectContextForScope\",\n value: function connectContextForScope(scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n }, {\n key: \"disconnectContextForScope\",\n value: function disconnectContextForScope(scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n }, {\n key: \"fetchContextForScope\",\n value: function fetchContextForScope(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\n return Module;\n}();\n\nvar ClassMap = /*#__PURE__*/function () {\n function ClassMap(scope) {\n _classCallCheck(this, ClassMap);\n\n this.scope = scope;\n }\n\n _createClass(ClassMap, [{\n key: \"has\",\n value: function has(name) {\n return this.data.has(this.getDataKey(name));\n }\n }, {\n key: \"get\",\n value: function get(name) {\n return this.getAll(name)[0];\n }\n }, {\n key: \"getAll\",\n value: function getAll(name) {\n var tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n }, {\n key: \"getAttributeName\",\n value: function getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n }, {\n key: \"getDataKey\",\n value: function getDataKey(name) {\n return \"\".concat(name, \"-class\");\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.scope.data;\n }\n }]);\n\n return ClassMap;\n}();\n\nvar DataMap = /*#__PURE__*/function () {\n function DataMap(scope) {\n _classCallCheck(this, DataMap);\n\n this.scope = scope;\n }\n\n _createClass(DataMap, [{\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n }, {\n key: \"has\",\n value: function has(key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n if (this.has(key)) {\n var name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: \"getAttributeNameForKey\",\n value: function getAttributeNameForKey(key) {\n return \"data-\".concat(this.identifier, \"-\").concat(dasherize(key));\n }\n }]);\n\n return DataMap;\n}();\n\nvar Guide = /*#__PURE__*/function () {\n function Guide(logger) {\n _classCallCheck(this, Guide);\n\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n\n _createClass(Guide, [{\n key: \"warn\",\n value: function warn(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\n return Guide;\n}();\n\nfunction attributeValueContainsToken(attributeName, token) {\n return \"[\".concat(attributeName, \"~=\\\"\").concat(token, \"\\\"]\");\n}\n\nvar TargetSet = /*#__PURE__*/function () {\n function TargetSet(scope) {\n _classCallCheck(this, TargetSet);\n\n this.scope = scope;\n }\n\n _createClass(TargetSet, [{\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.scope.schema;\n }\n }, {\n key: \"has\",\n value: function has(targetName) {\n return this.find(targetName) != null;\n }\n }, {\n key: \"find\",\n value: function find() {\n var _this11 = this;\n\n for (var _len2 = arguments.length, targetNames = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n targetNames[_key2] = arguments[_key2];\n }\n\n return targetNames.reduce(function (target, targetName) {\n return target || _this11.findTarget(targetName) || _this11.findLegacyTarget(targetName);\n }, undefined);\n }\n }, {\n key: \"findAll\",\n value: function findAll() {\n var _this12 = this;\n\n for (var _len3 = arguments.length, targetNames = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n targetNames[_key3] = arguments[_key3];\n }\n\n return targetNames.reduce(function (targets, targetName) {\n return [].concat(_toConsumableArray(targets), _toConsumableArray(_this12.findAllTargets(targetName)), _toConsumableArray(_this12.findAllLegacyTargets(targetName)));\n }, []);\n }\n }, {\n key: \"findTarget\",\n value: function findTarget(targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n }, {\n key: \"findAllTargets\",\n value: function findAllTargets(targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n }, {\n key: \"getSelectorForTargetName\",\n value: function getSelectorForTargetName(targetName) {\n var attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n }, {\n key: \"findLegacyTarget\",\n value: function findLegacyTarget(targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n }, {\n key: \"findAllLegacyTargets\",\n value: function findAllLegacyTargets(targetName) {\n var _this13 = this;\n\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this13.deprecate(element, targetName);\n });\n }\n }, {\n key: \"getLegacySelectorForTargetName\",\n value: function getLegacySelectorForTargetName(targetName) {\n var targetDescriptor = \"\".concat(this.identifier, \".\").concat(targetName);\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n }, {\n key: \"deprecate\",\n value: function deprecate(element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n var revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, \"target:\".concat(targetName), \"Please replace \".concat(attributeName, \"=\\\"\").concat(identifier, \".\").concat(targetName, \"\\\" with \").concat(revisedAttributeName, \"=\\\"\").concat(targetName, \"\\\". \") + \"The \".concat(attributeName, \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n\n return element;\n }\n }, {\n key: \"guide\",\n get: function get() {\n return this.scope.guide;\n }\n }]);\n\n return TargetSet;\n}();\n\nvar Scope = /*#__PURE__*/function () {\n function Scope(schema, element, identifier, logger) {\n var _this14 = this;\n\n _classCallCheck(this, Scope);\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(_this14.controllerSelector) === _this14.element;\n };\n\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n\n _createClass(Scope, [{\n key: \"findElement\",\n value: function findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n }, {\n key: \"findAllElements\",\n value: function findAllElements(selector) {\n return [].concat(_toConsumableArray(this.element.matches(selector) ? [this.element] : []), _toConsumableArray(this.queryElements(selector).filter(this.containsElement)));\n }\n }, {\n key: \"queryElements\",\n value: function queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n }, {\n key: \"controllerSelector\",\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n }]);\n\n return Scope;\n}();\n\nvar ScopeObserver = /*#__PURE__*/function () {\n function ScopeObserver(element, schema, delegate) {\n _classCallCheck(this, ScopeObserver);\n\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 _createClass(ScopeObserver, [{\n key: \"start\",\n value: function start() {\n this.valueListObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.valueListObserver.stop();\n }\n }, {\n key: \"controllerAttribute\",\n get: function get() {\n return this.schema.controllerAttribute;\n }\n }, {\n key: \"parseValueForToken\",\n value: function parseValueForToken(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 }, {\n key: \"elementMatchedValue\",\n value: function elementMatchedValue(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 }, {\n key: \"elementUnmatchedValue\",\n value: function elementUnmatchedValue(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 key: \"fetchScopesByIdentifierForElement\",\n value: function fetchScopesByIdentifierForElement(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\n return ScopeObserver;\n}();\n\nvar Router = /*#__PURE__*/function () {\n function Router(application) {\n _classCallCheck(this, Router);\n\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 _createClass(Router, [{\n key: \"element\",\n get: function get() {\n return this.application.element;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.application.schema;\n }\n }, {\n key: \"logger\",\n get: function get() {\n return this.application.logger;\n }\n }, {\n key: \"controllerAttribute\",\n get: function get() {\n return this.schema.controllerAttribute;\n }\n }, {\n key: \"modules\",\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n }\n }, {\n key: \"contexts\",\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scopeObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scopeObserver.stop();\n }\n }, {\n key: \"loadDefinition\",\n value: function loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n }\n }, {\n key: \"unloadIdentifier\",\n value: function unloadIdentifier(identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n }\n }, {\n key: \"getContextForElementAndIdentifier\",\n value: function getContextForElementAndIdentifier(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 }\n }, {\n key: \"handleError\",\n value: function handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n }, {\n key: \"createScopeForElementAndIdentifier\",\n value: function createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n }, {\n key: \"scopeConnected\",\n value: function scopeConnected(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 }, {\n key: \"scopeDisconnected\",\n value: function scopeDisconnected(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 }\n }, {\n key: \"connectModule\",\n value: function connectModule(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 key: \"disconnectModule\",\n value: function disconnectModule(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\n return Router;\n}();\n\nvar defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: function targetAttributeForScope(identifier) {\n return \"data-\".concat(identifier, \"-target\");\n }\n};\n\nvar Application = /*#__PURE__*/function () {\n function Application() {\n var _this15 = this;\n\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.documentElement;\n var schema = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultSchema;\n\n _classCallCheck(this, Application);\n\n this.logger = console;\n this.debug = false;\n\n this.logDebugActivity = function (identifier, functionName) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (_this15.debug) {\n _this15.logFormattedMessage(identifier, functionName, detail);\n }\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 _createClass(Application, [{\n key: \"start\",\n value: function () {\n var _start = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return domReady();\n\n case 2:\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function start() {\n return _start.apply(this, arguments);\n }\n\n return start;\n }()\n }, {\n key: \"stop\",\n value: function stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n }, {\n key: \"register\",\n value: function register(identifier, controllerConstructor) {\n if (controllerConstructor.shouldLoad) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n }\n }\n }, {\n key: \"load\",\n value: function load(head) {\n var _this16 = this;\n\n for (var _len4 = arguments.length, rest = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n rest[_key4 - 1] = arguments[_key4];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this16.router.loadDefinition(definition);\n });\n }\n }, {\n key: \"unload\",\n value: function unload(head) {\n var _this17 = this;\n\n for (var _len5 = arguments.length, rest = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n rest[_key5 - 1] = arguments[_key5];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this17.router.unloadIdentifier(identifier);\n });\n }\n }, {\n key: \"controllers\",\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n }\n }, {\n key: \"getControllerForElementAndIdentifier\",\n value: function getControllerForElementAndIdentifier(element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message, detail) {\n var _a;\n\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n }, {\n key: \"logFormattedMessage\",\n value: function logFormattedMessage(identifier, functionName) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n detail = Object.assign({\n application: this\n }, detail);\n this.logger.groupCollapsed(\"\".concat(identifier, \" #\").concat(functionName));\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n }], [{\n key: \"start\",\n value: function start(element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n }\n }]);\n\n return Application;\n}();\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", function () {\n return resolve();\n });\n } else {\n resolve();\n }\n });\n}\n\nfunction 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 _ref12;\n\n return _ref12 = {}, _defineProperty(_ref12, \"\".concat(key, \"Class\"), {\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 \\\"\".concat(attribute, \"\\\"\"));\n }\n }\n }), _defineProperty(_ref12, \"\".concat(key, \"Classes\"), {\n get: function get() {\n return this.classes.getAll(key);\n }\n }), _defineProperty(_ref12, \"has\".concat(capitalize(key), \"Class\"), {\n get: function get() {\n return this.classes.has(key);\n }\n }), _ref12;\n}\n\nfunction 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 _ref13;\n\n return _ref13 = {}, _defineProperty(_ref13, \"\".concat(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 \\\"\".concat(name, \"\\\" for \\\"\").concat(this.identifier, \"\\\" controller\"));\n }\n }\n }), _defineProperty(_ref13, \"\".concat(name, \"Targets\"), {\n get: function get() {\n return this.targets.findAll(name);\n }\n }), _defineProperty(_ref13, \"has\".concat(capitalize(name), \"Target\"), {\n get: function get() {\n return this.targets.has(name);\n }\n }), _ref13;\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function get() {\n var _this18 = this;\n\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n\n var attributeName = _this18.data.getAttributeNameForKey(valueDescriptor.key);\n\n return Object.assign(result, _defineProperty({}, attributeName, valueDescriptor));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n\nfunction propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _ref14;\n\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var key = definition.key,\n name = definition.name,\n read = definition.reader,\n write = definition.writer;\n return _ref14 = {}, _defineProperty(_ref14, 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 }), _defineProperty(_ref14, \"has\".concat(capitalize(name)), {\n get: function get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n }\n }), _ref14;\n}\n\nfunction parseValueDefinitionPair(_ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n token = _ref16[0],\n typeDefinition = _ref16[1];\n\n return valueDescriptorForTokenAndTypeDefinition(token, typeDefinition);\n}\n\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\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\nfunction parseValueTypeDefault(defaultValue) {\n switch (_typeof(defaultValue)) {\n case \"boolean\":\n return \"boolean\";\n\n case \"number\":\n return \"number\";\n\n case \"string\":\n return \"string\";\n }\n\n if (Array.isArray(defaultValue)) return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\") return \"object\";\n}\n\nfunction parseValueTypeObject(typeObject) {\n var typeFromObject = parseValueTypeConstant(typeObject.type);\n\n if (typeFromObject) {\n var defaultValueType = parseValueTypeDefault(typeObject.default);\n\n if (typeFromObject !== defaultValueType) {\n throw new Error(\"Type \\\"\".concat(typeFromObject, \"\\\" must match the type of the default value. Given default value: \\\"\").concat(typeObject.default, \"\\\" as \\\"\").concat(defaultValueType, \"\\\"\"));\n }\n\n return typeFromObject;\n }\n}\n\nfunction parseValueTypeDefinition(typeDefinition) {\n var typeFromObject = parseValueTypeObject(typeDefinition);\n var typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n var typeFromConstant = parseValueTypeConstant(typeDefinition);\n var type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type) return type;\n throw new Error(\"Unknown value type \\\"\".concat(typeDefinition, \"\\\"\"));\n}\n\nfunction defaultValueForDefinition(typeDefinition) {\n var constant = parseValueTypeConstant(typeDefinition);\n if (constant) return defaultValuesByType[constant];\n var defaultValue = typeDefinition.default;\n if (defaultValue !== undefined) return defaultValue;\n return typeDefinition;\n}\n\nfunction valueDescriptorForTokenAndTypeDefinition(token, typeDefinition) {\n var key = \"\".concat(dasherize(token), \"-value\");\n var type = parseValueTypeDefinition(typeDefinition);\n return {\n type: type,\n key: key,\n name: camelize(key),\n\n get defaultValue() {\n return defaultValueForDefinition(typeDefinition);\n },\n\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(typeDefinition) !== undefined;\n },\n\n reader: readers[type],\n writer: writers[type] || writers.default\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 Number(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 \"\".concat(value);\n}\n\nvar Controller = /*#__PURE__*/function () {\n function Controller(context) {\n _classCallCheck(this, Controller);\n\n this.context = context;\n }\n\n _createClass(Controller, [{\n key: \"application\",\n get: function get() {\n return this.context.application;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"targets\",\n get: function get() {\n return this.scope.targets;\n }\n }, {\n key: \"classes\",\n get: function get() {\n return this.scope.classes;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.scope.data;\n }\n }, {\n key: \"initialize\",\n value: function initialize() {}\n }, {\n key: \"connect\",\n value: function connect() {}\n }, {\n key: \"disconnect\",\n value: function disconnect() {}\n }, {\n key: \"dispatch\",\n value: function dispatch(eventName) {\n var _ref17 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref17$target = _ref17.target,\n target = _ref17$target === void 0 ? this.element : _ref17$target,\n _ref17$detail = _ref17.detail,\n detail = _ref17$detail === void 0 ? {} : _ref17$detail,\n _ref17$prefix = _ref17.prefix,\n prefix = _ref17$prefix === void 0 ? this.identifier : _ref17$prefix,\n _ref17$bubbles = _ref17.bubbles,\n bubbles = _ref17$bubbles === void 0 ? true : _ref17$bubbles,\n _ref17$cancelable = _ref17.cancelable,\n cancelable = _ref17$cancelable === void 0 ? true : _ref17$cancelable;\n\n var type = prefix ? \"\".concat(prefix, \":\").concat(eventName) : eventName;\n var event = new CustomEvent(type, {\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n });\n target.dispatchEvent(event);\n return event;\n }\n }], [{\n key: \"shouldLoad\",\n get: function get() {\n return true;\n }\n }]);\n\n return Controller;\n}();\n\nController.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\nController.targets = [];\nController.values = {};\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, StringMapObserver, TokenListObserver, ValueListObserver, _add as add, defaultSchema, del, fetch, prune };","import { Application } from \"@hotwired/stimulus\";\n\nconst application = Application.start();\n\n// Configure Stimulus development experience\napplication.debug = true;\nwindow.Stimulus = application;\n\ndocument.addEventListener(\"turbolinks:before-cache\", () => {\n application.controllers.forEach((controller) => {\n if (typeof controller.teardown === \"function\") {\n controller.teardown();\n }\n });\n});\n\nTurbo.setProgressBarDelay(200)\n\nexport { application };\n","import { Controller } from \"@hotwired/stimulus\"\n\n/*\n* Javascript to show and hide cookie banner using localstroage\n*/\n\nexport default class extends Controller {\n connect () {\n // Checks the localstorage and shows Cookie banner based on it\n let isCookieAccepted = localStorage.getItem(\"iag_isBannerHidden\");\n if(isCookieAccepted === null) {\n localStorage.clear();\n localStorage.setItem(\"iag_isBannerHidden\", \"no\");\n this.showNotificationBanner();\n }\n if(isCookieAccepted === \"no\"){\n this.showNotificationBanner();\n }\n }\n \n // Hides the Cookie banner and saves the value to localstorage\n hideNotificationBanner = (event) => {\n localStorage.setItem(\"iag_isBannerHidden\", \"yes\");\n let notificationBanner = document.getElementById(\"hellobar-bar\");\n // let notificationBanner = document.getElementsByClassName(\"nk-cookie-banner\")[0];\n $('#hellobar-bar').fadeOut();\n notificationBanner.style.display = \"none\";\n }\n \n showNotificationBanner = (event) => {\n let notificationBanner = document.getElementById(\"hellobar-bar\");\n notificationBanner.style.display = \"\";\n }\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n\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() {\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var src = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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 };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n/* eslint-disable no-proto */\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 _inherits(Dom7, _Array);\n\n var _super = _createSuper(Dom7);\n\n function Dom7(items) {\n var _this;\n\n _classCallCheck(this, Dom7);\n\n if (typeof items === 'number') {\n _this = _super.call(this, items);\n } else {\n _this = _super.call.apply(_super, [this].concat(_toConsumableArray(items || [])));\n makeReactive(_assertThisInitialized(_this));\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n return _createClass(Dom7);\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat() {\n var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, _toConsumableArray(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} // eslint-disable-next-line\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-\".concat(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' ? \"\".concat(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\n var _scrollTop = el === window ? window.scrollY : el.scrollTop;\n\n var _scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n\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} // eslint-disable-next-line\n\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\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() {\n var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date().getTime();\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 _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\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 _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n args[_key13] = arguments[_key13];\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} // eslint-disable-next-line\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 _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n args[_key14] = arguments[_key14];\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 Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n 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.js';\nvar deviceCached;\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(\"\".concat(screenWidth, \"x\").concat(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 (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\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 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 };","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _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 getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\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 = 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 && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\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 && !isNode(nextSource)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\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 if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll(_ref) {\n var swiper = _ref.swiper,\n targetPosition = _ref.targetPosition,\n side = _ref.side;\n var window = getWindow();\n var startPosition = -swiper.translate;\n var startTime = null;\n var time;\n var duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n var dir = targetPosition > startPosition ? 'next' : 'prev';\n\n var isOutOfBound = function isOutOfBound(current, target) {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n var animate = function animate() {\n time = new Date().getTime();\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 = 0.5 - Math.cos(progress * Math.PI) / 2;\n var currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo(_defineProperty({}, side, currentPosition));\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(function () {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo(_defineProperty({}, side, currentPosition));\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (!self.eventsListeners || self.destroyed) return self;\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 (!self.eventsListeners || self.destroyed) return self;\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 (!self.eventsListeners || self.destroyed) return self;\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.eventsListeners || self.destroyed) return self;\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 || self.destroyed) return self;\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 || self.destroyed) return self;\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(_toConsumableArray(data)));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n 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(\".\".concat(swiper.params.slideClass));\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\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.slidesGrid.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 marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n var gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n var slideSize;\n var shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(function (key) {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = \"\";\n }\n\n var slideStyles = getComputedStyle(slide[0]);\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 var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\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 }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = \"\".concat(slideSize, \"px\");\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css(_defineProperty({}, getDirectionLabel('width'), \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")));\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n var 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\n if (snapGrid[_i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css(_defineProperty({}, key, \"\".concat(spaceBetween, \"px\")));\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 Object.assign(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', \"\".concat(-snapGrid[0], \"px\"));\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', \"\".concat(swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2, \"px\"));\n var addToSnapGrid = -swiper.snapGrid[0];\n var addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(function (v) {\n return v + addToSnapGrid;\n });\n swiper.slidesGrid = swiper.slidesGrid.map(function (v) {\n return v + addToSlidesGrid;\n });\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n var backFaceHiddenClass = \"\".concat(params.containerModifierClass, \"backface-hidden\");\n var hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { animateCSSModeScroll } from '../../shared/utils.js';\nexport 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 var _wrapperEl$scrollTo;\n\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper: swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _defineProperty(_wrapperEl$scrollTo, isH ? 'left' : 'top', -newTranslate), _defineProperty(_wrapperEl$scrollTo, \"behavior\", 'smooth'), _wrapperEl$scrollTo));\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}","export default function transitionEmit(_ref) {\n var swiper = _ref.swiper,\n runCallbacks = _ref.runCallbacks,\n direction = _ref.direction,\n step = _ref.step;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex;\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(\"transition\".concat(step));\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(\"slideResetTransition\".concat(step));\n return;\n }\n\n swiper.emit(\"slideChangeTransition\".concat(step));\n\n if (dir === 'next') {\n swiper.emit(\"slideNextTransition\".concat(step));\n } else {\n swiper.emit(\"slidePrevTransition\".concat(step));\n }\n }\n}","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index, speed, runCallbacks, internal, initial) {\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'. [\".concat(_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'. [\".concat(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 enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\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 var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGrid = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n 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 = rtl ? translate : -translate;\n\n if (speed === 0) {\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(function () {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n var _wrapperEl$scrollTo;\n\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper: swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _defineProperty(_wrapperEl$scrollTo, isH ? 'left' : 'top', t), _defineProperty(_wrapperEl$scrollTo, \"behavior\", 'smooth'), _wrapperEl$scrollTo));\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo: 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 animating = swiper.animating,\n enabled = swiper.enabled,\n params = swiper.params;\n if (!enabled) return swiper;\n var perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, 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 enabled = swiper.enabled;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n 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 prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n var prevSnapIndex;\n snapGrid.forEach(function (snap, snapIndex) {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n var prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n var lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\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 '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\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(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(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(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(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 { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\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 enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n 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 component\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 var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\".concat(params.noSwipingClass);\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n 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.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n 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 enabled = swiper.enabled;\n if (!enabled) return;\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 if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n 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 && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n 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 }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n slidesGrid = swiper.slidesGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\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 var pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(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 (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos: currentPos\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 }\n\n var rewindFirstIndex = null;\n var rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\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(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\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(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : 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 if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n 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.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nvar events = function events(swiper, method) {\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;\n var domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n var swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\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\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n var swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nvar isGridEnabled = function isGridEnabled(swiper, params) {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\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, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = isGridEnabled(swiper, params);\n var isMultiRow = isGridEnabled(swiper, breakpointParams);\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(\"\".concat(params.containerModifierClass, \"grid \").concat(params.containerModifierClass, \"grid-column\"));\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(\"\".concat(params.containerModifierClass, \"grid\"));\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(\"\".concat(params.containerModifierClass, \"grid-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 var isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (_typeof(item) === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n 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 support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push.apply(classNames, _toConsumableArray(suffixes));\n $el.addClass(_toConsumableArray(classNames).join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n var swiper = this;\n var wasLocked = swiper.isLocked,\n params = swiper.params;\n var slidesOffsetBefore = params.slidesOffsetBefore;\n\n if (slidesOffsetBefore) {\n var lastSlideIndex = swiper.slides.length - 1;\n var lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n var moduleParamName = Object.keys(obj)[0];\n var moduleParams = obj[moduleParamName];\n\n if (_typeof(moduleParams) !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (_typeof(params[moduleParamName]) === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nvar prototypes = {\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\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 _classCallCheck(this, Swiper);\n\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 && Object.prototype.toString.call(args[0]).slice(8, -1) === '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;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = _toConsumableArray(swiper.__modules__);\n\n if (params.modules && Array.isArray(params.modules)) {\n var _swiper$modules;\n\n (_swiper$modules = swiper.modules).push.apply(_swiper$modules, _toConsumableArray(params.modules));\n }\n\n var allModulesParams = {};\n swiper.modules.forEach(function (mod) {\n mod({\n swiper: swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(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.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el: el,\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 // 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 = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n _createClass(Swiper, [{\n key: \"enable\",\n value: function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n }, {\n key: \"disable\",\n value: function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n }, {\n key: \"setProgress\",\n value: function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }, {\n key: \"emitContainerClasses\",\n value: function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var cls = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n }, {\n key: \"getSlideClasses\",\n value: function getSlideClasses(slideEl) {\n var swiper = this;\n if (swiper.destroyed) return '';\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 key: \"emitSlidesClasses\",\n value: function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n }, {\n key: \"slidesPerViewDynamic\",\n value: function slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n\n if (exact === void 0) {\n exact = false;\n }\n\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n slidesSizesGrid = swiper.slidesSizesGrid,\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 // eslint-disable-next-line\n if (view === 'current') {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n var slideInView = exact ? slidesGrid[_i2] + slidesSizesGrid[_i2] - slidesGrid[activeIndex] < swiperSize : slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (var _i3 = activeIndex - 1; _i3 >= 0; _i3 -= 1) {\n var _slideInView = slidesGrid[activeIndex] - slidesGrid[_i3] < swiperSize;\n\n if (_slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n }, {\n key: \"update\",\n value: 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 && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n }, {\n key: \"changeDirection\",\n value: 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(\"\".concat(swiper.params.containerModifierClass).concat(currentDirection)).addClass(\"\".concat(swiper.params.containerModifierClass).concat(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 key: \"mount\",\n value: function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\".concat((swiper.params.wrapperClass || '').trim().split(' ').join('.'));\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\".concat(swiper.params.slideClass)).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n }, {\n key: \"init\",\n value: function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n }, {\n key: \"destroy\",\n value: 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 key: \"extendDefaults\",\n value: function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n }, {\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 key: \"installModule\",\n value: function installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n var modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n }, {\n key: \"use\",\n value: 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\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 updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize: 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};","export 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.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\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 }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(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 && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', \"\".concat(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 '../../shared/dom.js';\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 snapGrid = swiper.snapGrid;\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 slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n var originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n var slideBefore = -(offsetCenter - slideOffset);\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 slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n 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 Object.assign(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n 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(\"\".concat(params.slideActiveClass, \" \").concat(params.slideNextClass, \" \").concat(params.slidePrevClass, \" \").concat(params.slideDuplicateActiveClass, \" \").concat(params.slideDuplicateNextClass, \" \").concat(params.slideDuplicatePrevClass));\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(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(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\".concat(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(\".\".concat(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(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export 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 Object.assign(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 '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e).closest(\".\".concat(params.slideClass))[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../shared/utils.js';\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(\".concat(x, \"px, \").concat(y, \"px, \").concat(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}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\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}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper: swiper,\n runCallbacks: runCallbacks,\n direction: direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper: swiper,\n runCallbacks: runCallbacks,\n direction: direction,\n step: 'End'\n });\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\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 var $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass)).remove();\n var slides = $selector.children(\".\".concat(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(\"\".concat(params.slideClass, \" \").concat(params.slideBlankClass));\n $selector.append(blankNode);\n }\n\n slides = $selector.children(\".\".concat(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 $selector.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $selector.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(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \",.\").concat(params.slideClass, \".\").concat(params.slideBlankClass)).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor: 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.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\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[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\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 = currentHeight * 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 (base === 'window') {\n if (window.matchMedia(\"(min-width: \".concat(value, \"px)\")).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\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.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\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}","import { getWindow } from 'ssr-window';\nexport default function Resize(_ref) {\n var swiper = _ref.swiper,\n on = _ref.on,\n emit = _ref.emit;\n var window = getWindow();\n var observer = null;\n var animationFrame = null;\n\n var resizeHandler = function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n var createObserver = function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(function (entries) {\n animationFrame = window.requestAnimationFrame(function () {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref2) {\n var contentBoxSize = _ref2.contentBoxSize,\n contentRect = _ref2.contentRect,\n target = _ref2.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n var removeObserver = function removeObserver() {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n var orientationChangeHandler = function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', function () {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', function () {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var observers = [];\n var window = getWindow();\n\n var attach = function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\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 emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n var init = function init() {\n if (!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 attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n var destroy = function destroy() {\n observers.forEach(function (observer) {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n var document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = swiper.$el.children(\".\".concat(checkProps[key]))[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","export default function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\".concat(classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.'));\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: \"\".concat(pfx, \"-bullet\"),\n bulletActiveClass: \"\".concat(pfx, \"-bullet-active\"),\n modifierClass: \"\".concat(pfx, \"-\"),\n currentClass: \"\".concat(pfx, \"-current\"),\n totalClass: \"\".concat(pfx, \"-total\"),\n hiddenClass: \"\".concat(pfx, \"-hidden\"),\n progressbarFillClass: \"\".concat(pfx, \"-progressbar-fill\"),\n progressbarOppositeClass: \"\".concat(pfx, \"-progressbar-opposite\"),\n clickableClass: \"\".concat(pfx, \"-clickable\"),\n lockClass: \"\".concat(pfx, \"-lock\"),\n horizontalClass: \"\".concat(pfx, \"-horizontal\"),\n verticalClass: \"\".concat(pfx, \"-vertical\")\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n var bulletSize;\n var dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n var bulletActiveClass = swiper.params.pagination.bulletActiveClass;\n $bulletEl[position]().addClass(\"\".concat(bulletActiveClass, \"-\").concat(position))[position]().addClass(\"\".concat(bulletActiveClass, \"-\").concat(position, \"-\").concat(position));\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', \"\".concat(bulletSize * (params.dynamicMainBullets + 4), \"px\"));\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(function (suffix) {\n return \"\".concat(params.bulletActiveClass).concat(suffix);\n }).join(' '));\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(\"\".concat(params.bulletActiveClass, \"-prev\"));\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', \"\".concat(bulletsOffset, \"px\"));\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\".concat(scaleX, \") scaleY(\").concat(scaleY, \")\")).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\".concat(params.bulletElement, \" class=\\\"\").concat(params.bulletClass, \"\\\">\");\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\") + ' / ' + \"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(function (el) {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\".concat(params.modifierClass).concat(params.type, \"-dynamic\"));\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', function () {\n init();\n render();\n update();\n });\n on('activeIndexChange', function () {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', function () {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', function () {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', function () {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', function () {\n destroy();\n });\n on('enable disable', function () {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', function () {\n update();\n });\n on('click', function (_s, e) {\n var targetEl = e.target;\n var $el = swiper.pagination.$el;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render: render,\n update: update,\n init: init,\n destroy: destroy\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n 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 var proceed = function proceed() {\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 emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n };\n\n clearTimeout(timeout);\n\n if (delay === 0) {\n proceed();\n return;\n }\n\n timeout = nextTick(function () {\n proceed();\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit('autoplayPause');\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', function () {\n if (swiper.params.autoplay.enabled) {\n start();\n var document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', function (_s, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', function () {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', function () {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', function () {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause: pause,\n run: run,\n start: start,\n stop: stop\n });\n}","import { Controller } from '@hotwired/stimulus'\nimport Swiper, { Pagination, Autoplay } from 'swiper'\n// import 'swiper/swiper-bundle.min.css'\n// import 'swiper/swiper.min.css'\n\nexport default class extends Controller {\n static swiper\n static isCustom\n static values = {\n options: Object\n }\n\n connect() {\n if (this.element.id == \"carousel\") {\n this.isCustom = true\n }\n this.swiper = new Swiper(this.element, {\n ...this.defaultOptions,\n ...this.optionsValue\n })\n }\n\n disconnect() {\n this.swiper.destroy()\n this.swiper = undefined\n }\n\n get defaultOptions() {\n return {\n loop: false,\n modules: [ Pagination, Autoplay ],\n autoplay: {\n delay: 6500,\n disableOnInteraction: false,\n },\n pagination: {\n el: '.swiper-pagination',\n clickable: true,\n renderBullet: function (index, className) {\n let title = document.getElementsByClassName(\"swiper-slide\")[index].getElementsByTagName(\"h2\");\n if (title.length > 0) { \n return `${title[0].textContent}${index + 1}`;\n } else {\n return `${index + 1}`;\n }\n },\n },\n }\n }\n}","import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"navigation\"\nexport default class extends Controller {\n static menu\n\n initialize() {\n const navExpand = [].slice.call(document.querySelectorAll(\".nav-expand\"));\n const backLink = `
  • \n \n Back\n \n
  • `;\n \n navExpand.forEach((item) => {\n item\n .querySelector(\".nav-link\")\n .addEventListener(\"click\", (e) => {e.preventDefault(); item.classList.add(\"active\");});\n item\n .querySelector(\".nav-back-link\")\n .addEventListener(\"click\", (e) => item.classList.remove(\"active\"));\n });\n \n this.menu = document.getElementById(\"menuToggle\");\n this.menu.addEventListener(\"click\", this.toggleNav);\n }\n\n toggleNav() {\n document.body.classList.toggle(\"nav-is-toggled\");\n }\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) {\n return char.toUpperCase();\n });\n}\n\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\".concat(char.toLowerCase());\n });\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor2) {\n getOwnStaticArrayValues(constructor2, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\n\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor2) {\n pairs.push.apply(pairs, _toConsumableArray(getOwnStaticObjectPairs(constructor2, 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}\n\n(function () {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, this instanceof extended ? this.constructor : void 0);\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 /*#__PURE__*/function (_constructor) {\n _inherits(extended, _constructor);\n\n var _super = _createSuper(extended);\n\n function extended() {\n _classCallCheck(this, extended);\n\n return _super.apply(this, arguments);\n }\n\n return _createClass(extended);\n }(constructor);\n };\n }\n})();\n\nfunction 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 _ref;\n\n return _ref = {}, _defineProperty(_ref, \"\".concat(key, \"Class\"), {\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 \\\"\".concat(attribute, \"\\\"\"));\n }\n }\n }), _defineProperty(_ref, \"\".concat(key, \"Classes\"), {\n get: function get() {\n return this.classes.getAll(key);\n }\n }), _defineProperty(_ref, \"has\".concat(capitalize(key), \"Class\"), {\n get: function get() {\n return this.classes.has(key);\n }\n }), _ref;\n}\n\nfunction 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 _ref2;\n\n return _ref2 = {}, _defineProperty(_ref2, \"\".concat(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 \\\"\".concat(name, \"\\\" for \\\"\").concat(this.identifier, \"\\\" controller\"));\n }\n }\n }), _defineProperty(_ref2, \"\".concat(name, \"Targets\"), {\n get: function get() {\n return this.targets.findAll(name);\n }\n }), _defineProperty(_ref2, \"has\".concat(capitalize(name), \"Target\"), {\n get: function get() {\n return this.targets.has(name);\n }\n }), _ref2;\n}\n\nfunction 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 valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n\n var attributeName = _this.data.getAttributeNameForKey(valueDescriptor.key);\n\n return Object.assign(result, _defineProperty({}, attributeName, valueDescriptor));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n\nfunction propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _ref3;\n\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var key = definition.key,\n name = definition.name,\n read = definition.reader,\n write = definition.writer;\n return _ref3 = {}, _defineProperty(_ref3, 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 === void 0) {\n this.data.delete(key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }), _defineProperty(_ref3, \"has\".concat(capitalize(name)), {\n get: function get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n }\n }), _ref3;\n}\n\nfunction parseValueDefinitionPair(_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n token = _ref5[0],\n typeDefinition = _ref5[1];\n\n return valueDescriptorForTokenAndTypeDefinition(token, typeDefinition);\n}\n\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\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\nfunction parseValueTypeDefault(defaultValue) {\n switch (_typeof(defaultValue)) {\n case \"boolean\":\n return \"boolean\";\n\n case \"number\":\n return \"number\";\n\n case \"string\":\n return \"string\";\n }\n\n if (Array.isArray(defaultValue)) return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\") return \"object\";\n}\n\nfunction parseValueTypeObject(typeObject) {\n var typeFromObject = parseValueTypeConstant(typeObject.type);\n\n if (typeFromObject) {\n var defaultValueType = parseValueTypeDefault(typeObject.default);\n\n if (typeFromObject !== defaultValueType) {\n throw new Error(\"Type \\\"\".concat(typeFromObject, \"\\\" must match the type of the default value. Given default value: \\\"\").concat(typeObject.default, \"\\\" as \\\"\").concat(defaultValueType, \"\\\"\"));\n }\n\n return typeFromObject;\n }\n}\n\nfunction parseValueTypeDefinition(typeDefinition) {\n var typeFromObject = parseValueTypeObject(typeDefinition);\n var typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n var typeFromConstant = parseValueTypeConstant(typeDefinition);\n var type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type) return type;\n throw new Error(\"Unknown value type \\\"\".concat(typeDefinition, \"\\\"\"));\n}\n\nfunction defaultValueForDefinition(typeDefinition) {\n var constant = parseValueTypeConstant(typeDefinition);\n if (constant) return defaultValuesByType[constant];\n var defaultValue = typeDefinition.default;\n if (defaultValue !== void 0) return defaultValue;\n return typeDefinition;\n}\n\nfunction valueDescriptorForTokenAndTypeDefinition(token, typeDefinition) {\n var key = \"\".concat(dasherize(token), \"-value\");\n var type = parseValueTypeDefinition(typeDefinition);\n return {\n type: type,\n key: key,\n name: camelize(key),\n\n get defaultValue() {\n return defaultValueForDefinition(typeDefinition);\n },\n\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(typeDefinition) !== void 0;\n },\n\n reader: readers[type],\n writer: writers[type] || writers.default\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 Number(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 \"\".concat(value);\n}\n\nvar Controller = /*#__PURE__*/function () {\n function Controller(context) {\n _classCallCheck(this, Controller);\n\n this.context = context;\n }\n\n _createClass(Controller, [{\n key: \"application\",\n get: function get() {\n return this.context.application;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"targets\",\n get: function get() {\n return this.scope.targets;\n }\n }, {\n key: \"classes\",\n get: function get() {\n return this.scope.classes;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.scope.data;\n }\n }, {\n key: \"initialize\",\n value: function initialize() {}\n }, {\n key: \"connect\",\n value: function connect() {}\n }, {\n key: \"disconnect\",\n value: function disconnect() {}\n }, {\n key: \"dispatch\",\n value: function dispatch(eventName) {\n var _ref6 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref6$target = _ref6.target,\n target = _ref6$target === void 0 ? this.element : _ref6$target,\n _ref6$detail = _ref6.detail,\n detail = _ref6$detail === void 0 ? {} : _ref6$detail,\n _ref6$prefix = _ref6.prefix,\n prefix = _ref6$prefix === void 0 ? this.identifier : _ref6$prefix,\n _ref6$bubbles = _ref6.bubbles,\n bubbles = _ref6$bubbles === void 0 ? true : _ref6$bubbles,\n _ref6$cancelable = _ref6.cancelable,\n cancelable = _ref6$cancelable === void 0 ? true : _ref6$cancelable;\n\n var type = prefix ? \"\".concat(prefix, \":\").concat(eventName) : eventName;\n var event = new CustomEvent(type, {\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n });\n target.dispatchEvent(event);\n return event;\n }\n }], [{\n key: \"shouldLoad\",\n get: function get() {\n return true;\n }\n }]);\n\n return Controller;\n}();\n\nController.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\nController.targets = [];\nController.values = {};\n\nvar src_default = /*#__PURE__*/function (_Controller) {\n _inherits(src_default, _Controller);\n\n var _super2 = _createSuper(src_default);\n\n function src_default() {\n _classCallCheck(this, src_default);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(src_default, [{\n key: \"add\",\n value: function add(e) {\n e.preventDefault();\n var content = this.templateTarget.innerHTML.replace(/NEW_RECORD/g, new Date().getTime().toString());\n this.targetTarget.insertAdjacentHTML(\"beforebegin\", content);\n }\n }, {\n key: \"remove\",\n value: function remove(e) {\n e.preventDefault();\n var wrapper = e.target.closest(this.wrapperSelectorValue);\n\n if (wrapper.dataset.newRecord === \"true\") {\n wrapper.remove();\n } else {\n wrapper.style.display = \"none\";\n var input = wrapper.querySelector(\"input[name*='_destroy']\");\n input.value = \"1\";\n }\n }\n }]);\n\n return src_default;\n}(Controller);\n\nsrc_default.targets = [\"target\", \"template\"];\nsrc_default.values = {\n wrapperSelector: {\n type: String,\n default: \".nested-form-wrapper\"\n }\n};\nexport { src_default as default };","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nexport var FetchResponse = /*#__PURE__*/function () {\n function FetchResponse(response) {\n _classCallCheck(this, FetchResponse);\n\n this.response = response;\n }\n\n _createClass(FetchResponse, [{\n key: \"statusCode\",\n get: function get() {\n return this.response.status;\n }\n }, {\n key: \"redirected\",\n get: function get() {\n return this.response.redirected;\n }\n }, {\n key: \"ok\",\n get: function get() {\n return this.response.ok;\n }\n }, {\n key: \"unauthenticated\",\n get: function get() {\n return this.statusCode === 401;\n }\n }, {\n key: \"unprocessableEntity\",\n get: function get() {\n return this.statusCode === 422;\n }\n }, {\n key: \"authenticationURL\",\n get: function get() {\n return this.response.headers.get('WWW-Authenticate');\n }\n }, {\n key: \"contentType\",\n get: function get() {\n var contentType = this.response.headers.get('Content-Type') || '';\n return contentType.replace(/;.*$/, '');\n }\n }, {\n key: \"headers\",\n get: function get() {\n return this.response.headers;\n }\n }, {\n key: \"html\",\n get: function get() {\n if (this.contentType.match(/^(application|text)\\/(html|xhtml\\+xml)$/)) {\n return this.text;\n }\n\n return Promise.reject(new Error(\"Expected an HTML response but got \\\"\".concat(this.contentType, \"\\\" instead\")));\n }\n }, {\n key: \"json\",\n get: function get() {\n if (this.contentType.match(/^application\\/.*json$/)) {\n return this.responseJson || (this.responseJson = this.response.json());\n }\n\n return Promise.reject(new Error(\"Expected a JSON response but got \\\"\".concat(this.contentType, \"\\\" instead\")));\n }\n }, {\n key: \"text\",\n get: function get() {\n return this.responseText || (this.responseText = this.response.text());\n }\n }, {\n key: \"isTurboStream\",\n get: function get() {\n return this.contentType.match(/^text\\/vnd\\.turbo-stream\\.html/);\n }\n }, {\n key: \"renderTurboStream\",\n value: function () {\n var _renderTurboStream = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this.isTurboStream) {\n _context.next = 13;\n break;\n }\n\n if (!window.Turbo) {\n _context.next = 10;\n break;\n }\n\n _context.t0 = window.Turbo;\n _context.next = 5;\n return this.text;\n\n case 5:\n _context.t1 = _context.sent;\n _context.next = 8;\n return _context.t0.renderStreamMessage.call(_context.t0, _context.t1);\n\n case 8:\n _context.next = 11;\n break;\n\n case 10:\n console.warn('You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js');\n\n case 11:\n _context.next = 14;\n break;\n\n case 13:\n return _context.abrupt(\"return\", Promise.reject(new Error(\"Expected a Turbo Stream response but got \\\"\".concat(this.contentType, \"\\\" instead\"))));\n\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function renderTurboStream() {\n return _renderTurboStream.apply(this, arguments);\n }\n\n return renderTurboStream;\n }()\n }]);\n\n return FetchResponse;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nexport var RequestInterceptor = /*#__PURE__*/function () {\n function RequestInterceptor() {\n _classCallCheck(this, RequestInterceptor);\n }\n\n _createClass(RequestInterceptor, null, [{\n key: \"register\",\n value: function register(interceptor) {\n this.interceptor = interceptor;\n }\n }, {\n key: \"get\",\n value: function get() {\n return this.interceptor;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.interceptor = undefined;\n }\n }]);\n\n return RequestInterceptor;\n}();","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport function getCookie(name) {\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var prefix = \"\".concat(encodeURIComponent(name), \"=\");\n var cookie = cookies.find(function (cookie) {\n return cookie.startsWith(prefix);\n });\n\n if (cookie) {\n var value = cookie.split('=').slice(1).join('=');\n\n if (value) {\n return decodeURIComponent(value);\n }\n }\n}\nexport function compact(object) {\n var result = {};\n\n for (var key in object) {\n var value = object[key];\n\n if (value !== undefined) {\n result[key] = value;\n }\n }\n\n return result;\n}\nexport function metaContent(name) {\n var element = document.head.querySelector(\"meta[name=\\\"\".concat(name, \"\\\"]\"));\n return element && element.content;\n}\nexport function stringEntriesFromFormData(formData) {\n return _toConsumableArray(formData).reduce(function (entries, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n name = _ref2[0],\n value = _ref2[1];\n\n return entries.concat(typeof value === 'string' ? [[name, value]] : []);\n }, []);\n}\nexport function mergeEntries(searchParams, entries) {\n var _iterator = _createForOfIteratorHelper(entries),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ref5 = _step.value;\n\n var _ref4 = _slicedToArray(_ref5, 2);\n\n var name = _ref4[0];\n var value = _ref4[1];\n if (value instanceof window.File) continue;\n\n if (searchParams.has(name)) {\n searchParams.delete(name);\n searchParams.set(name, value);\n } else {\n searchParams.append(name, value);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { FetchResponse } from './fetch_response';\nimport { RequestInterceptor } from './request_interceptor';\nimport { getCookie, compact, metaContent, stringEntriesFromFormData, mergeEntries } from './lib/utils';\nexport var FetchRequest = /*#__PURE__*/function () {\n function FetchRequest(method, url) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, FetchRequest);\n\n this.method = method;\n this.options = options;\n this.originalUrl = url.toString();\n }\n\n _createClass(FetchRequest, [{\n key: \"perform\",\n value: function () {\n var _perform = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var requestInterceptor, response;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n requestInterceptor = RequestInterceptor.get();\n\n if (!requestInterceptor) {\n _context.next = 5;\n break;\n }\n\n _context.next = 5;\n return requestInterceptor(this);\n\n case 5:\n _context.next = 10;\n break;\n\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n console.error(_context.t0);\n\n case 10:\n _context.t1 = FetchResponse;\n _context.next = 13;\n return window.fetch(this.url, this.fetchOptions);\n\n case 13:\n _context.t2 = _context.sent;\n response = new _context.t1(_context.t2);\n\n if (!(response.unauthenticated && response.authenticationURL)) {\n _context.next = 17;\n break;\n }\n\n return _context.abrupt(\"return\", Promise.reject(window.location.href = response.authenticationURL));\n\n case 17:\n if (!(response.ok && response.isTurboStream)) {\n _context.next = 20;\n break;\n }\n\n _context.next = 20;\n return response.renderTurboStream();\n\n case 20:\n return _context.abrupt(\"return\", response);\n\n case 21:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[0, 7]]);\n }));\n\n function perform() {\n return _perform.apply(this, arguments);\n }\n\n return perform;\n }()\n }, {\n key: \"addHeader\",\n value: function addHeader(key, value) {\n var headers = this.additionalHeaders;\n headers[key] = value;\n this.options.headers = headers;\n }\n }, {\n key: \"fetchOptions\",\n get: function get() {\n return {\n method: this.method.toUpperCase(),\n headers: this.headers,\n body: this.formattedBody,\n signal: this.signal,\n credentials: 'same-origin',\n redirect: this.redirect\n };\n }\n }, {\n key: \"headers\",\n get: function get() {\n return compact(Object.assign({\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-CSRF-Token': this.csrfToken,\n 'Content-Type': this.contentType,\n Accept: this.accept\n }, this.additionalHeaders));\n }\n }, {\n key: \"csrfToken\",\n get: function get() {\n return getCookie(metaContent('csrf-param')) || metaContent('csrf-token');\n }\n }, {\n key: \"contentType\",\n get: function get() {\n if (this.options.contentType) {\n return this.options.contentType;\n } else if (this.body == null || this.body instanceof window.FormData) {\n return undefined;\n } else if (this.body instanceof window.File) {\n return this.body.type;\n }\n\n return 'application/json';\n }\n }, {\n key: \"accept\",\n get: function get() {\n switch (this.responseKind) {\n case 'html':\n return 'text/html, application/xhtml+xml';\n\n case 'turbo-stream':\n return 'text/vnd.turbo-stream.html, text/html, application/xhtml+xml';\n\n case 'json':\n return 'application/json, application/vnd.api+json';\n\n default:\n return '*/*';\n }\n }\n }, {\n key: \"body\",\n get: function get() {\n return this.options.body;\n }\n }, {\n key: \"query\",\n get: function get() {\n var originalQuery = (this.originalUrl.split('?')[1] || '').split('#')[0];\n var params = new URLSearchParams(originalQuery);\n var requestQuery = this.options.query;\n\n if (requestQuery instanceof window.FormData) {\n requestQuery = stringEntriesFromFormData(requestQuery);\n } else if (requestQuery instanceof window.URLSearchParams) {\n requestQuery = requestQuery.entries();\n } else {\n requestQuery = Object.entries(requestQuery || {});\n }\n\n mergeEntries(params, requestQuery);\n var query = params.toString();\n return query.length > 0 ? \"?\".concat(query) : '';\n }\n }, {\n key: \"url\",\n get: function get() {\n return this.originalUrl.split('?')[0].split('#')[0] + this.query;\n }\n }, {\n key: \"responseKind\",\n get: function get() {\n return this.options.responseKind || 'html';\n }\n }, {\n key: \"signal\",\n get: function get() {\n return this.options.signal;\n }\n }, {\n key: \"redirect\",\n get: function get() {\n return this.options.redirect || 'follow';\n }\n }, {\n key: \"additionalHeaders\",\n get: function get() {\n return this.options.headers || {};\n }\n }, {\n key: \"formattedBody\",\n get: function get() {\n var bodyIsAString = Object.prototype.toString.call(this.body) === '[object String]';\n var contentTypeIsJson = this.headers['Content-Type'] === 'application/json';\n\n if (contentTypeIsJson && !bodyIsAString) {\n return JSON.stringify(this.body);\n }\n\n return this.body;\n }\n }]);\n\n return FetchRequest;\n}();","import NestedForm from 'stimulus-rails-nested-form'\nimport { FetchRequest, get } from \"@rails/request.js\"\n\nfunction withProgress(request) {\n $('button[type=submit]').attr('disabled', 'disabled');\n $('button[type=submit]').addClass('disabled');\n // showProgressBar()\n\n return request.then((response) => {\n // hideProgressBar()\n $('button[type=submit]').removeAttr('disabled');\n $('button[type=submit]').removeClass('disabled');\n return response\n })\n}\n\n\nexport default class extends NestedForm {\n static targets = [\"select\", \"template\", \"target\"]\n static values = {\n url: String,\n param: String\n }\n \n connect () {\n this.form = document.getElementById(\"booking_form\")\n this.bookingSpots = document.getElementById(\"booking_num_spots\")\n this.maxSpotIndex = this.bookingSpots.options.length - 1\n this.spotIndex = this.bookingSpots.selectedIndex\n }\n handleChange = async (event) => {\n this.syncSpots()\n let response = this.makeRequest() \n // if (response.ok) { console.log(\"yay\") }\n }\n add(event) {\n if (this.spotIndex < this.maxSpotIndex) { \n super.add(event)\n this.spotIndex += 1 \n this.bookingSpots.selectedIndex = this.spotIndex\n this.makeRequest()\n } else { \n // TODO: show floating notification banner with message \"no more spots\" or something\n let btn = document.getElementById(\"add_button\");\n btn.classList.add('shake-animation');\n setTimeout(function(){\n btn.classList.remove('shake-animation');\n }, 500);\n }\n \n }\n remove(event) {\n super.remove(event)\n if (this.spotIndex > 0) { this.spotIndex -= 1 }\n this.bookingSpots.selectedIndex = this.spotIndex\n this.makeRequest()\n }\n\n makeRequest = async () => {\n const request = new FetchRequest(\"post\", this.urlValue, {\n responseKind: \"turbo-stream\",\n body: new FormData(this.form)\n })\n return await withProgress(request.perform())\n }\n \n syncSpots() {\n let nestedForms = document.getElementsByClassName(\"nested-form-wrapper\")\n if (this.spotIndex > this.bookingSpots.selectedIndex) {\n for(let i=this.spotIndex; i>this.bookingSpots.selectedIndex; i--) {\n // remove\n // console.log(\"remove loop \" + i);\n let wrapper = nestedForms[nestedForms.length -1] \n if (wrapper.dataset.newRecord === 'true') {\n wrapper.remove()\n } else {\n wrapper.style.display = 'none'\n const input = wrapper.querySelector(\"input[name*='_destroy']\")\n input.value = '1'\n }\n }\n } else if (this.spotIndex < this.bookingSpots.selectedIndex) { \n // console.log(\"add\");\n for(let i=this.spotIndex; i {\n $('button[type=submit]').removeAttr('disabled');\n $('button[type=submit]').removeClass('disabled');\n return response\n })\n}\n\n// Connects to data-controller=\"state-select\"\nexport default class extends Controller {\n static values = {\n url: String,\n param: String\n }\n\n handleChange = async () => {\n const request = new FetchRequest(\"get\", this.urlValue, {\n responseKind: \"turbo-stream\",\n query: {\n country: $('select#booking_country :selected').val()\n }\n })\n return await withProgress(request.perform())\n }\n}\n","// This file is auto-generated by ./bin/rails stimulus:manifest:update\n// Run that command whenever you add a new controller or create them with\n// ./bin/rails generate stimulus controllerName\n\nimport { application } from \"./application\"\n\nimport BannerController from \"./banner_controller.js\"\napplication.register(\"banner\", BannerController)\n\nimport CarouselController from \"./carousel_controller.js\"\napplication.register(\"carousel\", CarouselController)\n\nimport NavigationController from \"./navigation_controller.js\"\napplication.register(\"navigation\", NavigationController)\n\nimport RegistrationController from \"./registration_controller.js\"\napplication.register(\"registration\", RegistrationController)\n\nimport StateSelectController from \"./state_select_controller.js\"\napplication.register(\"state-select\", StateSelectController)\n\n// import LightboxController from \"./lightbox_controller.js\"\n// application.register('lightbox', LightboxController)","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var _templateObject, _templateObject2;\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/*\nTurbo 7.1.0\nCopyright © 2021 Basecamp, LLC\n */\n(function () {\n if (window.Reflect === undefined || window.customElements === undefined || window.customElements.polyfillWrapFlushCallback) {\n return;\n }\n\n var BuiltInHTMLElement = HTMLElement;\n var wrapperForTheName = {\n 'HTMLElement': function HTMLElement() {\n return Reflect.construct(BuiltInHTMLElement, [], this.constructor);\n }\n };\n window.HTMLElement = wrapperForTheName['HTMLElement'];\n HTMLElement.prototype = BuiltInHTMLElement.prototype;\n HTMLElement.prototype.constructor = HTMLElement;\n Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);\n})();\n/**\n * The MIT License (MIT)\n * \n * Copyright (c) 2019 Javan Makhmali\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n\n(function (prototype) {\n if (typeof prototype.requestSubmit == \"function\") return;\n\n prototype.requestSubmit = function (submitter) {\n if (submitter) {\n validateSubmitter(submitter, this);\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n submitter.type = \"submit\";\n submitter.hidden = true;\n this.appendChild(submitter);\n submitter.click();\n this.removeChild(submitter);\n }\n };\n\n function validateSubmitter(submitter, form) {\n submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\");\n submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\");\n submitter.form == form || raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n }\n\n function raise(errorConstructor, message, name) {\n throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name);\n }\n})(HTMLFormElement.prototype);\n\nvar submittersByForm = new WeakMap();\n\nfunction findSubmitterFromClickTarget(target) {\n var element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n var candidate = element ? element.closest(\"input, button\") : null;\n return (candidate === null || candidate === void 0 ? void 0 : candidate.type) == \"submit\" ? candidate : null;\n}\n\nfunction clickCaptured(event) {\n var submitter = findSubmitterFromClickTarget(event.target);\n\n if (submitter && submitter.form) {\n submittersByForm.set(submitter.form, submitter);\n }\n}\n\n(function () {\n if (\"submitter\" in Event.prototype) return;\n var prototype;\n\n if (\"SubmitEvent\" in window && /Apple Computer/.test(navigator.vendor)) {\n prototype = window.SubmitEvent.prototype;\n } else if (\"SubmitEvent\" in window) {\n return;\n } else {\n prototype = window.Event.prototype;\n }\n\n addEventListener(\"click\", clickCaptured, true);\n Object.defineProperty(prototype, \"submitter\", {\n get: function get() {\n if (this.type == \"submit\" && this.target instanceof HTMLFormElement) {\n return submittersByForm.get(this.target);\n }\n }\n });\n})();\n\nvar FrameLoadingStyle;\n\n(function (FrameLoadingStyle) {\n FrameLoadingStyle[\"eager\"] = \"eager\";\n FrameLoadingStyle[\"lazy\"] = \"lazy\";\n})(FrameLoadingStyle || (FrameLoadingStyle = {}));\n\nvar FrameElement = /*#__PURE__*/function (_HTMLElement) {\n _inherits(FrameElement, _HTMLElement);\n\n var _super = _createSuper(FrameElement);\n\n function FrameElement() {\n var _this;\n\n _classCallCheck(this, FrameElement);\n\n _this = _super.call(this);\n _this.loaded = Promise.resolve();\n _this.delegate = new FrameElement.delegateConstructor(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(FrameElement, [{\n key: \"connectedCallback\",\n value: function connectedCallback() {\n this.delegate.connect();\n }\n }, {\n key: \"disconnectedCallback\",\n value: function disconnectedCallback() {\n this.delegate.disconnect();\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var src = this.src;\n this.src = null;\n this.src = src;\n }\n }, {\n key: \"attributeChangedCallback\",\n value: function attributeChangedCallback(name) {\n if (name == \"loading\") {\n this.delegate.loadingStyleChanged();\n } else if (name == \"src\") {\n this.delegate.sourceURLChanged();\n } else {\n this.delegate.disabledChanged();\n }\n }\n }, {\n key: \"src\",\n get: function get() {\n return this.getAttribute(\"src\");\n },\n set: function set(value) {\n if (value) {\n this.setAttribute(\"src\", value);\n } else {\n this.removeAttribute(\"src\");\n }\n }\n }, {\n key: \"loading\",\n get: function get() {\n return frameLoadingStyleFromString(this.getAttribute(\"loading\") || \"\");\n },\n set: function set(value) {\n if (value) {\n this.setAttribute(\"loading\", value);\n } else {\n this.removeAttribute(\"loading\");\n }\n }\n }, {\n key: \"disabled\",\n get: function get() {\n return this.hasAttribute(\"disabled\");\n },\n set: function set(value) {\n if (value) {\n this.setAttribute(\"disabled\", \"\");\n } else {\n this.removeAttribute(\"disabled\");\n }\n }\n }, {\n key: \"autoscroll\",\n get: function get() {\n return this.hasAttribute(\"autoscroll\");\n },\n set: function set(value) {\n if (value) {\n this.setAttribute(\"autoscroll\", \"\");\n } else {\n this.removeAttribute(\"autoscroll\");\n }\n }\n }, {\n key: \"complete\",\n get: function get() {\n return !this.delegate.isLoading;\n }\n }, {\n key: \"isActive\",\n get: function get() {\n return this.ownerDocument === document && !this.isPreview;\n }\n }, {\n key: \"isPreview\",\n get: function get() {\n var _a, _b;\n\n return (_b = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.hasAttribute(\"data-turbo-preview\");\n }\n }], [{\n key: \"observedAttributes\",\n get: function get() {\n return [\"disabled\", \"loading\", \"src\"];\n }\n }]);\n\n return FrameElement;\n}( /*#__PURE__*/_wrapNativeSuper(HTMLElement));\n\nfunction frameLoadingStyleFromString(style) {\n switch (style.toLowerCase()) {\n case \"lazy\":\n return FrameLoadingStyle.lazy;\n\n default:\n return FrameLoadingStyle.eager;\n }\n}\n\nfunction expandURL(locatable) {\n return new URL(locatable.toString(), document.baseURI);\n}\n\nfunction getAnchor(url) {\n var anchorMatch;\n\n if (url.hash) {\n return url.hash.slice(1);\n } else if (anchorMatch = url.href.match(/#(.*)$/)) {\n return anchorMatch[1];\n }\n}\n\nfunction getAction(form, submitter) {\n var action = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formaction\")) || form.getAttribute(\"action\") || form.action;\n return expandURL(action);\n}\n\nfunction getExtension(url) {\n return (getLastPathComponent(url).match(/\\.[^.]*$/) || [])[0] || \"\";\n}\n\nfunction isHTML(url) {\n return !!getExtension(url).match(/^(?:|\\.(?:htm|html|xhtml))$/);\n}\n\nfunction isPrefixedBy(baseURL, url) {\n var prefix = getPrefix(url);\n return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix);\n}\n\nfunction locationIsVisitable(location, rootLocation) {\n return isPrefixedBy(location, rootLocation) && isHTML(location);\n}\n\nfunction getRequestURL(url) {\n var anchor = getAnchor(url);\n return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href;\n}\n\nfunction toCacheKey(url) {\n return getRequestURL(url);\n}\n\nfunction urlsAreEqual(left, right) {\n return expandURL(left).href == expandURL(right).href;\n}\n\nfunction getPathComponents(url) {\n return url.pathname.split(\"/\").slice(1);\n}\n\nfunction getLastPathComponent(url) {\n return getPathComponents(url).slice(-1)[0];\n}\n\nfunction getPrefix(url) {\n return addTrailingSlash(url.origin + url.pathname);\n}\n\nfunction addTrailingSlash(value) {\n return value.endsWith(\"/\") ? value : value + \"/\";\n}\n\nvar FetchResponse = /*#__PURE__*/function () {\n function FetchResponse(response) {\n _classCallCheck(this, FetchResponse);\n\n this.response = response;\n }\n\n _createClass(FetchResponse, [{\n key: \"succeeded\",\n get: function get() {\n return this.response.ok;\n }\n }, {\n key: \"failed\",\n get: function get() {\n return !this.succeeded;\n }\n }, {\n key: \"clientError\",\n get: function get() {\n return this.statusCode >= 400 && this.statusCode <= 499;\n }\n }, {\n key: \"serverError\",\n get: function get() {\n return this.statusCode >= 500 && this.statusCode <= 599;\n }\n }, {\n key: \"redirected\",\n get: function get() {\n return this.response.redirected;\n }\n }, {\n key: \"location\",\n get: function get() {\n return expandURL(this.response.url);\n }\n }, {\n key: \"isHTML\",\n get: function get() {\n return this.contentType && this.contentType.match(/^(?:text\\/([^\\s;,]+\\b)?html|application\\/xhtml\\+xml)\\b/);\n }\n }, {\n key: \"statusCode\",\n get: function get() {\n return this.response.status;\n }\n }, {\n key: \"contentType\",\n get: function get() {\n return this.header(\"Content-Type\");\n }\n }, {\n key: \"responseText\",\n get: function get() {\n return this.response.clone().text();\n }\n }, {\n key: \"responseHTML\",\n get: function get() {\n if (this.isHTML) {\n return this.response.clone().text();\n } else {\n return Promise.resolve(undefined);\n }\n }\n }, {\n key: \"header\",\n value: function header(name) {\n return this.response.headers.get(name);\n }\n }]);\n\n return FetchResponse;\n}();\n\nfunction dispatch(eventName) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n target = _ref.target,\n cancelable = _ref.cancelable,\n detail = _ref.detail;\n\n var event = new CustomEvent(eventName, {\n cancelable: cancelable,\n bubbles: true,\n detail: detail\n });\n\n if (target && target.isConnected) {\n target.dispatchEvent(event);\n } else {\n document.documentElement.dispatchEvent(event);\n }\n\n return event;\n}\n\nfunction nextAnimationFrame() {\n return new Promise(function (resolve) {\n return requestAnimationFrame(function () {\n return resolve();\n });\n });\n}\n\nfunction nextEventLoopTick() {\n return new Promise(function (resolve) {\n return setTimeout(function () {\n return resolve();\n }, 0);\n });\n}\n\nfunction nextMicrotask() {\n return Promise.resolve();\n}\n\nfunction parseHTMLDocument() {\n var html = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return new DOMParser().parseFromString(html, \"text/html\");\n}\n\nfunction unindent(strings) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n var lines = interpolate(strings, values).replace(/^\\n/, \"\").split(\"\\n\");\n var match = lines[0].match(/^\\s+/);\n var indent = match ? match[0].length : 0;\n return lines.map(function (line) {\n return line.slice(indent);\n }).join(\"\\n\");\n}\n\nfunction interpolate(strings, values) {\n return strings.reduce(function (result, string, i) {\n var value = values[i] == undefined ? \"\" : values[i];\n return result + string + value;\n }, \"\");\n}\n\nfunction uuid() {\n return Array.apply(null, {\n length: 36\n }).map(function (_, i) {\n if (i == 8 || i == 13 || i == 18 || i == 23) {\n return \"-\";\n } else if (i == 14) {\n return \"4\";\n } else if (i == 19) {\n return (Math.floor(Math.random() * 4) + 8).toString(16);\n } else {\n return Math.floor(Math.random() * 15).toString(16);\n }\n }).join(\"\");\n}\n\nfunction getAttribute(attributeName) {\n for (var _len2 = arguments.length, elements = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n elements[_key2 - 1] = arguments[_key2];\n }\n\n var _iterator = _createForOfIteratorHelper(elements.map(function (element) {\n return element === null || element === void 0 ? void 0 : element.getAttribute(attributeName);\n })),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var value = _step.value;\n if (typeof value == \"string\") return value;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return null;\n}\n\nfunction markAsBusy() {\n for (var _len3 = arguments.length, elements = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n elements[_key3] = arguments[_key3];\n }\n\n for (var _i = 0, _elements = elements; _i < _elements.length; _i++) {\n var element = _elements[_i];\n\n if (element.localName == \"turbo-frame\") {\n element.setAttribute(\"busy\", \"\");\n }\n\n element.setAttribute(\"aria-busy\", \"true\");\n }\n}\n\nfunction clearBusyState() {\n for (var _len4 = arguments.length, elements = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n elements[_key4] = arguments[_key4];\n }\n\n for (var _i2 = 0, _elements2 = elements; _i2 < _elements2.length; _i2++) {\n var element = _elements2[_i2];\n\n if (element.localName == \"turbo-frame\") {\n element.removeAttribute(\"busy\");\n }\n\n element.removeAttribute(\"aria-busy\");\n }\n}\n\nvar FetchMethod;\n\n(function (FetchMethod) {\n FetchMethod[FetchMethod[\"get\"] = 0] = \"get\";\n FetchMethod[FetchMethod[\"post\"] = 1] = \"post\";\n FetchMethod[FetchMethod[\"put\"] = 2] = \"put\";\n FetchMethod[FetchMethod[\"patch\"] = 3] = \"patch\";\n FetchMethod[FetchMethod[\"delete\"] = 4] = \"delete\";\n})(FetchMethod || (FetchMethod = {}));\n\nfunction fetchMethodFromString(method) {\n switch (method.toLowerCase()) {\n case \"get\":\n return FetchMethod.get;\n\n case \"post\":\n return FetchMethod.post;\n\n case \"put\":\n return FetchMethod.put;\n\n case \"patch\":\n return FetchMethod.patch;\n\n case \"delete\":\n return FetchMethod.delete;\n }\n}\n\nvar FetchRequest = /*#__PURE__*/function () {\n function FetchRequest(delegate, method, location) {\n var body = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new URLSearchParams();\n var target = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n\n _classCallCheck(this, FetchRequest);\n\n this.abortController = new AbortController();\n\n this.resolveRequestPromise = function (value) {};\n\n this.delegate = delegate;\n this.method = method;\n this.headers = this.defaultHeaders;\n this.body = body;\n this.url = location;\n this.target = target;\n }\n\n _createClass(FetchRequest, [{\n key: \"location\",\n get: function get() {\n return this.url;\n }\n }, {\n key: \"params\",\n get: function get() {\n return this.url.searchParams;\n }\n }, {\n key: \"entries\",\n get: function get() {\n return this.body ? Array.from(this.body.entries()) : [];\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n this.abortController.abort();\n }\n }, {\n key: \"perform\",\n value: function () {\n var _perform = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var _a, _b, fetchOptions, response;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n fetchOptions = this.fetchOptions;\n (_b = (_a = this.delegate).prepareHeadersForRequest) === null || _b === void 0 ? void 0 : _b.call(_a, this.headers, this);\n _context.next = 4;\n return this.allowRequestToBeIntercepted(fetchOptions);\n\n case 4:\n _context.prev = 4;\n this.delegate.requestStarted(this);\n _context.next = 8;\n return fetch(this.url.href, fetchOptions);\n\n case 8:\n response = _context.sent;\n _context.next = 11;\n return this.receive(response);\n\n case 11:\n return _context.abrupt(\"return\", _context.sent);\n\n case 14:\n _context.prev = 14;\n _context.t0 = _context[\"catch\"](4);\n\n if (!(_context.t0.name !== 'AbortError')) {\n _context.next = 19;\n break;\n }\n\n this.delegate.requestErrored(this, _context.t0);\n throw _context.t0;\n\n case 19:\n _context.prev = 19;\n this.delegate.requestFinished(this);\n return _context.finish(19);\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[4, 14, 19, 22]]);\n }));\n\n function perform() {\n return _perform.apply(this, arguments);\n }\n\n return perform;\n }()\n }, {\n key: \"receive\",\n value: function () {\n var _receive = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(response) {\n var fetchResponse, event;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n fetchResponse = new FetchResponse(response);\n event = dispatch(\"turbo:before-fetch-response\", {\n cancelable: true,\n detail: {\n fetchResponse: fetchResponse\n },\n target: this.target\n });\n\n if (event.defaultPrevented) {\n this.delegate.requestPreventedHandlingResponse(this, fetchResponse);\n } else if (fetchResponse.succeeded) {\n this.delegate.requestSucceededWithResponse(this, fetchResponse);\n } else {\n this.delegate.requestFailedWithResponse(this, fetchResponse);\n }\n\n return _context2.abrupt(\"return\", fetchResponse);\n\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function receive(_x) {\n return _receive.apply(this, arguments);\n }\n\n return receive;\n }()\n }, {\n key: \"fetchOptions\",\n get: function get() {\n var _a;\n\n return {\n method: FetchMethod[this.method].toUpperCase(),\n credentials: \"same-origin\",\n headers: this.headers,\n redirect: \"follow\",\n body: this.isIdempotent ? null : this.body,\n signal: this.abortSignal,\n referrer: (_a = this.delegate.referrer) === null || _a === void 0 ? void 0 : _a.href\n };\n }\n }, {\n key: \"defaultHeaders\",\n get: function get() {\n return {\n \"Accept\": \"text/html, application/xhtml+xml\"\n };\n }\n }, {\n key: \"isIdempotent\",\n get: function get() {\n return this.method == FetchMethod.get;\n }\n }, {\n key: \"abortSignal\",\n get: function get() {\n return this.abortController.signal;\n }\n }, {\n key: \"allowRequestToBeIntercepted\",\n value: function () {\n var _allowRequestToBeIntercepted = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(fetchOptions) {\n var _this2 = this;\n\n var requestInterception, event;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n requestInterception = new Promise(function (resolve) {\n return _this2.resolveRequestPromise = resolve;\n });\n event = dispatch(\"turbo:before-fetch-request\", {\n cancelable: true,\n detail: {\n fetchOptions: fetchOptions,\n url: this.url,\n resume: this.resolveRequestPromise\n },\n target: this.target\n });\n\n if (!event.defaultPrevented) {\n _context3.next = 5;\n break;\n }\n\n _context3.next = 5;\n return requestInterception;\n\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function allowRequestToBeIntercepted(_x2) {\n return _allowRequestToBeIntercepted.apply(this, arguments);\n }\n\n return allowRequestToBeIntercepted;\n }()\n }]);\n\n return FetchRequest;\n}();\n\nvar AppearanceObserver = /*#__PURE__*/function () {\n function AppearanceObserver(delegate, element) {\n var _this3 = this;\n\n _classCallCheck(this, AppearanceObserver);\n\n this.started = false;\n\n this.intersect = function (entries) {\n var lastEntry = entries.slice(-1)[0];\n\n if (lastEntry === null || lastEntry === void 0 ? void 0 : lastEntry.isIntersecting) {\n _this3.delegate.elementAppearedInViewport(_this3.element);\n }\n };\n\n this.delegate = delegate;\n this.element = element;\n this.intersectionObserver = new IntersectionObserver(this.intersect);\n }\n\n _createClass(AppearanceObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.intersectionObserver.observe(this.element);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.started = false;\n this.intersectionObserver.unobserve(this.element);\n }\n }\n }]);\n\n return AppearanceObserver;\n}();\n\nvar StreamMessage = /*#__PURE__*/function () {\n function StreamMessage(html) {\n _classCallCheck(this, StreamMessage);\n\n this.templateElement = document.createElement(\"template\");\n this.templateElement.innerHTML = html;\n }\n\n _createClass(StreamMessage, [{\n key: \"fragment\",\n get: function get() {\n var fragment = document.createDocumentFragment();\n\n var _iterator2 = _createForOfIteratorHelper(this.foreignElements),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var element = _step2.value;\n fragment.appendChild(document.importNode(element, true));\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return fragment;\n }\n }, {\n key: \"foreignElements\",\n get: function get() {\n return this.templateChildren.reduce(function (streamElements, child) {\n if (child.tagName.toLowerCase() == \"turbo-stream\") {\n return [].concat(_toConsumableArray(streamElements), [child]);\n } else {\n return streamElements;\n }\n }, []);\n }\n }, {\n key: \"templateChildren\",\n get: function get() {\n return Array.from(this.templateElement.content.children);\n }\n }], [{\n key: \"wrap\",\n value: function wrap(message) {\n if (typeof message == \"string\") {\n return new this(message);\n } else {\n return message;\n }\n }\n }]);\n\n return StreamMessage;\n}();\n\nStreamMessage.contentType = \"text/vnd.turbo-stream.html\";\nvar FormSubmissionState;\n\n(function (FormSubmissionState) {\n FormSubmissionState[FormSubmissionState[\"initialized\"] = 0] = \"initialized\";\n FormSubmissionState[FormSubmissionState[\"requesting\"] = 1] = \"requesting\";\n FormSubmissionState[FormSubmissionState[\"waiting\"] = 2] = \"waiting\";\n FormSubmissionState[FormSubmissionState[\"receiving\"] = 3] = \"receiving\";\n FormSubmissionState[FormSubmissionState[\"stopping\"] = 4] = \"stopping\";\n FormSubmissionState[FormSubmissionState[\"stopped\"] = 5] = \"stopped\";\n})(FormSubmissionState || (FormSubmissionState = {}));\n\nvar FormEnctype;\n\n(function (FormEnctype) {\n FormEnctype[\"urlEncoded\"] = \"application/x-www-form-urlencoded\";\n FormEnctype[\"multipart\"] = \"multipart/form-data\";\n FormEnctype[\"plain\"] = \"text/plain\";\n})(FormEnctype || (FormEnctype = {}));\n\nfunction formEnctypeFromString(encoding) {\n switch (encoding.toLowerCase()) {\n case FormEnctype.multipart:\n return FormEnctype.multipart;\n\n case FormEnctype.plain:\n return FormEnctype.plain;\n\n default:\n return FormEnctype.urlEncoded;\n }\n}\n\nvar FormSubmission = /*#__PURE__*/function () {\n function FormSubmission(delegate, formElement, submitter) {\n var mustRedirect = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n _classCallCheck(this, FormSubmission);\n\n this.state = FormSubmissionState.initialized;\n this.delegate = delegate;\n this.formElement = formElement;\n this.submitter = submitter;\n this.formData = buildFormData(formElement, submitter);\n this.location = expandURL(this.action);\n\n if (this.method == FetchMethod.get) {\n mergeFormDataEntries(this.location, _toConsumableArray(this.body.entries()));\n }\n\n this.fetchRequest = new FetchRequest(this, this.method, this.location, this.body, this.formElement);\n this.mustRedirect = mustRedirect;\n }\n\n _createClass(FormSubmission, [{\n key: \"method\",\n get: function get() {\n var _a;\n\n var method = ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formmethod\")) || this.formElement.getAttribute(\"method\") || \"\";\n return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get;\n }\n }, {\n key: \"action\",\n get: function get() {\n var _a;\n\n var formElementAction = typeof this.formElement.action === 'string' ? this.formElement.action : null;\n return ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formaction\")) || this.formElement.getAttribute(\"action\") || formElementAction || \"\";\n }\n }, {\n key: \"body\",\n get: function get() {\n if (this.enctype == FormEnctype.urlEncoded || this.method == FetchMethod.get) {\n return new URLSearchParams(this.stringFormData);\n } else {\n return this.formData;\n }\n }\n }, {\n key: \"enctype\",\n get: function get() {\n var _a;\n\n return formEnctypeFromString(((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formenctype\")) || this.formElement.enctype);\n }\n }, {\n key: \"isIdempotent\",\n get: function get() {\n return this.fetchRequest.isIdempotent;\n }\n }, {\n key: \"stringFormData\",\n get: function get() {\n return _toConsumableArray(this.formData).reduce(function (entries, _ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n name = _ref3[0],\n value = _ref3[1];\n\n return entries.concat(typeof value == \"string\" ? [[name, value]] : []);\n }, []);\n }\n }, {\n key: \"confirmationMessage\",\n get: function get() {\n return this.formElement.getAttribute(\"data-turbo-confirm\");\n }\n }, {\n key: \"needsConfirmation\",\n get: function get() {\n return this.confirmationMessage !== null;\n }\n }, {\n key: \"start\",\n value: function () {\n var _start = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var _FormSubmissionState, initialized, requesting, answer;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _FormSubmissionState = FormSubmissionState, initialized = _FormSubmissionState.initialized, requesting = _FormSubmissionState.requesting;\n\n if (!this.needsConfirmation) {\n _context4.next = 5;\n break;\n }\n\n answer = FormSubmission.confirmMethod(this.confirmationMessage, this.formElement);\n\n if (answer) {\n _context4.next = 5;\n break;\n }\n\n return _context4.abrupt(\"return\");\n\n case 5:\n if (!(this.state == initialized)) {\n _context4.next = 8;\n break;\n }\n\n this.state = requesting;\n return _context4.abrupt(\"return\", this.fetchRequest.perform());\n\n case 8:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function start() {\n return _start.apply(this, arguments);\n }\n\n return start;\n }()\n }, {\n key: \"stop\",\n value: function stop() {\n var _FormSubmissionState2 = FormSubmissionState,\n stopping = _FormSubmissionState2.stopping,\n stopped = _FormSubmissionState2.stopped;\n\n if (this.state != stopping && this.state != stopped) {\n this.state = stopping;\n this.fetchRequest.cancel();\n return true;\n }\n }\n }, {\n key: \"prepareHeadersForRequest\",\n value: function prepareHeadersForRequest(headers, request) {\n if (!request.isIdempotent) {\n var token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n\n if (token) {\n headers[\"X-CSRF-Token\"] = token;\n }\n\n headers[\"Accept\"] = [StreamMessage.contentType, headers[\"Accept\"]].join(\", \");\n }\n }\n }, {\n key: \"requestStarted\",\n value: function requestStarted(request) {\n var _a;\n\n this.state = FormSubmissionState.waiting;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.setAttribute(\"disabled\", \"\");\n dispatch(\"turbo:submit-start\", {\n target: this.formElement,\n detail: {\n formSubmission: this\n }\n });\n this.delegate.formSubmissionStarted(this);\n }\n }, {\n key: \"requestPreventedHandlingResponse\",\n value: function requestPreventedHandlingResponse(request, response) {\n this.result = {\n success: response.succeeded,\n fetchResponse: response\n };\n }\n }, {\n key: \"requestSucceededWithResponse\",\n value: function requestSucceededWithResponse(request, response) {\n if (response.clientError || response.serverError) {\n this.delegate.formSubmissionFailedWithResponse(this, response);\n } else if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {\n var error = new Error(\"Form responses must redirect to another location\");\n this.delegate.formSubmissionErrored(this, error);\n } else {\n this.state = FormSubmissionState.receiving;\n this.result = {\n success: true,\n fetchResponse: response\n };\n this.delegate.formSubmissionSucceededWithResponse(this, response);\n }\n }\n }, {\n key: \"requestFailedWithResponse\",\n value: function requestFailedWithResponse(request, response) {\n this.result = {\n success: false,\n fetchResponse: response\n };\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n }, {\n key: \"requestErrored\",\n value: function requestErrored(request, error) {\n this.result = {\n success: false,\n error: error\n };\n this.delegate.formSubmissionErrored(this, error);\n }\n }, {\n key: \"requestFinished\",\n value: function requestFinished(request) {\n var _a;\n\n this.state = FormSubmissionState.stopped;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.removeAttribute(\"disabled\");\n dispatch(\"turbo:submit-end\", {\n target: this.formElement,\n detail: Object.assign({\n formSubmission: this\n }, this.result)\n });\n this.delegate.formSubmissionFinished(this);\n }\n }, {\n key: \"requestMustRedirect\",\n value: function requestMustRedirect(request) {\n return !request.isIdempotent && this.mustRedirect;\n }\n }], [{\n key: \"confirmMethod\",\n value: function confirmMethod(message, element) {\n return confirm(message);\n }\n }]);\n\n return FormSubmission;\n}();\n\nfunction buildFormData(formElement, submitter) {\n var formData = new FormData(formElement);\n var name = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"name\");\n var value = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"value\");\n\n if (name && value != null && formData.get(name) != value) {\n formData.append(name, value);\n }\n\n return formData;\n}\n\nfunction getCookieValue(cookieName) {\n if (cookieName != null) {\n var cookies = document.cookie ? document.cookie.split(\"; \") : [];\n var cookie = cookies.find(function (cookie) {\n return cookie.startsWith(cookieName);\n });\n\n if (cookie) {\n var value = cookie.split(\"=\").slice(1).join(\"=\");\n return value ? decodeURIComponent(value) : undefined;\n }\n }\n}\n\nfunction getMetaContent(name) {\n var element = document.querySelector(\"meta[name=\\\"\".concat(name, \"\\\"]\"));\n return element && element.content;\n}\n\nfunction responseSucceededWithoutRedirect(response) {\n return response.statusCode == 200 && !response.redirected;\n}\n\nfunction mergeFormDataEntries(url, entries) {\n var searchParams = new URLSearchParams();\n\n var _iterator3 = _createForOfIteratorHelper(entries),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _ref6 = _step3.value;\n\n var _ref5 = _slicedToArray(_ref6, 2);\n\n var name = _ref5[0];\n var value = _ref5[1];\n if (value instanceof File) continue;\n searchParams.append(name, value);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n url.search = searchParams.toString();\n return url;\n}\n\nvar Snapshot = /*#__PURE__*/function () {\n function Snapshot(element) {\n _classCallCheck(this, Snapshot);\n\n this.element = element;\n }\n\n _createClass(Snapshot, [{\n key: \"children\",\n get: function get() {\n return _toConsumableArray(this.element.children);\n }\n }, {\n key: \"hasAnchor\",\n value: function hasAnchor(anchor) {\n return this.getElementForAnchor(anchor) != null;\n }\n }, {\n key: \"getElementForAnchor\",\n value: function getElementForAnchor(anchor) {\n return anchor ? this.element.querySelector(\"[id='\".concat(anchor, \"'], a[name='\").concat(anchor, \"']\")) : null;\n }\n }, {\n key: \"isConnected\",\n get: function get() {\n return this.element.isConnected;\n }\n }, {\n key: \"firstAutofocusableElement\",\n get: function get() {\n return this.element.querySelector(\"[autofocus]\");\n }\n }, {\n key: \"permanentElements\",\n get: function get() {\n return _toConsumableArray(this.element.querySelectorAll(\"[id][data-turbo-permanent]\"));\n }\n }, {\n key: \"getPermanentElementById\",\n value: function getPermanentElementById(id) {\n return this.element.querySelector(\"#\".concat(id, \"[data-turbo-permanent]\"));\n }\n }, {\n key: \"getPermanentElementMapForSnapshot\",\n value: function getPermanentElementMapForSnapshot(snapshot) {\n var permanentElementMap = {};\n\n var _iterator4 = _createForOfIteratorHelper(this.permanentElements),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var currentPermanentElement = _step4.value;\n var id = currentPermanentElement.id;\n var newPermanentElement = snapshot.getPermanentElementById(id);\n\n if (newPermanentElement) {\n permanentElementMap[id] = [currentPermanentElement, newPermanentElement];\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return permanentElementMap;\n }\n }]);\n\n return Snapshot;\n}();\n\nvar FormInterceptor = /*#__PURE__*/function () {\n function FormInterceptor(delegate, element) {\n var _this4 = this;\n\n _classCallCheck(this, FormInterceptor);\n\n this.submitBubbled = function (event) {\n var form = event.target;\n\n if (!event.defaultPrevented && form instanceof HTMLFormElement && form.closest(\"turbo-frame, html\") == _this4.element) {\n var submitter = event.submitter || undefined;\n var method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.method;\n\n if (method != \"dialog\" && _this4.delegate.shouldInterceptFormSubmission(form, submitter)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n _this4.delegate.formSubmissionIntercepted(form, submitter);\n }\n }\n };\n\n this.delegate = delegate;\n this.element = element;\n }\n\n _createClass(FormInterceptor, [{\n key: \"start\",\n value: function start() {\n this.element.addEventListener(\"submit\", this.submitBubbled);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.element.removeEventListener(\"submit\", this.submitBubbled);\n }\n }]);\n\n return FormInterceptor;\n}();\n\nvar View = /*#__PURE__*/function () {\n function View(delegate, element) {\n _classCallCheck(this, View);\n\n this.resolveRenderPromise = function (value) {};\n\n this.resolveInterceptionPromise = function (value) {};\n\n this.delegate = delegate;\n this.element = element;\n }\n\n _createClass(View, [{\n key: \"scrollToAnchor\",\n value: function scrollToAnchor(anchor) {\n var element = this.snapshot.getElementForAnchor(anchor);\n\n if (element) {\n this.scrollToElement(element);\n this.focusElement(element);\n } else {\n this.scrollToPosition({\n x: 0,\n y: 0\n });\n }\n }\n }, {\n key: \"scrollToAnchorFromLocation\",\n value: function scrollToAnchorFromLocation(location) {\n this.scrollToAnchor(getAnchor(location));\n }\n }, {\n key: \"scrollToElement\",\n value: function scrollToElement(element) {\n element.scrollIntoView();\n }\n }, {\n key: \"focusElement\",\n value: function focusElement(element) {\n if (element instanceof HTMLElement) {\n if (element.hasAttribute(\"tabindex\")) {\n element.focus();\n } else {\n element.setAttribute(\"tabindex\", \"-1\");\n element.focus();\n element.removeAttribute(\"tabindex\");\n }\n }\n }\n }, {\n key: \"scrollToPosition\",\n value: function scrollToPosition(_ref7) {\n var x = _ref7.x,\n y = _ref7.y;\n this.scrollRoot.scrollTo(x, y);\n }\n }, {\n key: \"scrollToTop\",\n value: function scrollToTop() {\n this.scrollToPosition({\n x: 0,\n y: 0\n });\n }\n }, {\n key: \"scrollRoot\",\n get: function get() {\n return window;\n }\n }, {\n key: \"render\",\n value: function () {\n var _render = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(renderer) {\n var _this5 = this;\n\n var isPreview, shouldRender, snapshot, renderInterception, immediateRender;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n isPreview = renderer.isPreview, shouldRender = renderer.shouldRender, snapshot = renderer.newSnapshot;\n\n if (!shouldRender) {\n _context5.next = 22;\n break;\n }\n\n _context5.prev = 2;\n this.renderPromise = new Promise(function (resolve) {\n return _this5.resolveRenderPromise = resolve;\n });\n this.renderer = renderer;\n this.prepareToRenderSnapshot(renderer);\n renderInterception = new Promise(function (resolve) {\n return _this5.resolveInterceptionPromise = resolve;\n });\n immediateRender = this.delegate.allowsImmediateRender(snapshot, this.resolveInterceptionPromise);\n\n if (immediateRender) {\n _context5.next = 11;\n break;\n }\n\n _context5.next = 11;\n return renderInterception;\n\n case 11:\n _context5.next = 13;\n return this.renderSnapshot(renderer);\n\n case 13:\n this.delegate.viewRenderedSnapshot(snapshot, isPreview);\n this.finishRenderingSnapshot(renderer);\n\n case 15:\n _context5.prev = 15;\n delete this.renderer;\n this.resolveRenderPromise(undefined);\n delete this.renderPromise;\n return _context5.finish(15);\n\n case 20:\n _context5.next = 23;\n break;\n\n case 22:\n this.invalidate();\n\n case 23:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this, [[2,, 15, 20]]);\n }));\n\n function render(_x3) {\n return _render.apply(this, arguments);\n }\n\n return render;\n }()\n }, {\n key: \"invalidate\",\n value: function invalidate() {\n this.delegate.viewInvalidated();\n }\n }, {\n key: \"prepareToRenderSnapshot\",\n value: function prepareToRenderSnapshot(renderer) {\n this.markAsPreview(renderer.isPreview);\n renderer.prepareToRender();\n }\n }, {\n key: \"markAsPreview\",\n value: function markAsPreview(isPreview) {\n if (isPreview) {\n this.element.setAttribute(\"data-turbo-preview\", \"\");\n } else {\n this.element.removeAttribute(\"data-turbo-preview\");\n }\n }\n }, {\n key: \"renderSnapshot\",\n value: function () {\n var _renderSnapshot = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(renderer) {\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return renderer.render();\n\n case 2:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n\n function renderSnapshot(_x4) {\n return _renderSnapshot.apply(this, arguments);\n }\n\n return renderSnapshot;\n }()\n }, {\n key: \"finishRenderingSnapshot\",\n value: function finishRenderingSnapshot(renderer) {\n renderer.finishRendering();\n }\n }]);\n\n return View;\n}();\n\nvar FrameView = /*#__PURE__*/function (_View) {\n _inherits(FrameView, _View);\n\n var _super2 = _createSuper(FrameView);\n\n function FrameView() {\n _classCallCheck(this, FrameView);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(FrameView, [{\n key: \"invalidate\",\n value: function invalidate() {\n this.element.innerHTML = \"\";\n }\n }, {\n key: \"snapshot\",\n get: function get() {\n return new Snapshot(this.element);\n }\n }]);\n\n return FrameView;\n}(View);\n\nvar LinkInterceptor = /*#__PURE__*/function () {\n function LinkInterceptor(delegate, element) {\n var _this6 = this;\n\n _classCallCheck(this, LinkInterceptor);\n\n this.clickBubbled = function (event) {\n if (_this6.respondsToEventTarget(event.target)) {\n _this6.clickEvent = event;\n } else {\n delete _this6.clickEvent;\n }\n };\n\n this.linkClicked = function (event) {\n if (_this6.clickEvent && _this6.respondsToEventTarget(event.target) && event.target instanceof Element) {\n if (_this6.delegate.shouldInterceptLinkClick(event.target, event.detail.url)) {\n _this6.clickEvent.preventDefault();\n\n event.preventDefault();\n\n _this6.delegate.linkClickIntercepted(event.target, event.detail.url);\n }\n }\n\n delete _this6.clickEvent;\n };\n\n this.willVisit = function () {\n delete _this6.clickEvent;\n };\n\n this.delegate = delegate;\n this.element = element;\n }\n\n _createClass(LinkInterceptor, [{\n key: \"start\",\n value: function start() {\n this.element.addEventListener(\"click\", this.clickBubbled);\n document.addEventListener(\"turbo:click\", this.linkClicked);\n document.addEventListener(\"turbo:before-visit\", this.willVisit);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.element.removeEventListener(\"click\", this.clickBubbled);\n document.removeEventListener(\"turbo:click\", this.linkClicked);\n document.removeEventListener(\"turbo:before-visit\", this.willVisit);\n }\n }, {\n key: \"respondsToEventTarget\",\n value: function respondsToEventTarget(target) {\n var element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n return element && element.closest(\"turbo-frame, html\") == this.element;\n }\n }]);\n\n return LinkInterceptor;\n}();\n\nvar Bardo = /*#__PURE__*/function () {\n function Bardo(permanentElementMap) {\n _classCallCheck(this, Bardo);\n\n this.permanentElementMap = permanentElementMap;\n }\n\n _createClass(Bardo, [{\n key: \"enter\",\n value: function enter() {\n for (var id in this.permanentElementMap) {\n var _this$permanentElemen = _slicedToArray(this.permanentElementMap[id], 2),\n newPermanentElement = _this$permanentElemen[1];\n\n this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);\n }\n }\n }, {\n key: \"leave\",\n value: function leave() {\n for (var id in this.permanentElementMap) {\n var _this$permanentElemen2 = _slicedToArray(this.permanentElementMap[id], 1),\n currentPermanentElement = _this$permanentElemen2[0];\n\n this.replaceCurrentPermanentElementWithClone(currentPermanentElement);\n this.replacePlaceholderWithPermanentElement(currentPermanentElement);\n }\n }\n }, {\n key: \"replaceNewPermanentElementWithPlaceholder\",\n value: function replaceNewPermanentElementWithPlaceholder(permanentElement) {\n var placeholder = createPlaceholderForPermanentElement(permanentElement);\n permanentElement.replaceWith(placeholder);\n }\n }, {\n key: \"replaceCurrentPermanentElementWithClone\",\n value: function replaceCurrentPermanentElementWithClone(permanentElement) {\n var clone = permanentElement.cloneNode(true);\n permanentElement.replaceWith(clone);\n }\n }, {\n key: \"replacePlaceholderWithPermanentElement\",\n value: function replacePlaceholderWithPermanentElement(permanentElement) {\n var placeholder = this.getPlaceholderById(permanentElement.id);\n placeholder === null || placeholder === void 0 ? void 0 : placeholder.replaceWith(permanentElement);\n }\n }, {\n key: \"getPlaceholderById\",\n value: function getPlaceholderById(id) {\n return this.placeholders.find(function (element) {\n return element.content == id;\n });\n }\n }, {\n key: \"placeholders\",\n get: function get() {\n return _toConsumableArray(document.querySelectorAll(\"meta[name=turbo-permanent-placeholder][content]\"));\n }\n }], [{\n key: \"preservingPermanentElements\",\n value: function preservingPermanentElements(permanentElementMap, callback) {\n var bardo = new this(permanentElementMap);\n bardo.enter();\n callback();\n bardo.leave();\n }\n }]);\n\n return Bardo;\n}();\n\nfunction createPlaceholderForPermanentElement(permanentElement) {\n var element = document.createElement(\"meta\");\n element.setAttribute(\"name\", \"turbo-permanent-placeholder\");\n element.setAttribute(\"content\", permanentElement.id);\n return element;\n}\n\nvar Renderer = /*#__PURE__*/function () {\n function Renderer(currentSnapshot, newSnapshot, isPreview) {\n var _this7 = this;\n\n var willRender = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n _classCallCheck(this, Renderer);\n\n this.currentSnapshot = currentSnapshot;\n this.newSnapshot = newSnapshot;\n this.isPreview = isPreview;\n this.willRender = willRender;\n this.promise = new Promise(function (resolve, reject) {\n return _this7.resolvingFunctions = {\n resolve: resolve,\n reject: reject\n };\n });\n }\n\n _createClass(Renderer, [{\n key: \"shouldRender\",\n get: function get() {\n return true;\n }\n }, {\n key: \"prepareToRender\",\n value: function prepareToRender() {\n return;\n }\n }, {\n key: \"finishRendering\",\n value: function finishRendering() {\n if (this.resolvingFunctions) {\n this.resolvingFunctions.resolve();\n delete this.resolvingFunctions;\n }\n }\n }, {\n key: \"createScriptElement\",\n value: function createScriptElement(element) {\n if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n return element;\n } else {\n var createdScriptElement = document.createElement(\"script\");\n\n if (this.cspNonce) {\n createdScriptElement.nonce = this.cspNonce;\n }\n\n createdScriptElement.textContent = element.textContent;\n createdScriptElement.async = false;\n copyElementAttributes(createdScriptElement, element);\n return createdScriptElement;\n }\n }\n }, {\n key: \"preservingPermanentElements\",\n value: function preservingPermanentElements(callback) {\n Bardo.preservingPermanentElements(this.permanentElementMap, callback);\n }\n }, {\n key: \"focusFirstAutofocusableElement\",\n value: function focusFirstAutofocusableElement() {\n var element = this.connectedSnapshot.firstAutofocusableElement;\n\n if (elementIsFocusable(element)) {\n element.focus();\n }\n }\n }, {\n key: \"connectedSnapshot\",\n get: function get() {\n return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot;\n }\n }, {\n key: \"currentElement\",\n get: function get() {\n return this.currentSnapshot.element;\n }\n }, {\n key: \"newElement\",\n get: function get() {\n return this.newSnapshot.element;\n }\n }, {\n key: \"permanentElementMap\",\n get: function get() {\n return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot);\n }\n }, {\n key: \"cspNonce\",\n get: function get() {\n var _a;\n\n return (_a = document.head.querySelector('meta[name=\"csp-nonce\"]')) === null || _a === void 0 ? void 0 : _a.getAttribute(\"content\");\n }\n }]);\n\n return Renderer;\n}();\n\nfunction copyElementAttributes(destinationElement, sourceElement) {\n for (var _i3 = 0, _arr2 = _toConsumableArray(sourceElement.attributes); _i3 < _arr2.length; _i3++) {\n var _ref9 = _arr2[_i3];\n var name = _ref9.name;\n var value = _ref9.value;\n destinationElement.setAttribute(name, value);\n }\n}\n\nfunction elementIsFocusable(element) {\n return element && typeof element.focus == \"function\";\n}\n\nvar FrameRenderer = /*#__PURE__*/function (_Renderer) {\n _inherits(FrameRenderer, _Renderer);\n\n var _super3 = _createSuper(FrameRenderer);\n\n function FrameRenderer() {\n _classCallCheck(this, FrameRenderer);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(FrameRenderer, [{\n key: \"shouldRender\",\n get: function get() {\n return true;\n }\n }, {\n key: \"render\",\n value: function () {\n var _render2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {\n var _this8 = this;\n\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return nextAnimationFrame();\n\n case 2:\n this.preservingPermanentElements(function () {\n _this8.loadFrameElement();\n });\n this.scrollFrameIntoView();\n _context7.next = 6;\n return nextAnimationFrame();\n\n case 6:\n this.focusFirstAutofocusableElement();\n _context7.next = 9;\n return nextAnimationFrame();\n\n case 9:\n this.activateScriptElements();\n\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function render() {\n return _render2.apply(this, arguments);\n }\n\n return render;\n }()\n }, {\n key: \"loadFrameElement\",\n value: function loadFrameElement() {\n var _a;\n\n var destinationRange = document.createRange();\n destinationRange.selectNodeContents(this.currentElement);\n destinationRange.deleteContents();\n var frameElement = this.newElement;\n var sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();\n\n if (sourceRange) {\n sourceRange.selectNodeContents(frameElement);\n this.currentElement.appendChild(sourceRange.extractContents());\n }\n }\n }, {\n key: \"scrollFrameIntoView\",\n value: function scrollFrameIntoView() {\n if (this.currentElement.autoscroll || this.newElement.autoscroll) {\n var element = this.currentElement.firstElementChild;\n var block = readScrollLogicalPosition(this.currentElement.getAttribute(\"data-autoscroll-block\"), \"end\");\n\n if (element) {\n element.scrollIntoView({\n block: block\n });\n return true;\n }\n }\n\n return false;\n }\n }, {\n key: \"activateScriptElements\",\n value: function activateScriptElements() {\n var _iterator5 = _createForOfIteratorHelper(this.newScriptElements),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var inertScriptElement = _step5.value;\n var activatedScriptElement = this.createScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n }, {\n key: \"newScriptElements\",\n get: function get() {\n return this.currentElement.querySelectorAll(\"script\");\n }\n }]);\n\n return FrameRenderer;\n}(Renderer);\n\nfunction readScrollLogicalPosition(value, defaultValue) {\n if (value == \"end\" || value == \"start\" || value == \"center\" || value == \"nearest\") {\n return value;\n } else {\n return defaultValue;\n }\n}\n\nvar ProgressBar = /*#__PURE__*/function () {\n function ProgressBar() {\n var _this9 = this;\n\n _classCallCheck(this, ProgressBar);\n\n this.hiding = false;\n this.value = 0;\n this.visible = false;\n\n this.trickle = function () {\n _this9.setValue(_this9.value + Math.random() / 100);\n };\n\n this.stylesheetElement = this.createStylesheetElement();\n this.progressElement = this.createProgressElement();\n this.installStylesheetElement();\n this.setValue(0);\n }\n\n _createClass(ProgressBar, [{\n key: \"show\",\n value: function show() {\n if (!this.visible) {\n this.visible = true;\n this.installProgressElement();\n this.startTrickling();\n }\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this10 = this;\n\n if (this.visible && !this.hiding) {\n this.hiding = true;\n this.fadeProgressElement(function () {\n _this10.uninstallProgressElement();\n\n _this10.stopTrickling();\n\n _this10.visible = false;\n _this10.hiding = false;\n });\n }\n }\n }, {\n key: \"setValue\",\n value: function setValue(value) {\n this.value = value;\n this.refresh();\n }\n }, {\n key: \"installStylesheetElement\",\n value: function installStylesheetElement() {\n document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }\n }, {\n key: \"installProgressElement\",\n value: function installProgressElement() {\n this.progressElement.style.width = \"0\";\n this.progressElement.style.opacity = \"1\";\n document.documentElement.insertBefore(this.progressElement, document.body);\n this.refresh();\n }\n }, {\n key: \"fadeProgressElement\",\n value: function fadeProgressElement(callback) {\n this.progressElement.style.opacity = \"0\";\n setTimeout(callback, ProgressBar.animationDuration * 1.5);\n }\n }, {\n key: \"uninstallProgressElement\",\n value: function uninstallProgressElement() {\n if (this.progressElement.parentNode) {\n document.documentElement.removeChild(this.progressElement);\n }\n }\n }, {\n key: \"startTrickling\",\n value: function startTrickling() {\n if (!this.trickleInterval) {\n this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);\n }\n }\n }, {\n key: \"stopTrickling\",\n value: function stopTrickling() {\n window.clearInterval(this.trickleInterval);\n delete this.trickleInterval;\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n var _this11 = this;\n\n requestAnimationFrame(function () {\n _this11.progressElement.style.width = \"\".concat(10 + _this11.value * 90, \"%\");\n });\n }\n }, {\n key: \"createStylesheetElement\",\n value: function createStylesheetElement() {\n var element = document.createElement(\"style\");\n element.type = \"text/css\";\n element.textContent = ProgressBar.defaultCSS;\n return element;\n }\n }, {\n key: \"createProgressElement\",\n value: function createProgressElement() {\n var element = document.createElement(\"div\");\n element.className = \"turbo-progress-bar\";\n return element;\n }\n }], [{\n key: \"defaultCSS\",\n get: function get() {\n return unindent(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n .turbo-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:\\n width \", \"ms ease-out,\\n opacity \", \"ms \", \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n }\\n \"])), ProgressBar.animationDuration, ProgressBar.animationDuration / 2, ProgressBar.animationDuration / 2);\n }\n }]);\n\n return ProgressBar;\n}();\n\nProgressBar.animationDuration = 300;\n\nvar HeadSnapshot = /*#__PURE__*/function (_Snapshot) {\n _inherits(HeadSnapshot, _Snapshot);\n\n var _super4 = _createSuper(HeadSnapshot);\n\n function HeadSnapshot() {\n var _this12;\n\n _classCallCheck(this, HeadSnapshot);\n\n _this12 = _super4.apply(this, arguments);\n _this12.detailsByOuterHTML = _this12.children.filter(function (element) {\n return !elementIsNoscript(element);\n }).map(function (element) {\n return elementWithoutNonce(element);\n }).reduce(function (result, element) {\n var outerHTML = element.outerHTML;\n var details = outerHTML in result ? result[outerHTML] : {\n type: elementType(element),\n tracked: elementIsTracked(element),\n elements: []\n };\n return Object.assign(Object.assign({}, result), _defineProperty({}, outerHTML, Object.assign(Object.assign({}, details), {\n elements: [].concat(_toConsumableArray(details.elements), [element])\n })));\n }, {});\n return _this12;\n }\n\n _createClass(HeadSnapshot, [{\n key: \"trackedElementSignature\",\n get: function get() {\n var _this13 = this;\n\n return Object.keys(this.detailsByOuterHTML).filter(function (outerHTML) {\n return _this13.detailsByOuterHTML[outerHTML].tracked;\n }).join(\"\");\n }\n }, {\n key: \"getScriptElementsNotInSnapshot\",\n value: function getScriptElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"script\", snapshot);\n }\n }, {\n key: \"getStylesheetElementsNotInSnapshot\",\n value: function getStylesheetElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"stylesheet\", snapshot);\n }\n }, {\n key: \"getElementsMatchingTypeNotInSnapshot\",\n value: function getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {\n var _this14 = this;\n\n return Object.keys(this.detailsByOuterHTML).filter(function (outerHTML) {\n return !(outerHTML in snapshot.detailsByOuterHTML);\n }).map(function (outerHTML) {\n return _this14.detailsByOuterHTML[outerHTML];\n }).filter(function (_ref10) {\n var type = _ref10.type;\n return type == matchedType;\n }).map(function (_ref11) {\n var _ref11$elements = _slicedToArray(_ref11.elements, 1),\n element = _ref11$elements[0];\n\n return element;\n });\n }\n }, {\n key: \"provisionalElements\",\n get: function get() {\n var _this15 = this;\n\n return Object.keys(this.detailsByOuterHTML).reduce(function (result, outerHTML) {\n var _this15$detailsByOute = _this15.detailsByOuterHTML[outerHTML],\n type = _this15$detailsByOute.type,\n tracked = _this15$detailsByOute.tracked,\n elements = _this15$detailsByOute.elements;\n\n if (type == null && !tracked) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(elements));\n } else if (elements.length > 1) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(elements.slice(1)));\n } else {\n return result;\n }\n }, []);\n }\n }, {\n key: \"getMetaValue\",\n value: function getMetaValue(name) {\n var element = this.findMetaElementByName(name);\n return element ? element.getAttribute(\"content\") : null;\n }\n }, {\n key: \"findMetaElementByName\",\n value: function findMetaElementByName(name) {\n var _this16 = this;\n\n return Object.keys(this.detailsByOuterHTML).reduce(function (result, outerHTML) {\n var _this16$detailsByOute = _slicedToArray(_this16.detailsByOuterHTML[outerHTML].elements, 1),\n element = _this16$detailsByOute[0];\n\n return elementIsMetaElementWithName(element, name) ? element : result;\n }, undefined);\n }\n }]);\n\n return HeadSnapshot;\n}(Snapshot);\n\nfunction elementType(element) {\n if (elementIsScript(element)) {\n return \"script\";\n } else if (elementIsStylesheet(element)) {\n return \"stylesheet\";\n }\n}\n\nfunction elementIsTracked(element) {\n return element.getAttribute(\"data-turbo-track\") == \"reload\";\n}\n\nfunction elementIsScript(element) {\n var tagName = element.tagName.toLowerCase();\n return tagName == \"script\";\n}\n\nfunction elementIsNoscript(element) {\n var tagName = element.tagName.toLowerCase();\n return tagName == \"noscript\";\n}\n\nfunction elementIsStylesheet(element) {\n var tagName = element.tagName.toLowerCase();\n return tagName == \"style\" || tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\";\n}\n\nfunction elementIsMetaElementWithName(element, name) {\n var tagName = element.tagName.toLowerCase();\n return tagName == \"meta\" && element.getAttribute(\"name\") == name;\n}\n\nfunction elementWithoutNonce(element) {\n if (element.hasAttribute(\"nonce\")) {\n element.setAttribute(\"nonce\", \"\");\n }\n\n return element;\n}\n\nvar PageSnapshot = /*#__PURE__*/function (_Snapshot2) {\n _inherits(PageSnapshot, _Snapshot2);\n\n var _super5 = _createSuper(PageSnapshot);\n\n function PageSnapshot(element, headSnapshot) {\n var _this17;\n\n _classCallCheck(this, PageSnapshot);\n\n _this17 = _super5.call(this, element);\n _this17.headSnapshot = headSnapshot;\n return _this17;\n }\n\n _createClass(PageSnapshot, [{\n key: \"clone\",\n value: function clone() {\n return new PageSnapshot(this.element.cloneNode(true), this.headSnapshot);\n }\n }, {\n key: \"headElement\",\n get: function get() {\n return this.headSnapshot.element;\n }\n }, {\n key: \"rootLocation\",\n get: function get() {\n var _a;\n\n var root = (_a = this.getSetting(\"root\")) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n }, {\n key: \"cacheControlValue\",\n get: function get() {\n return this.getSetting(\"cache-control\");\n }\n }, {\n key: \"isPreviewable\",\n get: function get() {\n return this.cacheControlValue != \"no-preview\";\n }\n }, {\n key: \"isCacheable\",\n get: function get() {\n return this.cacheControlValue != \"no-cache\";\n }\n }, {\n key: \"isVisitable\",\n get: function get() {\n return this.getSetting(\"visit-control\") != \"reload\";\n }\n }, {\n key: \"getSetting\",\n value: function getSetting(name) {\n return this.headSnapshot.getMetaValue(\"turbo-\".concat(name));\n }\n }], [{\n key: \"fromHTMLString\",\n value: function fromHTMLString() {\n var html = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return this.fromDocument(parseHTMLDocument(html));\n }\n }, {\n key: \"fromElement\",\n value: function fromElement(element) {\n return this.fromDocument(element.ownerDocument);\n }\n }, {\n key: \"fromDocument\",\n value: function fromDocument(_ref12) {\n var head = _ref12.head,\n body = _ref12.body;\n return new this(body, new HeadSnapshot(head));\n }\n }]);\n\n return PageSnapshot;\n}(Snapshot);\n\nvar TimingMetric;\n\n(function (TimingMetric) {\n TimingMetric[\"visitStart\"] = \"visitStart\";\n TimingMetric[\"requestStart\"] = \"requestStart\";\n TimingMetric[\"requestEnd\"] = \"requestEnd\";\n TimingMetric[\"visitEnd\"] = \"visitEnd\";\n})(TimingMetric || (TimingMetric = {}));\n\nvar VisitState;\n\n(function (VisitState) {\n VisitState[\"initialized\"] = \"initialized\";\n VisitState[\"started\"] = \"started\";\n VisitState[\"canceled\"] = \"canceled\";\n VisitState[\"failed\"] = \"failed\";\n VisitState[\"completed\"] = \"completed\";\n})(VisitState || (VisitState = {}));\n\nvar defaultOptions = {\n action: \"advance\",\n historyChanged: false,\n visitCachedSnapshot: function visitCachedSnapshot() {},\n willRender: true\n};\nvar SystemStatusCode;\n\n(function (SystemStatusCode) {\n SystemStatusCode[SystemStatusCode[\"networkFailure\"] = 0] = \"networkFailure\";\n SystemStatusCode[SystemStatusCode[\"timeoutFailure\"] = -1] = \"timeoutFailure\";\n SystemStatusCode[SystemStatusCode[\"contentTypeMismatch\"] = -2] = \"contentTypeMismatch\";\n})(SystemStatusCode || (SystemStatusCode = {}));\n\nvar Visit = /*#__PURE__*/function () {\n function Visit(delegate, location, restorationIdentifier) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Visit);\n\n this.identifier = uuid();\n this.timingMetrics = {};\n this.followedRedirect = false;\n this.historyChanged = false;\n this.scrolled = false;\n this.snapshotCached = false;\n this.state = VisitState.initialized;\n this.delegate = delegate;\n this.location = location;\n this.restorationIdentifier = restorationIdentifier || uuid();\n\n var _Object$assign2 = Object.assign(Object.assign({}, defaultOptions), options),\n action = _Object$assign2.action,\n historyChanged = _Object$assign2.historyChanged,\n referrer = _Object$assign2.referrer,\n snapshotHTML = _Object$assign2.snapshotHTML,\n response = _Object$assign2.response,\n visitCachedSnapshot = _Object$assign2.visitCachedSnapshot,\n willRender = _Object$assign2.willRender;\n\n this.action = action;\n this.historyChanged = historyChanged;\n this.referrer = referrer;\n this.snapshotHTML = snapshotHTML;\n this.response = response;\n this.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);\n this.visitCachedSnapshot = visitCachedSnapshot;\n this.willRender = willRender;\n this.scrolled = !willRender;\n }\n\n _createClass(Visit, [{\n key: \"adapter\",\n get: function get() {\n return this.delegate.adapter;\n }\n }, {\n key: \"view\",\n get: function get() {\n return this.delegate.view;\n }\n }, {\n key: \"history\",\n get: function get() {\n return this.delegate.history;\n }\n }, {\n key: \"restorationData\",\n get: function get() {\n return this.history.getRestorationDataForIdentifier(this.restorationIdentifier);\n }\n }, {\n key: \"silent\",\n get: function get() {\n return this.isSamePage;\n }\n }, {\n key: \"start\",\n value: function start() {\n if (this.state == VisitState.initialized) {\n this.recordTimingMetric(TimingMetric.visitStart);\n this.state = VisitState.started;\n this.adapter.visitStarted(this);\n this.delegate.visitStarted(this);\n }\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n if (this.state == VisitState.started) {\n if (this.request) {\n this.request.cancel();\n }\n\n this.cancelRender();\n this.state = VisitState.canceled;\n }\n }\n }, {\n key: \"complete\",\n value: function complete() {\n if (this.state == VisitState.started) {\n this.recordTimingMetric(TimingMetric.visitEnd);\n this.state = VisitState.completed;\n this.adapter.visitCompleted(this);\n this.delegate.visitCompleted(this);\n this.followRedirect();\n }\n }\n }, {\n key: \"fail\",\n value: function fail() {\n if (this.state == VisitState.started) {\n this.state = VisitState.failed;\n this.adapter.visitFailed(this);\n }\n }\n }, {\n key: \"changeHistory\",\n value: function changeHistory() {\n var _a;\n\n if (!this.historyChanged) {\n var actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.href) ? \"replace\" : this.action;\n var method = this.getHistoryMethodForAction(actionForHistory);\n this.history.update(method, this.location, this.restorationIdentifier);\n this.historyChanged = true;\n }\n }\n }, {\n key: \"issueRequest\",\n value: function issueRequest() {\n if (this.hasPreloadedResponse()) {\n this.simulateRequest();\n } else if (this.shouldIssueRequest() && !this.request) {\n this.request = new FetchRequest(this, FetchMethod.get, this.location);\n this.request.perform();\n }\n }\n }, {\n key: \"simulateRequest\",\n value: function simulateRequest() {\n if (this.response) {\n this.startRequest();\n this.recordResponse();\n this.finishRequest();\n }\n }\n }, {\n key: \"startRequest\",\n value: function startRequest() {\n this.recordTimingMetric(TimingMetric.requestStart);\n this.adapter.visitRequestStarted(this);\n }\n }, {\n key: \"recordResponse\",\n value: function recordResponse() {\n var response = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.response;\n this.response = response;\n\n if (response) {\n var statusCode = response.statusCode;\n\n if (isSuccessful(statusCode)) {\n this.adapter.visitRequestCompleted(this);\n } else {\n this.adapter.visitRequestFailedWithStatusCode(this, statusCode);\n }\n }\n }\n }, {\n key: \"finishRequest\",\n value: function finishRequest() {\n this.recordTimingMetric(TimingMetric.requestEnd);\n this.adapter.visitRequestFinished(this);\n }\n }, {\n key: \"loadResponse\",\n value: function loadResponse() {\n var _this18 = this;\n\n if (this.response) {\n var _this$response = this.response,\n statusCode = _this$response.statusCode,\n responseHTML = _this$response.responseHTML;\n this.render( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _this18.cacheSnapshot();\n\n if (!_this18.view.renderPromise) {\n _context8.next = 4;\n break;\n }\n\n _context8.next = 4;\n return _this18.view.renderPromise;\n\n case 4:\n if (!(isSuccessful(statusCode) && responseHTML != null)) {\n _context8.next = 11;\n break;\n }\n\n _context8.next = 7;\n return _this18.view.renderPage(PageSnapshot.fromHTMLString(responseHTML), false, _this18.willRender);\n\n case 7:\n _this18.adapter.visitRendered(_this18);\n\n _this18.complete();\n\n _context8.next = 15;\n break;\n\n case 11:\n _context8.next = 13;\n return _this18.view.renderError(PageSnapshot.fromHTMLString(responseHTML));\n\n case 13:\n _this18.adapter.visitRendered(_this18);\n\n _this18.fail();\n\n case 15:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n })));\n }\n }\n }, {\n key: \"getCachedSnapshot\",\n value: function getCachedSnapshot() {\n var snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();\n\n if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {\n if (this.action == \"restore\" || snapshot.isPreviewable) {\n return snapshot;\n }\n }\n }\n }, {\n key: \"getPreloadedSnapshot\",\n value: function getPreloadedSnapshot() {\n if (this.snapshotHTML) {\n return PageSnapshot.fromHTMLString(this.snapshotHTML);\n }\n }\n }, {\n key: \"hasCachedSnapshot\",\n value: function hasCachedSnapshot() {\n return this.getCachedSnapshot() != null;\n }\n }, {\n key: \"loadCachedSnapshot\",\n value: function loadCachedSnapshot() {\n var _this19 = this;\n\n var snapshot = this.getCachedSnapshot();\n\n if (snapshot) {\n var isPreview = this.shouldIssueRequest();\n this.render( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9() {\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _this19.cacheSnapshot();\n\n if (!_this19.isSamePage) {\n _context9.next = 5;\n break;\n }\n\n _this19.adapter.visitRendered(_this19);\n\n _context9.next = 12;\n break;\n\n case 5:\n if (!_this19.view.renderPromise) {\n _context9.next = 8;\n break;\n }\n\n _context9.next = 8;\n return _this19.view.renderPromise;\n\n case 8:\n _context9.next = 10;\n return _this19.view.renderPage(snapshot, isPreview, _this19.willRender);\n\n case 10:\n _this19.adapter.visitRendered(_this19);\n\n if (!isPreview) {\n _this19.complete();\n }\n\n case 12:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n })));\n }\n }\n }, {\n key: \"followRedirect\",\n value: function followRedirect() {\n var _a;\n\n if (this.redirectedToLocation && !this.followedRedirect && ((_a = this.response) === null || _a === void 0 ? void 0 : _a.redirected)) {\n this.adapter.visitProposedToLocation(this.redirectedToLocation, {\n action: 'replace',\n response: this.response\n });\n this.followedRedirect = true;\n }\n }\n }, {\n key: \"goToSamePageAnchor\",\n value: function goToSamePageAnchor() {\n var _this20 = this;\n\n if (this.isSamePage) {\n this.render( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10() {\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _this20.cacheSnapshot();\n\n _this20.adapter.visitRendered(_this20);\n\n case 2:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n })));\n }\n }\n }, {\n key: \"requestStarted\",\n value: function requestStarted() {\n this.startRequest();\n }\n }, {\n key: \"requestPreventedHandlingResponse\",\n value: function requestPreventedHandlingResponse(request, response) {}\n }, {\n key: \"requestSucceededWithResponse\",\n value: function () {\n var _requestSucceededWithResponse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(request, response) {\n var responseHTML, redirected, statusCode;\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return response.responseHTML;\n\n case 2:\n responseHTML = _context11.sent;\n redirected = response.redirected, statusCode = response.statusCode;\n\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected: redirected\n });\n } else {\n this.redirectedToLocation = response.redirected ? response.location : undefined;\n this.recordResponse({\n statusCode: statusCode,\n responseHTML: responseHTML,\n redirected: redirected\n });\n }\n\n case 5:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function requestSucceededWithResponse(_x5, _x6) {\n return _requestSucceededWithResponse.apply(this, arguments);\n }\n\n return requestSucceededWithResponse;\n }()\n }, {\n key: \"requestFailedWithResponse\",\n value: function () {\n var _requestFailedWithResponse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(request, response) {\n var responseHTML, redirected, statusCode;\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return response.responseHTML;\n\n case 2:\n responseHTML = _context12.sent;\n redirected = response.redirected, statusCode = response.statusCode;\n\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected: redirected\n });\n } else {\n this.recordResponse({\n statusCode: statusCode,\n responseHTML: responseHTML,\n redirected: redirected\n });\n }\n\n case 5:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n\n function requestFailedWithResponse(_x7, _x8) {\n return _requestFailedWithResponse.apply(this, arguments);\n }\n\n return requestFailedWithResponse;\n }()\n }, {\n key: \"requestErrored\",\n value: function requestErrored(request, error) {\n this.recordResponse({\n statusCode: SystemStatusCode.networkFailure,\n redirected: false\n });\n }\n }, {\n key: \"requestFinished\",\n value: function requestFinished() {\n this.finishRequest();\n }\n }, {\n key: \"performScroll\",\n value: function performScroll() {\n if (!this.scrolled) {\n if (this.action == \"restore\") {\n this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();\n } else {\n this.scrollToAnchor() || this.view.scrollToTop();\n }\n\n if (this.isSamePage) {\n this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);\n }\n\n this.scrolled = true;\n }\n }\n }, {\n key: \"scrollToRestoredPosition\",\n value: function scrollToRestoredPosition() {\n var scrollPosition = this.restorationData.scrollPosition;\n\n if (scrollPosition) {\n this.view.scrollToPosition(scrollPosition);\n return true;\n }\n }\n }, {\n key: \"scrollToAnchor\",\n value: function scrollToAnchor() {\n var anchor = getAnchor(this.location);\n\n if (anchor != null) {\n this.view.scrollToAnchor(anchor);\n return true;\n }\n }\n }, {\n key: \"recordTimingMetric\",\n value: function recordTimingMetric(metric) {\n this.timingMetrics[metric] = new Date().getTime();\n }\n }, {\n key: \"getTimingMetrics\",\n value: function getTimingMetrics() {\n return Object.assign({}, this.timingMetrics);\n }\n }, {\n key: \"getHistoryMethodForAction\",\n value: function getHistoryMethodForAction(action) {\n switch (action) {\n case \"replace\":\n return history.replaceState;\n\n case \"advance\":\n case \"restore\":\n return history.pushState;\n }\n }\n }, {\n key: \"hasPreloadedResponse\",\n value: function hasPreloadedResponse() {\n return _typeof(this.response) == \"object\";\n }\n }, {\n key: \"shouldIssueRequest\",\n value: function shouldIssueRequest() {\n if (this.isSamePage) {\n return false;\n } else if (this.action == \"restore\") {\n return !this.hasCachedSnapshot();\n } else {\n return this.willRender;\n }\n }\n }, {\n key: \"cacheSnapshot\",\n value: function cacheSnapshot() {\n var _this21 = this;\n\n if (!this.snapshotCached) {\n this.view.cacheSnapshot().then(function (snapshot) {\n return snapshot && _this21.visitCachedSnapshot(snapshot);\n });\n this.snapshotCached = true;\n }\n }\n }, {\n key: \"render\",\n value: function () {\n var _render3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(callback) {\n var _this22 = this;\n\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n this.cancelRender();\n _context13.next = 3;\n return new Promise(function (resolve) {\n _this22.frame = requestAnimationFrame(function () {\n return resolve();\n });\n });\n\n case 3:\n _context13.next = 5;\n return callback();\n\n case 5:\n delete this.frame;\n this.performScroll();\n\n case 7:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n function render(_x9) {\n return _render3.apply(this, arguments);\n }\n\n return render;\n }()\n }, {\n key: \"cancelRender\",\n value: function cancelRender() {\n if (this.frame) {\n cancelAnimationFrame(this.frame);\n delete this.frame;\n }\n }\n }]);\n\n return Visit;\n}();\n\nfunction isSuccessful(statusCode) {\n return statusCode >= 200 && statusCode < 300;\n}\n\nvar BrowserAdapter = /*#__PURE__*/function () {\n function BrowserAdapter(session) {\n var _this23 = this;\n\n _classCallCheck(this, BrowserAdapter);\n\n this.progressBar = new ProgressBar();\n\n this.showProgressBar = function () {\n _this23.progressBar.show();\n };\n\n this.session = session;\n }\n\n _createClass(BrowserAdapter, [{\n key: \"visitProposedToLocation\",\n value: function visitProposedToLocation(location, options) {\n this.navigator.startVisit(location, uuid(), options);\n }\n }, {\n key: \"visitStarted\",\n value: function visitStarted(visit) {\n visit.loadCachedSnapshot();\n visit.issueRequest();\n visit.changeHistory();\n visit.goToSamePageAnchor();\n }\n }, {\n key: \"visitRequestStarted\",\n value: function visitRequestStarted(visit) {\n this.progressBar.setValue(0);\n\n if (visit.hasCachedSnapshot() || visit.action != \"restore\") {\n this.showVisitProgressBarAfterDelay();\n } else {\n this.showProgressBar();\n }\n }\n }, {\n key: \"visitRequestCompleted\",\n value: function visitRequestCompleted(visit) {\n visit.loadResponse();\n }\n }, {\n key: \"visitRequestFailedWithStatusCode\",\n value: function visitRequestFailedWithStatusCode(visit, statusCode) {\n switch (statusCode) {\n case SystemStatusCode.networkFailure:\n case SystemStatusCode.timeoutFailure:\n case SystemStatusCode.contentTypeMismatch:\n return this.reload();\n\n default:\n return visit.loadResponse();\n }\n }\n }, {\n key: \"visitRequestFinished\",\n value: function visitRequestFinished(visit) {\n this.progressBar.setValue(1);\n this.hideVisitProgressBar();\n }\n }, {\n key: \"visitCompleted\",\n value: function visitCompleted(visit) {}\n }, {\n key: \"pageInvalidated\",\n value: function pageInvalidated() {\n this.reload();\n }\n }, {\n key: \"visitFailed\",\n value: function visitFailed(visit) {}\n }, {\n key: \"visitRendered\",\n value: function visitRendered(visit) {}\n }, {\n key: \"formSubmissionStarted\",\n value: function formSubmissionStarted(formSubmission) {\n this.progressBar.setValue(0);\n this.showFormProgressBarAfterDelay();\n }\n }, {\n key: \"formSubmissionFinished\",\n value: function formSubmissionFinished(formSubmission) {\n this.progressBar.setValue(1);\n this.hideFormProgressBar();\n }\n }, {\n key: \"showVisitProgressBarAfterDelay\",\n value: function showVisitProgressBarAfterDelay() {\n this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n }, {\n key: \"hideVisitProgressBar\",\n value: function hideVisitProgressBar() {\n this.progressBar.hide();\n\n if (this.visitProgressBarTimeout != null) {\n window.clearTimeout(this.visitProgressBarTimeout);\n delete this.visitProgressBarTimeout;\n }\n }\n }, {\n key: \"showFormProgressBarAfterDelay\",\n value: function showFormProgressBarAfterDelay() {\n if (this.formProgressBarTimeout == null) {\n this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n }\n }, {\n key: \"hideFormProgressBar\",\n value: function hideFormProgressBar() {\n this.progressBar.hide();\n\n if (this.formProgressBarTimeout != null) {\n window.clearTimeout(this.formProgressBarTimeout);\n delete this.formProgressBarTimeout;\n }\n }\n }, {\n key: \"reload\",\n value: function reload() {\n window.location.reload();\n }\n }, {\n key: \"navigator\",\n get: function get() {\n return this.session.navigator;\n }\n }]);\n\n return BrowserAdapter;\n}();\n\nvar CacheObserver = /*#__PURE__*/function () {\n function CacheObserver() {\n _classCallCheck(this, CacheObserver);\n\n this.started = false;\n }\n\n _createClass(CacheObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n }\n }\n }, {\n key: \"removeStaleElements\",\n value: function removeStaleElements() {\n var staleElements = _toConsumableArray(document.querySelectorAll('[data-turbo-cache=\"false\"]'));\n\n var _iterator6 = _createForOfIteratorHelper(staleElements),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var element = _step6.value;\n element.remove();\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n }]);\n\n return CacheObserver;\n}();\n\nvar FormSubmitObserver = /*#__PURE__*/function () {\n function FormSubmitObserver(delegate) {\n var _this24 = this;\n\n _classCallCheck(this, FormSubmitObserver);\n\n this.started = false;\n\n this.submitCaptured = function () {\n removeEventListener(\"submit\", _this24.submitBubbled, false);\n addEventListener(\"submit\", _this24.submitBubbled, false);\n };\n\n this.submitBubbled = function (event) {\n if (!event.defaultPrevented) {\n var form = event.target instanceof HTMLFormElement ? event.target : undefined;\n var submitter = event.submitter || undefined;\n\n if (form) {\n var method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.getAttribute(\"method\");\n\n if (method != \"dialog\" && _this24.delegate.willSubmitForm(form, submitter)) {\n event.preventDefault();\n\n _this24.delegate.formSubmitted(form, submitter);\n }\n }\n }\n };\n\n this.delegate = delegate;\n }\n\n _createClass(FormSubmitObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n addEventListener(\"submit\", this.submitCaptured, true);\n this.started = true;\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n removeEventListener(\"submit\", this.submitCaptured, true);\n this.started = false;\n }\n }\n }]);\n\n return FormSubmitObserver;\n}();\n\nvar FrameRedirector = /*#__PURE__*/function () {\n function FrameRedirector(element) {\n _classCallCheck(this, FrameRedirector);\n\n this.element = element;\n this.linkInterceptor = new LinkInterceptor(this, element);\n this.formInterceptor = new FormInterceptor(this, element);\n }\n\n _createClass(FrameRedirector, [{\n key: \"start\",\n value: function start() {\n this.linkInterceptor.start();\n this.formInterceptor.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.linkInterceptor.stop();\n this.formInterceptor.stop();\n }\n }, {\n key: \"shouldInterceptLinkClick\",\n value: function shouldInterceptLinkClick(element, url) {\n return this.shouldRedirect(element);\n }\n }, {\n key: \"linkClickIntercepted\",\n value: function linkClickIntercepted(element, url) {\n var frame = this.findFrameElement(element);\n\n if (frame) {\n frame.delegate.linkClickIntercepted(element, url);\n }\n }\n }, {\n key: \"shouldInterceptFormSubmission\",\n value: function shouldInterceptFormSubmission(element, submitter) {\n return this.shouldSubmit(element, submitter);\n }\n }, {\n key: \"formSubmissionIntercepted\",\n value: function formSubmissionIntercepted(element, submitter) {\n var frame = this.findFrameElement(element, submitter);\n\n if (frame) {\n frame.removeAttribute(\"reloadable\");\n frame.delegate.formSubmissionIntercepted(element, submitter);\n }\n }\n }, {\n key: \"shouldSubmit\",\n value: function shouldSubmit(form, submitter) {\n var _a;\n\n var action = getAction(form, submitter);\n var meta = this.element.ownerDocument.querySelector(\"meta[name=\\\"turbo-root\\\"]\");\n var rootLocation = expandURL((_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\");\n return this.shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation);\n }\n }, {\n key: \"shouldRedirect\",\n value: function shouldRedirect(element, submitter) {\n var frame = this.findFrameElement(element, submitter);\n return frame ? frame != element.closest(\"turbo-frame\") : false;\n }\n }, {\n key: \"findFrameElement\",\n value: function findFrameElement(element, submitter) {\n var id = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"data-turbo-frame\")) || element.getAttribute(\"data-turbo-frame\");\n\n if (id && id != \"_top\") {\n var frame = this.element.querySelector(\"#\".concat(id, \":not([disabled])\"));\n\n if (frame instanceof FrameElement) {\n return frame;\n }\n }\n }\n }]);\n\n return FrameRedirector;\n}();\n\nvar History = /*#__PURE__*/function () {\n function History(delegate) {\n var _this25 = this;\n\n _classCallCheck(this, History);\n\n this.restorationIdentifier = uuid();\n this.restorationData = {};\n this.started = false;\n this.pageLoaded = false;\n\n this.onPopState = function (event) {\n if (_this25.shouldHandlePopState()) {\n var _ref16 = event.state || {},\n turbo = _ref16.turbo;\n\n if (turbo) {\n _this25.location = new URL(window.location.href);\n var restorationIdentifier = turbo.restorationIdentifier;\n _this25.restorationIdentifier = restorationIdentifier;\n\n _this25.delegate.historyPoppedToLocationWithRestorationIdentifier(_this25.location, restorationIdentifier);\n }\n }\n };\n\n this.onPageLoad = /*#__PURE__*/function () {\n var _ref17 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(event) {\n return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n _context14.next = 2;\n return nextMicrotask();\n\n case 2:\n _this25.pageLoaded = true;\n\n case 3:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14);\n }));\n\n return function (_x10) {\n return _ref17.apply(this, arguments);\n };\n }();\n\n this.delegate = delegate;\n }\n\n _createClass(History, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n addEventListener(\"popstate\", this.onPopState, false);\n addEventListener(\"load\", this.onPageLoad, false);\n this.started = true;\n this.replace(new URL(window.location.href));\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n removeEventListener(\"popstate\", this.onPopState, false);\n removeEventListener(\"load\", this.onPageLoad, false);\n this.started = false;\n }\n }\n }, {\n key: \"push\",\n value: function push(location, restorationIdentifier) {\n this.update(history.pushState, location, restorationIdentifier);\n }\n }, {\n key: \"replace\",\n value: function replace(location, restorationIdentifier) {\n this.update(history.replaceState, location, restorationIdentifier);\n }\n }, {\n key: \"update\",\n value: function update(method, location) {\n var restorationIdentifier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : uuid();\n var state = {\n turbo: {\n restorationIdentifier: restorationIdentifier\n }\n };\n method.call(history, state, \"\", location.href);\n this.location = location;\n this.restorationIdentifier = restorationIdentifier;\n }\n }, {\n key: \"getRestorationDataForIdentifier\",\n value: function getRestorationDataForIdentifier(restorationIdentifier) {\n return this.restorationData[restorationIdentifier] || {};\n }\n }, {\n key: \"updateRestorationData\",\n value: function updateRestorationData(additionalData) {\n var restorationIdentifier = this.restorationIdentifier;\n var restorationData = this.restorationData[restorationIdentifier];\n this.restorationData[restorationIdentifier] = Object.assign(Object.assign({}, restorationData), additionalData);\n }\n }, {\n key: \"assumeControlOfScrollRestoration\",\n value: function assumeControlOfScrollRestoration() {\n var _a;\n\n if (!this.previousScrollRestoration) {\n this.previousScrollRestoration = (_a = history.scrollRestoration) !== null && _a !== void 0 ? _a : \"auto\";\n history.scrollRestoration = \"manual\";\n }\n }\n }, {\n key: \"relinquishControlOfScrollRestoration\",\n value: function relinquishControlOfScrollRestoration() {\n if (this.previousScrollRestoration) {\n history.scrollRestoration = this.previousScrollRestoration;\n delete this.previousScrollRestoration;\n }\n }\n }, {\n key: \"shouldHandlePopState\",\n value: function shouldHandlePopState() {\n return this.pageIsLoaded();\n }\n }, {\n key: \"pageIsLoaded\",\n value: function pageIsLoaded() {\n return this.pageLoaded || document.readyState == \"complete\";\n }\n }]);\n\n return History;\n}();\n\nvar LinkClickObserver = /*#__PURE__*/function () {\n function LinkClickObserver(delegate) {\n var _this26 = this;\n\n _classCallCheck(this, LinkClickObserver);\n\n this.started = false;\n\n this.clickCaptured = function () {\n removeEventListener(\"click\", _this26.clickBubbled, false);\n addEventListener(\"click\", _this26.clickBubbled, false);\n };\n\n this.clickBubbled = function (event) {\n if (_this26.clickEventIsSignificant(event)) {\n var target = event.composedPath && event.composedPath()[0] || event.target;\n\n var link = _this26.findLinkFromClickTarget(target);\n\n if (link) {\n var _location = _this26.getLocationForLink(link);\n\n if (_this26.delegate.willFollowLinkToLocation(link, _location)) {\n event.preventDefault();\n\n _this26.delegate.followedLinkToLocation(link, _location);\n }\n }\n }\n };\n\n this.delegate = delegate;\n }\n\n _createClass(LinkClickObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n addEventListener(\"click\", this.clickCaptured, true);\n this.started = true;\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n removeEventListener(\"click\", this.clickCaptured, true);\n this.started = false;\n }\n }\n }, {\n key: \"clickEventIsSignificant\",\n value: function clickEventIsSignificant(event) {\n return !(event.target && event.target.isContentEditable || event.defaultPrevented || event.which > 1 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey);\n }\n }, {\n key: \"findLinkFromClickTarget\",\n value: function findLinkFromClickTarget(target) {\n if (target instanceof Element) {\n return target.closest(\"a[href]:not([target^=_]):not([download])\");\n }\n }\n }, {\n key: \"getLocationForLink\",\n value: function getLocationForLink(link) {\n return expandURL(link.getAttribute(\"href\") || \"\");\n }\n }]);\n\n return LinkClickObserver;\n}();\n\nfunction isAction(action) {\n return action == \"advance\" || action == \"replace\" || action == \"restore\";\n}\n\nvar Navigator = /*#__PURE__*/function () {\n function Navigator(delegate) {\n _classCallCheck(this, Navigator);\n\n this.delegate = delegate;\n }\n\n _createClass(Navigator, [{\n key: \"proposeVisit\",\n value: function proposeVisit(location) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.delegate.allowsVisitingLocationWithAction(location, options.action)) {\n if (locationIsVisitable(location, this.view.snapshot.rootLocation)) {\n this.delegate.visitProposedToLocation(location, options);\n } else {\n window.location.href = location.toString();\n }\n }\n }\n }, {\n key: \"startVisit\",\n value: function startVisit(locatable, restorationIdentifier) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.stop();\n this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, Object.assign({\n referrer: this.location\n }, options));\n this.currentVisit.start();\n }\n }, {\n key: \"submitForm\",\n value: function submitForm(form, submitter) {\n this.stop();\n this.formSubmission = new FormSubmission(this, form, submitter, true);\n this.formSubmission.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.formSubmission) {\n this.formSubmission.stop();\n delete this.formSubmission;\n }\n\n if (this.currentVisit) {\n this.currentVisit.cancel();\n delete this.currentVisit;\n }\n }\n }, {\n key: \"adapter\",\n get: function get() {\n return this.delegate.adapter;\n }\n }, {\n key: \"view\",\n get: function get() {\n return this.delegate.view;\n }\n }, {\n key: \"history\",\n get: function get() {\n return this.delegate.history;\n }\n }, {\n key: \"formSubmissionStarted\",\n value: function formSubmissionStarted(formSubmission) {\n if (typeof this.adapter.formSubmissionStarted === 'function') {\n this.adapter.formSubmissionStarted(formSubmission);\n }\n }\n }, {\n key: \"formSubmissionSucceededWithResponse\",\n value: function () {\n var _formSubmissionSucceededWithResponse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(formSubmission, fetchResponse) {\n var responseHTML, statusCode, redirected, action, visitOptions;\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n if (!(formSubmission == this.formSubmission)) {\n _context15.next = 5;\n break;\n }\n\n _context15.next = 3;\n return fetchResponse.responseHTML;\n\n case 3:\n responseHTML = _context15.sent;\n\n if (responseHTML) {\n if (formSubmission.method != FetchMethod.get) {\n this.view.clearSnapshotCache();\n }\n\n statusCode = fetchResponse.statusCode, redirected = fetchResponse.redirected;\n action = this.getActionForFormSubmission(formSubmission);\n visitOptions = {\n action: action,\n response: {\n statusCode: statusCode,\n responseHTML: responseHTML,\n redirected: redirected\n }\n };\n this.proposeVisit(fetchResponse.location, visitOptions);\n }\n\n case 5:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n\n function formSubmissionSucceededWithResponse(_x11, _x12) {\n return _formSubmissionSucceededWithResponse.apply(this, arguments);\n }\n\n return formSubmissionSucceededWithResponse;\n }()\n }, {\n key: \"formSubmissionFailedWithResponse\",\n value: function () {\n var _formSubmissionFailedWithResponse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(formSubmission, fetchResponse) {\n var responseHTML, snapshot;\n return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n _context16.next = 2;\n return fetchResponse.responseHTML;\n\n case 2:\n responseHTML = _context16.sent;\n\n if (!responseHTML) {\n _context16.next = 14;\n break;\n }\n\n snapshot = PageSnapshot.fromHTMLString(responseHTML);\n\n if (!fetchResponse.serverError) {\n _context16.next = 10;\n break;\n }\n\n _context16.next = 8;\n return this.view.renderError(snapshot);\n\n case 8:\n _context16.next = 12;\n break;\n\n case 10:\n _context16.next = 12;\n return this.view.renderPage(snapshot);\n\n case 12:\n this.view.scrollToTop();\n this.view.clearSnapshotCache();\n\n case 14:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n\n function formSubmissionFailedWithResponse(_x13, _x14) {\n return _formSubmissionFailedWithResponse.apply(this, arguments);\n }\n\n return formSubmissionFailedWithResponse;\n }()\n }, {\n key: \"formSubmissionErrored\",\n value: function formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n }, {\n key: \"formSubmissionFinished\",\n value: function formSubmissionFinished(formSubmission) {\n if (typeof this.adapter.formSubmissionFinished === 'function') {\n this.adapter.formSubmissionFinished(formSubmission);\n }\n }\n }, {\n key: \"visitStarted\",\n value: function visitStarted(visit) {\n this.delegate.visitStarted(visit);\n }\n }, {\n key: \"visitCompleted\",\n value: function visitCompleted(visit) {\n this.delegate.visitCompleted(visit);\n }\n }, {\n key: \"locationWithActionIsSamePage\",\n value: function locationWithActionIsSamePage(location, action) {\n var anchor = getAnchor(location);\n var currentAnchor = getAnchor(this.view.lastRenderedLocation);\n var isRestorationToTop = action === 'restore' && typeof anchor === 'undefined';\n return action !== \"replace\" && getRequestURL(location) === getRequestURL(this.view.lastRenderedLocation) && (isRestorationToTop || anchor != null && anchor !== currentAnchor);\n }\n }, {\n key: \"visitScrolledToSamePageLocation\",\n value: function visitScrolledToSamePageLocation(oldURL, newURL) {\n this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);\n }\n }, {\n key: \"location\",\n get: function get() {\n return this.history.location;\n }\n }, {\n key: \"restorationIdentifier\",\n get: function get() {\n return this.history.restorationIdentifier;\n }\n }, {\n key: \"getActionForFormSubmission\",\n value: function getActionForFormSubmission(formSubmission) {\n var formElement = formSubmission.formElement,\n submitter = formSubmission.submitter;\n var action = getAttribute(\"data-turbo-action\", submitter, formElement);\n return isAction(action) ? action : \"advance\";\n }\n }]);\n\n return Navigator;\n}();\n\nvar PageStage;\n\n(function (PageStage) {\n PageStage[PageStage[\"initial\"] = 0] = \"initial\";\n PageStage[PageStage[\"loading\"] = 1] = \"loading\";\n PageStage[PageStage[\"interactive\"] = 2] = \"interactive\";\n PageStage[PageStage[\"complete\"] = 3] = \"complete\";\n})(PageStage || (PageStage = {}));\n\nvar PageObserver = /*#__PURE__*/function () {\n function PageObserver(delegate) {\n var _this27 = this;\n\n _classCallCheck(this, PageObserver);\n\n this.stage = PageStage.initial;\n this.started = false;\n\n this.interpretReadyState = function () {\n var readyState = _this27.readyState;\n\n if (readyState == \"interactive\") {\n _this27.pageIsInteractive();\n } else if (readyState == \"complete\") {\n _this27.pageIsComplete();\n }\n };\n\n this.pageWillUnload = function () {\n _this27.delegate.pageWillUnload();\n };\n\n this.delegate = delegate;\n }\n\n _createClass(PageObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n if (this.stage == PageStage.initial) {\n this.stage = PageStage.loading;\n }\n\n document.addEventListener(\"readystatechange\", this.interpretReadyState, false);\n addEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = true;\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n document.removeEventListener(\"readystatechange\", this.interpretReadyState, false);\n removeEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = false;\n }\n }\n }, {\n key: \"pageIsInteractive\",\n value: function pageIsInteractive() {\n if (this.stage == PageStage.loading) {\n this.stage = PageStage.interactive;\n this.delegate.pageBecameInteractive();\n }\n }\n }, {\n key: \"pageIsComplete\",\n value: function pageIsComplete() {\n this.pageIsInteractive();\n\n if (this.stage == PageStage.interactive) {\n this.stage = PageStage.complete;\n this.delegate.pageLoaded();\n }\n }\n }, {\n key: \"readyState\",\n get: function get() {\n return document.readyState;\n }\n }]);\n\n return PageObserver;\n}();\n\nvar ScrollObserver = /*#__PURE__*/function () {\n function ScrollObserver(delegate) {\n var _this28 = this;\n\n _classCallCheck(this, ScrollObserver);\n\n this.started = false;\n\n this.onScroll = function () {\n _this28.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n };\n\n this.delegate = delegate;\n }\n\n _createClass(ScrollObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n addEventListener(\"scroll\", this.onScroll, false);\n this.onScroll();\n this.started = true;\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n removeEventListener(\"scroll\", this.onScroll, false);\n this.started = false;\n }\n }\n }, {\n key: \"updatePosition\",\n value: function updatePosition(position) {\n this.delegate.scrollPositionChanged(position);\n }\n }]);\n\n return ScrollObserver;\n}();\n\nvar StreamObserver = /*#__PURE__*/function () {\n function StreamObserver(delegate) {\n var _this29 = this;\n\n _classCallCheck(this, StreamObserver);\n\n this.sources = new Set();\n this.started = false;\n\n this.inspectFetchResponse = function (event) {\n var response = fetchResponseFromEvent(event);\n\n if (response && fetchResponseIsStream(response)) {\n event.preventDefault();\n\n _this29.receiveMessageResponse(response);\n }\n };\n\n this.receiveMessageEvent = function (event) {\n if (_this29.started && typeof event.data == \"string\") {\n _this29.receiveMessageHTML(event.data);\n }\n };\n\n this.delegate = delegate;\n }\n\n _createClass(StreamObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n }, {\n key: \"connectStreamSource\",\n value: function connectStreamSource(source) {\n if (!this.streamSourceIsConnected(source)) {\n this.sources.add(source);\n source.addEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n }, {\n key: \"disconnectStreamSource\",\n value: function disconnectStreamSource(source) {\n if (this.streamSourceIsConnected(source)) {\n this.sources.delete(source);\n source.removeEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n }, {\n key: \"streamSourceIsConnected\",\n value: function streamSourceIsConnected(source) {\n return this.sources.has(source);\n }\n }, {\n key: \"receiveMessageResponse\",\n value: function () {\n var _receiveMessageResponse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(response) {\n var html;\n return _regeneratorRuntime.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n _context17.next = 2;\n return response.responseHTML;\n\n case 2:\n html = _context17.sent;\n\n if (html) {\n this.receiveMessageHTML(html);\n }\n\n case 4:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17, this);\n }));\n\n function receiveMessageResponse(_x15) {\n return _receiveMessageResponse.apply(this, arguments);\n }\n\n return receiveMessageResponse;\n }()\n }, {\n key: \"receiveMessageHTML\",\n value: function receiveMessageHTML(html) {\n this.delegate.receivedMessageFromStream(new StreamMessage(html));\n }\n }]);\n\n return StreamObserver;\n}();\n\nfunction fetchResponseFromEvent(event) {\n var _a;\n\n var fetchResponse = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.fetchResponse;\n\n if (fetchResponse instanceof FetchResponse) {\n return fetchResponse;\n }\n}\n\nfunction fetchResponseIsStream(response) {\n var _a;\n\n var contentType = (_a = response.contentType) !== null && _a !== void 0 ? _a : \"\";\n return contentType.startsWith(StreamMessage.contentType);\n}\n\nvar ErrorRenderer = /*#__PURE__*/function (_Renderer2) {\n _inherits(ErrorRenderer, _Renderer2);\n\n var _super6 = _createSuper(ErrorRenderer);\n\n function ErrorRenderer() {\n _classCallCheck(this, ErrorRenderer);\n\n return _super6.apply(this, arguments);\n }\n\n _createClass(ErrorRenderer, [{\n key: \"render\",\n value: function () {\n var _render4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18() {\n return _regeneratorRuntime.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n this.replaceHeadAndBody();\n this.activateScriptElements();\n\n case 2:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18, this);\n }));\n\n function render() {\n return _render4.apply(this, arguments);\n }\n\n return render;\n }()\n }, {\n key: \"replaceHeadAndBody\",\n value: function replaceHeadAndBody() {\n var _document = document,\n documentElement = _document.documentElement,\n head = _document.head,\n body = _document.body;\n documentElement.replaceChild(this.newHead, head);\n documentElement.replaceChild(this.newElement, body);\n }\n }, {\n key: \"activateScriptElements\",\n value: function activateScriptElements() {\n var _iterator7 = _createForOfIteratorHelper(this.scriptElements),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var replaceableElement = _step7.value;\n var parentNode = replaceableElement.parentNode;\n\n if (parentNode) {\n var element = this.createScriptElement(replaceableElement);\n parentNode.replaceChild(element, replaceableElement);\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n }, {\n key: \"newHead\",\n get: function get() {\n return this.newSnapshot.headSnapshot.element;\n }\n }, {\n key: \"scriptElements\",\n get: function get() {\n return _toConsumableArray(document.documentElement.querySelectorAll(\"script\"));\n }\n }]);\n\n return ErrorRenderer;\n}(Renderer);\n\nvar PageRenderer = /*#__PURE__*/function (_Renderer3) {\n _inherits(PageRenderer, _Renderer3);\n\n var _super7 = _createSuper(PageRenderer);\n\n function PageRenderer() {\n _classCallCheck(this, PageRenderer);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(PageRenderer, [{\n key: \"shouldRender\",\n get: function get() {\n return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;\n }\n }, {\n key: \"prepareToRender\",\n value: function prepareToRender() {\n this.mergeHead();\n }\n }, {\n key: \"render\",\n value: function () {\n var _render5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19() {\n return _regeneratorRuntime.wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n if (this.willRender) {\n this.replaceBody();\n }\n\n case 1:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19, this);\n }));\n\n function render() {\n return _render5.apply(this, arguments);\n }\n\n return render;\n }()\n }, {\n key: \"finishRendering\",\n value: function finishRendering() {\n _get(_getPrototypeOf(PageRenderer.prototype), \"finishRendering\", this).call(this);\n\n if (!this.isPreview) {\n this.focusFirstAutofocusableElement();\n }\n }\n }, {\n key: \"currentHeadSnapshot\",\n get: function get() {\n return this.currentSnapshot.headSnapshot;\n }\n }, {\n key: \"newHeadSnapshot\",\n get: function get() {\n return this.newSnapshot.headSnapshot;\n }\n }, {\n key: \"newElement\",\n get: function get() {\n return this.newSnapshot.element;\n }\n }, {\n key: \"mergeHead\",\n value: function mergeHead() {\n this.copyNewHeadStylesheetElements();\n this.copyNewHeadScriptElements();\n this.removeCurrentHeadProvisionalElements();\n this.copyNewHeadProvisionalElements();\n }\n }, {\n key: \"replaceBody\",\n value: function replaceBody() {\n var _this30 = this;\n\n this.preservingPermanentElements(function () {\n _this30.activateNewBody();\n\n _this30.assignNewBody();\n });\n }\n }, {\n key: \"trackedElementsAreIdentical\",\n get: function get() {\n return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;\n }\n }, {\n key: \"copyNewHeadStylesheetElements\",\n value: function copyNewHeadStylesheetElements() {\n var _iterator8 = _createForOfIteratorHelper(this.newHeadStylesheetElements),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var element = _step8.value;\n document.head.appendChild(element);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n }, {\n key: \"copyNewHeadScriptElements\",\n value: function copyNewHeadScriptElements() {\n var _iterator9 = _createForOfIteratorHelper(this.newHeadScriptElements),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var element = _step9.value;\n document.head.appendChild(this.createScriptElement(element));\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n }\n }, {\n key: \"removeCurrentHeadProvisionalElements\",\n value: function removeCurrentHeadProvisionalElements() {\n var _iterator10 = _createForOfIteratorHelper(this.currentHeadProvisionalElements),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var element = _step10.value;\n document.head.removeChild(element);\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n }\n }, {\n key: \"copyNewHeadProvisionalElements\",\n value: function copyNewHeadProvisionalElements() {\n var _iterator11 = _createForOfIteratorHelper(this.newHeadProvisionalElements),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var element = _step11.value;\n document.head.appendChild(element);\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n }\n }, {\n key: \"activateNewBody\",\n value: function activateNewBody() {\n document.adoptNode(this.newElement);\n this.activateNewBodyScriptElements();\n }\n }, {\n key: \"activateNewBodyScriptElements\",\n value: function activateNewBodyScriptElements() {\n var _iterator12 = _createForOfIteratorHelper(this.newBodyScriptElements),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var inertScriptElement = _step12.value;\n var activatedScriptElement = this.createScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n }\n }, {\n key: \"assignNewBody\",\n value: function assignNewBody() {\n if (document.body && this.newElement instanceof HTMLBodyElement) {\n document.body.replaceWith(this.newElement);\n } else {\n document.documentElement.appendChild(this.newElement);\n }\n }\n }, {\n key: \"newHeadStylesheetElements\",\n get: function get() {\n return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n }, {\n key: \"newHeadScriptElements\",\n get: function get() {\n return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n }, {\n key: \"currentHeadProvisionalElements\",\n get: function get() {\n return this.currentHeadSnapshot.provisionalElements;\n }\n }, {\n key: \"newHeadProvisionalElements\",\n get: function get() {\n return this.newHeadSnapshot.provisionalElements;\n }\n }, {\n key: \"newBodyScriptElements\",\n get: function get() {\n return this.newElement.querySelectorAll(\"script\");\n }\n }]);\n\n return PageRenderer;\n}(Renderer);\n\nvar SnapshotCache = /*#__PURE__*/function () {\n function SnapshotCache(size) {\n _classCallCheck(this, SnapshotCache);\n\n this.keys = [];\n this.snapshots = {};\n this.size = size;\n }\n\n _createClass(SnapshotCache, [{\n key: \"has\",\n value: function has(location) {\n return toCacheKey(location) in this.snapshots;\n }\n }, {\n key: \"get\",\n value: function get(location) {\n if (this.has(location)) {\n var snapshot = this.read(location);\n this.touch(location);\n return snapshot;\n }\n }\n }, {\n key: \"put\",\n value: function put(location, snapshot) {\n this.write(location, snapshot);\n this.touch(location);\n return snapshot;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.snapshots = {};\n }\n }, {\n key: \"read\",\n value: function read(location) {\n return this.snapshots[toCacheKey(location)];\n }\n }, {\n key: \"write\",\n value: function write(location, snapshot) {\n this.snapshots[toCacheKey(location)] = snapshot;\n }\n }, {\n key: \"touch\",\n value: function touch(location) {\n var key = toCacheKey(location);\n var index = this.keys.indexOf(key);\n if (index > -1) this.keys.splice(index, 1);\n this.keys.unshift(key);\n this.trim();\n }\n }, {\n key: \"trim\",\n value: function trim() {\n var _iterator13 = _createForOfIteratorHelper(this.keys.splice(this.size)),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var key = _step13.value;\n delete this.snapshots[key];\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n }\n }]);\n\n return SnapshotCache;\n}();\n\nvar PageView = /*#__PURE__*/function (_View2) {\n _inherits(PageView, _View2);\n\n var _super8 = _createSuper(PageView);\n\n function PageView() {\n var _this31;\n\n _classCallCheck(this, PageView);\n\n _this31 = _super8.apply(this, arguments);\n _this31.snapshotCache = new SnapshotCache(10);\n _this31.lastRenderedLocation = new URL(location.href);\n return _this31;\n }\n\n _createClass(PageView, [{\n key: \"renderPage\",\n value: function renderPage(snapshot) {\n var isPreview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var willRender = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var renderer = new PageRenderer(this.snapshot, snapshot, isPreview, willRender);\n return this.render(renderer);\n }\n }, {\n key: \"renderError\",\n value: function renderError(snapshot) {\n var renderer = new ErrorRenderer(this.snapshot, snapshot, false);\n return this.render(renderer);\n }\n }, {\n key: \"clearSnapshotCache\",\n value: function clearSnapshotCache() {\n this.snapshotCache.clear();\n }\n }, {\n key: \"cacheSnapshot\",\n value: function () {\n var _cacheSnapshot = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20() {\n var snapshot, _location2, cachedSnapshot;\n\n return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n if (!this.shouldCacheSnapshot) {\n _context20.next = 8;\n break;\n }\n\n this.delegate.viewWillCacheSnapshot();\n snapshot = this.snapshot, _location2 = this.lastRenderedLocation;\n _context20.next = 5;\n return nextEventLoopTick();\n\n case 5:\n cachedSnapshot = snapshot.clone();\n this.snapshotCache.put(_location2, cachedSnapshot);\n return _context20.abrupt(\"return\", cachedSnapshot);\n\n case 8:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20, this);\n }));\n\n function cacheSnapshot() {\n return _cacheSnapshot.apply(this, arguments);\n }\n\n return cacheSnapshot;\n }()\n }, {\n key: \"getCachedSnapshotForLocation\",\n value: function getCachedSnapshotForLocation(location) {\n return this.snapshotCache.get(location);\n }\n }, {\n key: \"snapshot\",\n get: function get() {\n return PageSnapshot.fromElement(this.element);\n }\n }, {\n key: \"shouldCacheSnapshot\",\n get: function get() {\n return this.snapshot.isCacheable;\n }\n }]);\n\n return PageView;\n}(View);\n\nvar Session = /*#__PURE__*/function () {\n function Session() {\n _classCallCheck(this, Session);\n\n this.navigator = new Navigator(this);\n this.history = new History(this);\n this.view = new PageView(this, document.documentElement);\n this.adapter = new BrowserAdapter(this);\n this.pageObserver = new PageObserver(this);\n this.cacheObserver = new CacheObserver();\n this.linkClickObserver = new LinkClickObserver(this);\n this.formSubmitObserver = new FormSubmitObserver(this);\n this.scrollObserver = new ScrollObserver(this);\n this.streamObserver = new StreamObserver(this);\n this.frameRedirector = new FrameRedirector(document.documentElement);\n this.drive = true;\n this.enabled = true;\n this.progressBarDelay = 500;\n this.started = false;\n }\n\n _createClass(Session, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.pageObserver.start();\n this.cacheObserver.start();\n this.linkClickObserver.start();\n this.formSubmitObserver.start();\n this.scrollObserver.start();\n this.streamObserver.start();\n this.frameRedirector.start();\n this.history.start();\n this.started = true;\n this.enabled = true;\n }\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.enabled = false;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.pageObserver.stop();\n this.cacheObserver.stop();\n this.linkClickObserver.stop();\n this.formSubmitObserver.stop();\n this.scrollObserver.stop();\n this.streamObserver.stop();\n this.frameRedirector.stop();\n this.history.stop();\n this.started = false;\n }\n }\n }, {\n key: \"registerAdapter\",\n value: function registerAdapter(adapter) {\n this.adapter = adapter;\n }\n }, {\n key: \"visit\",\n value: function visit(location) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.navigator.proposeVisit(expandURL(location), options);\n }\n }, {\n key: \"connectStreamSource\",\n value: function connectStreamSource(source) {\n this.streamObserver.connectStreamSource(source);\n }\n }, {\n key: \"disconnectStreamSource\",\n value: function disconnectStreamSource(source) {\n this.streamObserver.disconnectStreamSource(source);\n }\n }, {\n key: \"renderStreamMessage\",\n value: function renderStreamMessage(message) {\n document.documentElement.appendChild(StreamMessage.wrap(message).fragment);\n }\n }, {\n key: \"clearCache\",\n value: function clearCache() {\n this.view.clearSnapshotCache();\n }\n }, {\n key: \"setProgressBarDelay\",\n value: function setProgressBarDelay(delay) {\n this.progressBarDelay = delay;\n }\n }, {\n key: \"location\",\n get: function get() {\n return this.history.location;\n }\n }, {\n key: \"restorationIdentifier\",\n get: function get() {\n return this.history.restorationIdentifier;\n }\n }, {\n key: \"historyPoppedToLocationWithRestorationIdentifier\",\n value: function historyPoppedToLocationWithRestorationIdentifier(location, restorationIdentifier) {\n if (this.enabled) {\n this.navigator.startVisit(location, restorationIdentifier, {\n action: \"restore\",\n historyChanged: true\n });\n } else {\n this.adapter.pageInvalidated();\n }\n }\n }, {\n key: \"scrollPositionChanged\",\n value: function scrollPositionChanged(position) {\n this.history.updateRestorationData({\n scrollPosition: position\n });\n }\n }, {\n key: \"willFollowLinkToLocation\",\n value: function willFollowLinkToLocation(link, location) {\n return this.elementDriveEnabled(link) && locationIsVisitable(location, this.snapshot.rootLocation) && this.applicationAllowsFollowingLinkToLocation(link, location);\n }\n }, {\n key: \"followedLinkToLocation\",\n value: function followedLinkToLocation(link, location) {\n var action = this.getActionForLink(link);\n this.convertLinkWithMethodClickToFormSubmission(link) || this.visit(location.href, {\n action: action\n });\n }\n }, {\n key: \"convertLinkWithMethodClickToFormSubmission\",\n value: function convertLinkWithMethodClickToFormSubmission(link) {\n var linkMethod = link.getAttribute(\"data-turbo-method\");\n\n if (linkMethod) {\n var form = document.createElement(\"form\");\n form.method = linkMethod;\n form.action = link.getAttribute(\"href\") || \"undefined\";\n form.hidden = true;\n\n if (link.hasAttribute(\"data-turbo-confirm\")) {\n form.setAttribute(\"data-turbo-confirm\", link.getAttribute(\"data-turbo-confirm\"));\n }\n\n var frame = this.getTargetFrameForLink(link);\n\n if (frame) {\n form.setAttribute(\"data-turbo-frame\", frame);\n form.addEventListener(\"turbo:submit-start\", function () {\n return form.remove();\n });\n } else {\n form.addEventListener(\"submit\", function () {\n return form.remove();\n });\n }\n\n document.body.appendChild(form);\n return dispatch(\"submit\", {\n cancelable: true,\n target: form\n });\n } else {\n return false;\n }\n }\n }, {\n key: \"allowsVisitingLocationWithAction\",\n value: function allowsVisitingLocationWithAction(location, action) {\n return this.locationWithActionIsSamePage(location, action) || this.applicationAllowsVisitingLocation(location);\n }\n }, {\n key: \"visitProposedToLocation\",\n value: function visitProposedToLocation(location, options) {\n extendURLWithDeprecatedProperties(location);\n this.adapter.visitProposedToLocation(location, options);\n }\n }, {\n key: \"visitStarted\",\n value: function visitStarted(visit) {\n extendURLWithDeprecatedProperties(visit.location);\n\n if (!visit.silent) {\n this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n }\n }\n }, {\n key: \"visitCompleted\",\n value: function visitCompleted(visit) {\n this.notifyApplicationAfterPageLoad(visit.getTimingMetrics());\n }\n }, {\n key: \"locationWithActionIsSamePage\",\n value: function locationWithActionIsSamePage(location, action) {\n return this.navigator.locationWithActionIsSamePage(location, action);\n }\n }, {\n key: \"visitScrolledToSamePageLocation\",\n value: function visitScrolledToSamePageLocation(oldURL, newURL) {\n this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);\n }\n }, {\n key: \"willSubmitForm\",\n value: function willSubmitForm(form, submitter) {\n var action = getAction(form, submitter);\n return this.elementDriveEnabled(form) && (!submitter || this.elementDriveEnabled(submitter)) && locationIsVisitable(expandURL(action), this.snapshot.rootLocation);\n }\n }, {\n key: \"formSubmitted\",\n value: function formSubmitted(form, submitter) {\n this.navigator.submitForm(form, submitter);\n }\n }, {\n key: \"pageBecameInteractive\",\n value: function pageBecameInteractive() {\n this.view.lastRenderedLocation = this.location;\n this.notifyApplicationAfterPageLoad();\n }\n }, {\n key: \"pageLoaded\",\n value: function pageLoaded() {\n this.history.assumeControlOfScrollRestoration();\n }\n }, {\n key: \"pageWillUnload\",\n value: function pageWillUnload() {\n this.history.relinquishControlOfScrollRestoration();\n }\n }, {\n key: \"receivedMessageFromStream\",\n value: function receivedMessageFromStream(message) {\n this.renderStreamMessage(message);\n }\n }, {\n key: \"viewWillCacheSnapshot\",\n value: function viewWillCacheSnapshot() {\n var _a;\n\n if (!((_a = this.navigator.currentVisit) === null || _a === void 0 ? void 0 : _a.silent)) {\n this.notifyApplicationBeforeCachingSnapshot();\n }\n }\n }, {\n key: \"allowsImmediateRender\",\n value: function allowsImmediateRender(_ref18, resume) {\n var element = _ref18.element;\n var event = this.notifyApplicationBeforeRender(element, resume);\n return !event.defaultPrevented;\n }\n }, {\n key: \"viewRenderedSnapshot\",\n value: function viewRenderedSnapshot(snapshot, isPreview) {\n this.view.lastRenderedLocation = this.history.location;\n this.notifyApplicationAfterRender();\n }\n }, {\n key: \"viewInvalidated\",\n value: function viewInvalidated() {\n this.adapter.pageInvalidated();\n }\n }, {\n key: \"frameLoaded\",\n value: function frameLoaded(frame) {\n this.notifyApplicationAfterFrameLoad(frame);\n }\n }, {\n key: \"frameRendered\",\n value: function frameRendered(fetchResponse, frame) {\n this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n }\n }, {\n key: \"applicationAllowsFollowingLinkToLocation\",\n value: function applicationAllowsFollowingLinkToLocation(link, location) {\n var event = this.notifyApplicationAfterClickingLinkToLocation(link, location);\n return !event.defaultPrevented;\n }\n }, {\n key: \"applicationAllowsVisitingLocation\",\n value: function applicationAllowsVisitingLocation(location) {\n var event = this.notifyApplicationBeforeVisitingLocation(location);\n return !event.defaultPrevented;\n }\n }, {\n key: \"notifyApplicationAfterClickingLinkToLocation\",\n value: function notifyApplicationAfterClickingLinkToLocation(link, location) {\n return dispatch(\"turbo:click\", {\n target: link,\n detail: {\n url: location.href\n },\n cancelable: true\n });\n }\n }, {\n key: \"notifyApplicationBeforeVisitingLocation\",\n value: function notifyApplicationBeforeVisitingLocation(location) {\n return dispatch(\"turbo:before-visit\", {\n detail: {\n url: location.href\n },\n cancelable: true\n });\n }\n }, {\n key: \"notifyApplicationAfterVisitingLocation\",\n value: function notifyApplicationAfterVisitingLocation(location, action) {\n markAsBusy(document.documentElement);\n return dispatch(\"turbo:visit\", {\n detail: {\n url: location.href,\n action: action\n }\n });\n }\n }, {\n key: \"notifyApplicationBeforeCachingSnapshot\",\n value: function notifyApplicationBeforeCachingSnapshot() {\n return dispatch(\"turbo:before-cache\");\n }\n }, {\n key: \"notifyApplicationBeforeRender\",\n value: function notifyApplicationBeforeRender(newBody, resume) {\n return dispatch(\"turbo:before-render\", {\n detail: {\n newBody: newBody,\n resume: resume\n },\n cancelable: true\n });\n }\n }, {\n key: \"notifyApplicationAfterRender\",\n value: function notifyApplicationAfterRender() {\n return dispatch(\"turbo:render\");\n }\n }, {\n key: \"notifyApplicationAfterPageLoad\",\n value: function notifyApplicationAfterPageLoad() {\n var timing = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n clearBusyState(document.documentElement);\n return dispatch(\"turbo:load\", {\n detail: {\n url: this.location.href,\n timing: timing\n }\n });\n }\n }, {\n key: \"notifyApplicationAfterVisitingSamePageLocation\",\n value: function notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {\n dispatchEvent(new HashChangeEvent(\"hashchange\", {\n oldURL: oldURL.toString(),\n newURL: newURL.toString()\n }));\n }\n }, {\n key: \"notifyApplicationAfterFrameLoad\",\n value: function notifyApplicationAfterFrameLoad(frame) {\n return dispatch(\"turbo:frame-load\", {\n target: frame\n });\n }\n }, {\n key: \"notifyApplicationAfterFrameRender\",\n value: function notifyApplicationAfterFrameRender(fetchResponse, frame) {\n return dispatch(\"turbo:frame-render\", {\n detail: {\n fetchResponse: fetchResponse\n },\n target: frame,\n cancelable: true\n });\n }\n }, {\n key: \"elementDriveEnabled\",\n value: function elementDriveEnabled(element) {\n var container = element === null || element === void 0 ? void 0 : element.closest(\"[data-turbo]\");\n\n if (this.drive) {\n if (container) {\n return container.getAttribute(\"data-turbo\") != \"false\";\n } else {\n return true;\n }\n } else {\n if (container) {\n return container.getAttribute(\"data-turbo\") == \"true\";\n } else {\n return false;\n }\n }\n }\n }, {\n key: \"getActionForLink\",\n value: function getActionForLink(link) {\n var action = link.getAttribute(\"data-turbo-action\");\n return isAction(action) ? action : \"advance\";\n }\n }, {\n key: \"getTargetFrameForLink\",\n value: function getTargetFrameForLink(link) {\n var frame = link.getAttribute(\"data-turbo-frame\");\n\n if (frame) {\n return frame;\n } else {\n var container = link.closest(\"turbo-frame\");\n\n if (container) {\n return container.id;\n }\n }\n }\n }, {\n key: \"snapshot\",\n get: function get() {\n return this.view.snapshot;\n }\n }]);\n\n return Session;\n}();\n\nfunction extendURLWithDeprecatedProperties(url) {\n Object.defineProperties(url, deprecatedLocationPropertyDescriptors);\n}\n\nvar deprecatedLocationPropertyDescriptors = {\n absoluteURL: {\n get: function get() {\n return this.toString();\n }\n }\n};\nvar session = new Session();\nvar navigator$1 = session.navigator;\n\nfunction start() {\n session.start();\n}\n\nfunction registerAdapter(adapter) {\n session.registerAdapter(adapter);\n}\n\nfunction visit(location, options) {\n session.visit(location, options);\n}\n\nfunction connectStreamSource(source) {\n session.connectStreamSource(source);\n}\n\nfunction disconnectStreamSource(source) {\n session.disconnectStreamSource(source);\n}\n\nfunction renderStreamMessage(message) {\n session.renderStreamMessage(message);\n}\n\nfunction clearCache() {\n session.clearCache();\n}\n\nfunction setProgressBarDelay(delay) {\n session.setProgressBarDelay(delay);\n}\n\nfunction setConfirmMethod(confirmMethod) {\n FormSubmission.confirmMethod = confirmMethod;\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n __proto__: null,\n navigator: navigator$1,\n session: session,\n PageRenderer: PageRenderer,\n PageSnapshot: PageSnapshot,\n start: start,\n registerAdapter: registerAdapter,\n visit: visit,\n connectStreamSource: connectStreamSource,\n disconnectStreamSource: disconnectStreamSource,\n renderStreamMessage: renderStreamMessage,\n clearCache: clearCache,\n setProgressBarDelay: setProgressBarDelay,\n setConfirmMethod: setConfirmMethod\n});\n\nvar FrameController = /*#__PURE__*/function () {\n function FrameController(element) {\n _classCallCheck(this, FrameController);\n\n this.fetchResponseLoaded = function (fetchResponse) {};\n\n this.currentFetchRequest = null;\n\n this.resolveVisitPromise = function () {};\n\n this.connected = false;\n this.hasBeenLoaded = false;\n this.settingSourceURL = false;\n this.element = element;\n this.view = new FrameView(this, this.element);\n this.appearanceObserver = new AppearanceObserver(this, this.element);\n this.linkInterceptor = new LinkInterceptor(this, this.element);\n this.formInterceptor = new FormInterceptor(this, this.element);\n }\n\n _createClass(FrameController, [{\n key: \"connect\",\n value: function connect() {\n if (!this.connected) {\n this.connected = true;\n this.reloadable = false;\n\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n }\n\n this.linkInterceptor.start();\n this.formInterceptor.start();\n this.sourceURLChanged();\n }\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n if (this.connected) {\n this.connected = false;\n this.appearanceObserver.stop();\n this.linkInterceptor.stop();\n this.formInterceptor.stop();\n }\n }\n }, {\n key: \"disabledChanged\",\n value: function disabledChanged() {\n if (this.loadingStyle == FrameLoadingStyle.eager) {\n this.loadSourceURL();\n }\n }\n }, {\n key: \"sourceURLChanged\",\n value: function sourceURLChanged() {\n if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {\n this.loadSourceURL();\n }\n }\n }, {\n key: \"loadingStyleChanged\",\n value: function loadingStyleChanged() {\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n } else {\n this.appearanceObserver.stop();\n this.loadSourceURL();\n }\n }\n }, {\n key: \"loadSourceURL\",\n value: function () {\n var _loadSourceURL = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21() {\n var previousURL;\n return _regeneratorRuntime.wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n if (!(!this.settingSourceURL && this.enabled && this.isActive && (this.reloadable || this.sourceURL != this.currentURL))) {\n _context21.next = 16;\n break;\n }\n\n previousURL = this.currentURL;\n this.currentURL = this.sourceURL;\n\n if (!this.sourceURL) {\n _context21.next = 16;\n break;\n }\n\n _context21.prev = 4;\n this.element.loaded = this.visit(expandURL(this.sourceURL));\n this.appearanceObserver.stop();\n _context21.next = 9;\n return this.element.loaded;\n\n case 9:\n this.hasBeenLoaded = true;\n _context21.next = 16;\n break;\n\n case 12:\n _context21.prev = 12;\n _context21.t0 = _context21[\"catch\"](4);\n this.currentURL = previousURL;\n throw _context21.t0;\n\n case 16:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21, this, [[4, 12]]);\n }));\n\n function loadSourceURL() {\n return _loadSourceURL.apply(this, arguments);\n }\n\n return loadSourceURL;\n }()\n }, {\n key: \"loadResponse\",\n value: function () {\n var _loadResponse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(fetchResponse) {\n var html, _parseHTMLDocument, body, snapshot, renderer;\n\n return _regeneratorRuntime.wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n if (fetchResponse.redirected || fetchResponse.succeeded && fetchResponse.isHTML) {\n this.sourceURL = fetchResponse.response.url;\n }\n\n _context22.prev = 1;\n _context22.next = 4;\n return fetchResponse.responseHTML;\n\n case 4:\n html = _context22.sent;\n\n if (!html) {\n _context22.next = 21;\n break;\n }\n\n _parseHTMLDocument = parseHTMLDocument(html), body = _parseHTMLDocument.body;\n _context22.t0 = Snapshot;\n _context22.next = 10;\n return this.extractForeignFrameElement(body);\n\n case 10:\n _context22.t1 = _context22.sent;\n snapshot = new _context22.t0(_context22.t1);\n renderer = new FrameRenderer(this.view.snapshot, snapshot, false, false);\n\n if (!this.view.renderPromise) {\n _context22.next = 16;\n break;\n }\n\n _context22.next = 16;\n return this.view.renderPromise;\n\n case 16:\n _context22.next = 18;\n return this.view.render(renderer);\n\n case 18:\n session.frameRendered(fetchResponse, this.element);\n session.frameLoaded(this.element);\n this.fetchResponseLoaded(fetchResponse);\n\n case 21:\n _context22.next = 27;\n break;\n\n case 23:\n _context22.prev = 23;\n _context22.t2 = _context22[\"catch\"](1);\n console.error(_context22.t2);\n this.view.invalidate();\n\n case 27:\n _context22.prev = 27;\n\n this.fetchResponseLoaded = function () {};\n\n return _context22.finish(27);\n\n case 30:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22, this, [[1, 23, 27, 30]]);\n }));\n\n function loadResponse(_x16) {\n return _loadResponse.apply(this, arguments);\n }\n\n return loadResponse;\n }()\n }, {\n key: \"elementAppearedInViewport\",\n value: function elementAppearedInViewport(element) {\n this.loadSourceURL();\n }\n }, {\n key: \"shouldInterceptLinkClick\",\n value: function shouldInterceptLinkClick(element, url) {\n if (element.hasAttribute(\"data-turbo-method\")) {\n return false;\n } else {\n return this.shouldInterceptNavigation(element);\n }\n }\n }, {\n key: \"linkClickIntercepted\",\n value: function linkClickIntercepted(element, url) {\n this.reloadable = true;\n this.navigateFrame(element, url);\n }\n }, {\n key: \"shouldInterceptFormSubmission\",\n value: function shouldInterceptFormSubmission(element, submitter) {\n return this.shouldInterceptNavigation(element, submitter);\n }\n }, {\n key: \"formSubmissionIntercepted\",\n value: function formSubmissionIntercepted(element, submitter) {\n if (this.formSubmission) {\n this.formSubmission.stop();\n }\n\n this.reloadable = false;\n this.formSubmission = new FormSubmission(this, element, submitter);\n var fetchRequest = this.formSubmission.fetchRequest;\n this.prepareHeadersForRequest(fetchRequest.headers, fetchRequest);\n this.formSubmission.start();\n }\n }, {\n key: \"prepareHeadersForRequest\",\n value: function prepareHeadersForRequest(headers, request) {\n headers[\"Turbo-Frame\"] = this.id;\n }\n }, {\n key: \"requestStarted\",\n value: function requestStarted(request) {\n markAsBusy(this.element);\n }\n }, {\n key: \"requestPreventedHandlingResponse\",\n value: function requestPreventedHandlingResponse(request, response) {\n this.resolveVisitPromise();\n }\n }, {\n key: \"requestSucceededWithResponse\",\n value: function () {\n var _requestSucceededWithResponse2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23(request, response) {\n return _regeneratorRuntime.wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n _context23.next = 2;\n return this.loadResponse(response);\n\n case 2:\n this.resolveVisitPromise();\n\n case 3:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23, this);\n }));\n\n function requestSucceededWithResponse(_x17, _x18) {\n return _requestSucceededWithResponse2.apply(this, arguments);\n }\n\n return requestSucceededWithResponse;\n }()\n }, {\n key: \"requestFailedWithResponse\",\n value: function requestFailedWithResponse(request, response) {\n console.error(response);\n this.resolveVisitPromise();\n }\n }, {\n key: \"requestErrored\",\n value: function requestErrored(request, error) {\n console.error(error);\n this.resolveVisitPromise();\n }\n }, {\n key: \"requestFinished\",\n value: function requestFinished(request) {\n clearBusyState(this.element);\n }\n }, {\n key: \"formSubmissionStarted\",\n value: function formSubmissionStarted(_ref19) {\n var formElement = _ref19.formElement;\n markAsBusy(formElement, this.findFrameElement(formElement));\n }\n }, {\n key: \"formSubmissionSucceededWithResponse\",\n value: function formSubmissionSucceededWithResponse(formSubmission, response) {\n var frame = this.findFrameElement(formSubmission.formElement, formSubmission.submitter);\n this.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);\n frame.delegate.loadResponse(response);\n }\n }, {\n key: \"formSubmissionFailedWithResponse\",\n value: function formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n this.element.delegate.loadResponse(fetchResponse);\n }\n }, {\n key: \"formSubmissionErrored\",\n value: function formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n }, {\n key: \"formSubmissionFinished\",\n value: function formSubmissionFinished(_ref20) {\n var formElement = _ref20.formElement;\n clearBusyState(formElement, this.findFrameElement(formElement));\n }\n }, {\n key: \"allowsImmediateRender\",\n value: function allowsImmediateRender(snapshot, resume) {\n return true;\n }\n }, {\n key: \"viewRenderedSnapshot\",\n value: function viewRenderedSnapshot(snapshot, isPreview) {}\n }, {\n key: \"viewInvalidated\",\n value: function viewInvalidated() {}\n }, {\n key: \"visit\",\n value: function () {\n var _visit = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee24(url) {\n var _this32 = this;\n\n var _a, request;\n\n return _regeneratorRuntime.wrap(function _callee24$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);\n (_a = this.currentFetchRequest) === null || _a === void 0 ? void 0 : _a.cancel();\n this.currentFetchRequest = request;\n return _context24.abrupt(\"return\", new Promise(function (resolve) {\n _this32.resolveVisitPromise = function () {\n _this32.resolveVisitPromise = function () {};\n\n _this32.currentFetchRequest = null;\n resolve();\n };\n\n request.perform();\n }));\n\n case 4:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee24, this);\n }));\n\n function visit(_x19) {\n return _visit.apply(this, arguments);\n }\n\n return visit;\n }()\n }, {\n key: \"navigateFrame\",\n value: function navigateFrame(element, url, submitter) {\n var frame = this.findFrameElement(element, submitter);\n this.proposeVisitIfNavigatedWithAction(frame, element, submitter);\n frame.setAttribute(\"reloadable\", \"\");\n frame.src = url;\n }\n }, {\n key: \"proposeVisitIfNavigatedWithAction\",\n value: function proposeVisitIfNavigatedWithAction(frame, element, submitter) {\n var action = getAttribute(\"data-turbo-action\", submitter, element, frame);\n\n if (isAction(action)) {\n var _SnapshotSubstitution = new SnapshotSubstitution(frame),\n visitCachedSnapshot = _SnapshotSubstitution.visitCachedSnapshot;\n\n frame.delegate.fetchResponseLoaded = function (fetchResponse) {\n if (frame.src) {\n var statusCode = fetchResponse.statusCode,\n redirected = fetchResponse.redirected;\n var responseHTML = frame.ownerDocument.documentElement.outerHTML;\n var response = {\n statusCode: statusCode,\n redirected: redirected,\n responseHTML: responseHTML\n };\n session.visit(frame.src, {\n action: action,\n response: response,\n visitCachedSnapshot: visitCachedSnapshot,\n willRender: false\n });\n }\n };\n }\n }\n }, {\n key: \"findFrameElement\",\n value: function findFrameElement(element, submitter) {\n var _a;\n\n var id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n return (_a = getFrameElementById(id)) !== null && _a !== void 0 ? _a : this.element;\n }\n }, {\n key: \"extractForeignFrameElement\",\n value: function () {\n var _extractForeignFrameElement = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25(container) {\n var element, id;\n return _regeneratorRuntime.wrap(function _callee25$(_context25) {\n while (1) {\n switch (_context25.prev = _context25.next) {\n case 0:\n id = CSS.escape(this.id);\n _context25.prev = 1;\n\n if (!(element = activateElement(container.querySelector(\"turbo-frame#\".concat(id)), this.currentURL))) {\n _context25.next = 4;\n break;\n }\n\n return _context25.abrupt(\"return\", element);\n\n case 4:\n if (!(element = activateElement(container.querySelector(\"turbo-frame[src][recurse~=\".concat(id, \"]\")), this.currentURL))) {\n _context25.next = 10;\n break;\n }\n\n _context25.next = 7;\n return element.loaded;\n\n case 7:\n _context25.next = 9;\n return this.extractForeignFrameElement(element);\n\n case 9:\n return _context25.abrupt(\"return\", _context25.sent);\n\n case 10:\n console.error(\"Response has no matching element\"));\n _context25.next = 16;\n break;\n\n case 13:\n _context25.prev = 13;\n _context25.t0 = _context25[\"catch\"](1);\n console.error(_context25.t0);\n\n case 16:\n return _context25.abrupt(\"return\", new FrameElement());\n\n case 17:\n case \"end\":\n return _context25.stop();\n }\n }\n }, _callee25, this, [[1, 13]]);\n }));\n\n function extractForeignFrameElement(_x20) {\n return _extractForeignFrameElement.apply(this, arguments);\n }\n\n return extractForeignFrameElement;\n }()\n }, {\n key: \"formActionIsVisitable\",\n value: function formActionIsVisitable(form, submitter) {\n var action = getAction(form, submitter);\n return locationIsVisitable(expandURL(action), this.rootLocation);\n }\n }, {\n key: \"shouldInterceptNavigation\",\n value: function shouldInterceptNavigation(element, submitter) {\n var id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n\n if (element instanceof HTMLFormElement && !this.formActionIsVisitable(element, submitter)) {\n return false;\n }\n\n if (!this.enabled || id == \"_top\") {\n return false;\n }\n\n if (id) {\n var frameElement = getFrameElementById(id);\n\n if (frameElement) {\n return !frameElement.disabled;\n }\n }\n\n if (!session.elementDriveEnabled(element)) {\n return false;\n }\n\n if (submitter && !session.elementDriveEnabled(submitter)) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"id\",\n get: function get() {\n return this.element.id;\n }\n }, {\n key: \"enabled\",\n get: function get() {\n return !this.element.disabled;\n }\n }, {\n key: \"sourceURL\",\n get: function get() {\n if (this.element.src) {\n return this.element.src;\n }\n },\n set: function set(sourceURL) {\n this.settingSourceURL = true;\n this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;\n this.currentURL = this.element.src;\n this.settingSourceURL = false;\n }\n }, {\n key: \"reloadable\",\n get: function get() {\n var frame = this.findFrameElement(this.element);\n return frame.hasAttribute(\"reloadable\");\n },\n set: function set(value) {\n var frame = this.findFrameElement(this.element);\n\n if (value) {\n frame.setAttribute(\"reloadable\", \"\");\n } else {\n frame.removeAttribute(\"reloadable\");\n }\n }\n }, {\n key: \"loadingStyle\",\n get: function get() {\n return this.element.loading;\n }\n }, {\n key: \"isLoading\",\n get: function get() {\n return this.formSubmission !== undefined || this.resolveVisitPromise() !== undefined;\n }\n }, {\n key: \"isActive\",\n get: function get() {\n return this.element.isActive && this.connected;\n }\n }, {\n key: \"rootLocation\",\n get: function get() {\n var _a;\n\n var meta = this.element.ownerDocument.querySelector(\"meta[name=\\\"turbo-root\\\"]\");\n var root = (_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n }]);\n\n return FrameController;\n}();\n\nvar SnapshotSubstitution = /*#__PURE__*/_createClass(function SnapshotSubstitution(element) {\n var _this33 = this;\n\n _classCallCheck(this, SnapshotSubstitution);\n\n this.visitCachedSnapshot = function (_ref21) {\n var element = _ref21.element;\n\n var _a;\n\n var id = _this33.id,\n clone = _this33.clone;\n (_a = element.querySelector(\"#\" + id)) === null || _a === void 0 ? void 0 : _a.replaceWith(clone);\n };\n\n this.clone = element.cloneNode(true);\n this.id = element.id;\n});\n\nfunction getFrameElementById(id) {\n if (id != null) {\n var element = document.getElementById(id);\n\n if (element instanceof FrameElement) {\n return element;\n }\n }\n}\n\nfunction activateElement(element, currentURL) {\n if (element) {\n var src = element.getAttribute(\"src\");\n\n if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {\n throw new Error(\"Matching element has a source URL which references itself\"));\n }\n\n if (element.ownerDocument !== document) {\n element = document.importNode(element, true);\n }\n\n if (element instanceof FrameElement) {\n element.connectedCallback();\n element.disconnectedCallback();\n return element;\n }\n }\n}\n\nvar StreamActions = {\n after: function after() {\n var _this34 = this;\n\n this.targetElements.forEach(function (e) {\n var _a;\n\n return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(_this34.templateContent, e.nextSibling);\n });\n },\n append: function append() {\n var _this35 = this;\n\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach(function (e) {\n return e.append(_this35.templateContent);\n });\n },\n before: function before() {\n var _this36 = this;\n\n this.targetElements.forEach(function (e) {\n var _a;\n\n return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(_this36.templateContent, e);\n });\n },\n prepend: function prepend() {\n var _this37 = this;\n\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach(function (e) {\n return e.prepend(_this37.templateContent);\n });\n },\n remove: function remove() {\n this.targetElements.forEach(function (e) {\n return e.remove();\n });\n },\n replace: function replace() {\n var _this38 = this;\n\n this.targetElements.forEach(function (e) {\n return e.replaceWith(_this38.templateContent);\n });\n },\n update: function update() {\n var _this39 = this;\n\n this.targetElements.forEach(function (e) {\n e.innerHTML = \"\";\n e.append(_this39.templateContent);\n });\n }\n};\n\nvar StreamElement = /*#__PURE__*/function (_HTMLElement2) {\n _inherits(StreamElement, _HTMLElement2);\n\n var _super9 = _createSuper(StreamElement);\n\n function StreamElement() {\n _classCallCheck(this, StreamElement);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(StreamElement, [{\n key: \"connectedCallback\",\n value: function () {\n var _connectedCallback = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee26() {\n return _regeneratorRuntime.wrap(function _callee26$(_context26) {\n while (1) {\n switch (_context26.prev = _context26.next) {\n case 0:\n _context26.prev = 0;\n _context26.next = 3;\n return this.render();\n\n case 3:\n _context26.next = 8;\n break;\n\n case 5:\n _context26.prev = 5;\n _context26.t0 = _context26[\"catch\"](0);\n console.error(_context26.t0);\n\n case 8:\n _context26.prev = 8;\n this.disconnect();\n return _context26.finish(8);\n\n case 11:\n case \"end\":\n return _context26.stop();\n }\n }\n }, _callee26, this, [[0, 5, 8, 11]]);\n }));\n\n function connectedCallback() {\n return _connectedCallback.apply(this, arguments);\n }\n\n return connectedCallback;\n }()\n }, {\n key: \"render\",\n value: function () {\n var _render6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee28() {\n var _this40 = this;\n\n var _a;\n\n return _regeneratorRuntime.wrap(function _callee28$(_context28) {\n while (1) {\n switch (_context28.prev = _context28.next) {\n case 0:\n return _context28.abrupt(\"return\", (_a = this.renderPromise) !== null && _a !== void 0 ? _a : this.renderPromise = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee27() {\n return _regeneratorRuntime.wrap(function _callee27$(_context27) {\n while (1) {\n switch (_context27.prev = _context27.next) {\n case 0:\n if (!_this40.dispatchEvent(_this40.beforeRenderEvent)) {\n _context27.next = 4;\n break;\n }\n\n _context27.next = 3;\n return nextAnimationFrame();\n\n case 3:\n _this40.performAction();\n\n case 4:\n case \"end\":\n return _context27.stop();\n }\n }\n }, _callee27);\n }))());\n\n case 1:\n case \"end\":\n return _context28.stop();\n }\n }\n }, _callee28, this);\n }));\n\n function render() {\n return _render6.apply(this, arguments);\n }\n\n return render;\n }()\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n try {\n this.remove();\n } catch (_a) {}\n }\n }, {\n key: \"removeDuplicateTargetChildren\",\n value: function removeDuplicateTargetChildren() {\n this.duplicateChildren.forEach(function (c) {\n return c.remove();\n });\n }\n }, {\n key: \"duplicateChildren\",\n get: function get() {\n var _a;\n\n var existingChildren = this.targetElements.flatMap(function (e) {\n return _toConsumableArray(e.children);\n }).filter(function (c) {\n return !!c.id;\n });\n\n var newChildrenIds = _toConsumableArray((_a = this.templateContent) === null || _a === void 0 ? void 0 : _a.children).filter(function (c) {\n return !!c.id;\n }).map(function (c) {\n return c.id;\n });\n\n return existingChildren.filter(function (c) {\n return newChildrenIds.includes(c.id);\n });\n }\n }, {\n key: \"performAction\",\n get: function get() {\n if (this.action) {\n var actionFunction = StreamActions[this.action];\n\n if (actionFunction) {\n return actionFunction;\n }\n\n this.raise(\"unknown action\");\n }\n\n this.raise(\"action attribute is missing\");\n }\n }, {\n key: \"targetElements\",\n get: function get() {\n if (this.target) {\n return this.targetElementsById;\n } else if (this.targets) {\n return this.targetElementsByQuery;\n } else {\n this.raise(\"target or targets attribute is missing\");\n }\n }\n }, {\n key: \"templateContent\",\n get: function get() {\n return this.templateElement.content.cloneNode(true);\n }\n }, {\n key: \"templateElement\",\n get: function get() {\n if (this.firstElementChild instanceof HTMLTemplateElement) {\n return this.firstElementChild;\n }\n\n this.raise(\"first child element must be a