{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@stimulus/core/dist/src/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/src/action.js","webpack:///./node_modules/@stimulus/core/dist/src/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/context.js","webpack:///./node_modules/@stimulus/core/dist/src/definition.js","webpack:///./node_modules/@stimulus/core/dist/src/module.js","webpack:///./node_modules/@stimulus/core/dist/src/data_map.js","webpack:///./node_modules/@stimulus/core/dist/src/selectors.js","webpack:///./node_modules/@stimulus/core/dist/src/target_set.js","webpack:///./node_modules/@stimulus/core/dist/src/scope.js","webpack:///./node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/router.js","webpack:///./node_modules/@stimulus/core/dist/src/schema.js","webpack:///./node_modules/@stimulus/core/dist/src/application.js","webpack:///./node_modules/@stimulus/core/dist/src/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/src/controller.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/components/virtual/virtual.js","webpack:///./node_modules/swiper/esm/components/keyboard/keyboard.js","webpack:///./node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/swiper/esm/components/scrollbar/scrollbar.js","webpack:///./node_modules/swiper/esm/components/parallax/parallax.js","webpack:///./node_modules/swiper/esm/components/zoom/zoom.js","webpack:///./node_modules/swiper/esm/components/lazy/lazy.js","webpack:///./node_modules/swiper/esm/components/controller/controller.js","webpack:///./node_modules/swiper/esm/components/a11y/a11y.js","webpack:///./node_modules/swiper/esm/components/history/history.js","webpack:///./node_modules/swiper/esm/components/hash-navigation/hash-navigation.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./node_modules/swiper/esm/components/effect-fade/effect-fade.js","webpack:///./node_modules/swiper/esm/components/effect-cube/effect-cube.js","webpack:///./node_modules/swiper/esm/components/effect-flip/effect-flip.js","webpack:///./node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js","webpack:///./node_modules/swiper/esm/components/thumbs/thumbs.js","webpack:///./node_modules/swiper/swiper-bundle.esm.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lazysizes/lazysizes.js","webpack:///./node_modules/i18n-js/app/assets/javascripts/i18n.js","webpack:///./node_modules/litepicker/dist/litepicker.umd.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.bundle.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/activity-swiper_controller.js","webpack:///./app/javascript/controllers/book-now-multi-select_controller.js","webpack:///./app/javascript/controllers/clipboard_controller.js","webpack:///./app/javascript/controllers/contact_form_controller.js","webpack:///./app/javascript/controllers/datepicker_controller.js","webpack:///./node_modules/litepicker/dist/plugins/mobilefriendly.js","webpack:///./app/javascript/controllers/navigate_select_controller.js","webpack:///./app/javascript/controllers/remote_form_controller.js","webpack:///./app/javascript/controllers/season-switcher_controller.js","webpack:///./app/javascript/controllers/star-rating_controller.js","webpack:///./app/javascript/controllers/swiper_controller.js","webpack:///./node_modules/lazysizes/plugins/unveilhooks/ls.unveilhooks.js","webpack:///./app/javascript/i18n-js/index.js.erb","webpack:///./node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js","webpack:///./app/javascript/utils/toast.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/stimulus-use/dist/support/index.js","webpack:///./node_modules/stimulus-use/dist/use-resize/use-resize.js","webpack:///./app/javascript/controllers/lift-status_controller.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","EventListener","eventTarget","eventName","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","handleEvent","event","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","length","Array","from","sort","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","forEach","eventListener","stop","values","reduce","listeners","map","concat","fetchEventListenerForBinding","handleError","error","message","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","createEventListener","set","descriptorPattern","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","match","eventTargetName","window","document","toString","eventNameSuffix","e","getAttribute","Error","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","target","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","has","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","type","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","setPrototypeOf","__proto__","b","__","constructor","_super","IndexedMultimap","keysByValue","keys","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","slice","tokenString","split","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","Context","controllerConstructor","bindingObserver","dispatcher","initialize","parentElement","blessControllerConstructor","extend","bless","extendWithReflect","Controller","_newTarget","Reflect","construct","arguments","a","apply","Module","definition","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","DataMap","getFormattedKey","setAttribute","removeAttribute","replace","_char","attributeValueContainsToken","TargetSet","targetName","find","targetNames","getSelectorForTargetNames","findElement","findAll","findAllElements","getSelectorForTargetName","join","targetDescriptor","targetAttribute","Scope","targets","data","head","tail","filterElements","closest","controllerSelector","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","push","Application","documentElement","router","readyState","register","load","rest","definitions","isArray","unload","identifiers","getControllerForElementAndIdentifier","console","defineTargetProperties","ancestors","getPrototypeOf","getAncestorsForConstructor","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","properties","charAt","toUpperCase","capitalize","_typeof","obj","isObject","src","ssrDocument","activeElement","blur","nodeName","querySelector","getElementById","createEvent","initEvent","createElement","children","childNodes","style","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","_getPrototypeOf","_setPrototypeOf","_isNativeReflectConstruct","sham","Proxy","_construct","Parent","args","Class","instance","Function","_wrapNativeSuper","_cache","undefined","fn","indexOf","Wrapper","writable","Dom7","_Array","subClass","superClass","items","proto","self","ReferenceError","_assertThisInitialized","arrayFlat","arr","res","el","arrayFilter","$","html","toCreate","tempParent","innerHTML","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","_len","_key","trigger","on","Methods","addClass","classes","classNames","_el$classList","classList","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","className","toggleClass","_len3","_key3","toggle","attr","attrs","attrName","removeAttr","transform","transition","duration","transitionDuration","_len5","_key5","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","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","parseFloat","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","css","props","_prop","each","text","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","foundElements","found","removeChild","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","to","noExtend","HTMLElement","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","params","createElements","checkProps","auto","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","_temp","support","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","test","calcBrowser","swiper","resize","createObserver","destroyed","initialized","ResizeObserver","entries","newWidth","newHeight","_ref","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","removeObserver","unobserve","emit","orientationChangeHandler","init","resizeObserver","destroy","_extends","source","Observer","attach","options","WebkitMutationObserver","observerUpdate","characterData","observers","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","onTouchStart","touchEventsData","touches","enabled","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","rtl","rtlTranslate","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","loop","isVertical","translate","maxTranslate","minTranslate","diffX","diffY","sqrt","pow","touchAngle","isHorizontal","atan2","abs","PI","cssMode","touchMoveStopPropagation","nested","stopPropagation","loopFix","startTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","position","time","updateProgress","setTranslate","onTouchEnd","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","run","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","progress","dummyEventAttached","dummyEventListener","direction","initialSlide","updateOnWindowResize","url","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","_defineProperties","prototypes","modular","useParams","instanceParams","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","update","clientWidth","clientHeight","parseInt","Number","isNaN","getDirectionLabel","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","floor","ceil","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","getSlideByIndex","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","byController","x","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","initial","indexAsNumber","isFinite","normalizedTranslate","normalizedGird","normalizedGridNext","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","onTouchMove","onClick","move","end","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","base","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","_points$i","wasLocked","lastSlidePosition","addClasses","prefix","resultClasses","suffixes","item","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","browser","moduleParamName","desktop","swiperParams","defaults","passedParams","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","protoProps","staticProps","_proto","setProgress","current","getSlideClasses","slideEl","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","Virtual","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","cache","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","isSupported","implementation","hasFeature","isEventSupported","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","eventsTarget","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","positions","sensitivity","_newEvent","sign","ignoreWheelEvents","timeout","_recentWheelEvents","shift","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","newEvent","raw","prevEvent","animateSlider","releaseScroll","thresholdDelta","thresholdTime","getTime","Navigation","toggleEl","disabled","disabledClass","_swiper$navigation","$nextEl","$prevEl","lockClass","onPrevClick","onNextClick","_swiper$navigation2","Pagination","pagination","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","hiddenClass","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","dragStartPos","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","toggleGestures","slideSelector","enableGestures","gesturesEnabled","disableGestures","activeListenerWithCapture","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","background","$pictureEl","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","scrollingElement","isWindow","scrollElementWidth","scrollElementHeight","scrollHandlerAttached","LinearSpline","guess","i1","i3","binarySearch","array","interpolate","getInterpolateFunction","spline","_setTranslate","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","A11y","getRandomNumber","repeat","round","random","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","a11y","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","click","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","slideRole","ariaLabelMessage","slideLabelMessage","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","urlOverride","pathArray","URL","part","setHistory","slugify","root","includes","currentState","state","HashNavigation","onHashCange","newHash","setHash","watchState","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","cubeEffect","wrapperRotate","shadow","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","cos","scale1","scale2","zFactor","Flip","flipEffect","limitRotation","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","center","rotate","depth","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","Thumbs","thumbsParams","thumbs","SwiperClass","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","components","hideOnClick","toEdge","fromEdge","_swiper$navigation3","_swiper$navigation4","targetEl","isHidden","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","touchStart","touchEnd","doubleTap","slideChange","checkInView","loadOnTransitionStart","scroll","notificationClass","afterInit","paginationUpdate","beforeTransitionStart","sliderFirstMove","beforeDestroy","webpackPolyfill","deprecate","factory","lazySizes","lazysizes","lazySizesCfg","prop","lazySizesDefaults","lazyClass","preloadClass","errorClass","autosizesClass","fastLoadedClass","iframeLoadMode","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","getElementsByClassName","cfg","noSupport","docElem","supportPicture","HTMLPictureElement","requestIdleCallback","regPicture","loadEvents","regClassCache","ele","cls","RegExp","reg","addRemoveLoadEvents","triggerEvent","elem","noBubbles","noCancelable","updatePolyfill","full","polyfill","picturefill","pf","reevaluate","getCSS","getWidth","_lazysizesWidth","rAF","firstFns","secondFns","fns","runFns","waiting","rafBatch","queue","hidden","_lsFlush","rAFIt","simple","that","debounce","func","timestamp","later","last","loader","regImg","regIframe","supportScroll","currentExpand","isLoading","lowRuns","resetPreloading","isVisible","isBodyHidden","isNestedVisible","elemExpand","outerRect","visible","eLtop","eLbottom","eLleft","eLright","offsetParent","bottom","checkElements","eLlen","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","_lazyRace","prematureUnveil","unveilElement","expand","_defEx","eLvW","elvH","isCompleted","preloadElems","preloadAfterLoad","throttledCheckElements","lastTime","gDelay","rICTimeout","idleCallback","isPriority","throttle","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","handleSources","sourceSrcset","lazyUnveil","isAuto","isImg","isPicture","firesLoad","defaultPrevented","resetPreloadingTimer","contentWindow","changeIframeSrc","isLoaded","naturalWidth","loading","autoSizer","updateElem","afterScroll","altLoadmodeScrollListner","persisted","loadingElements","img","setInterval","checkElems","unveil","_aLSL","sizeElement","sources","dataAttr","getSizeElement","debouncedUpdateElementsSizes","autosizesElems","uP","aC","rC","hC","fire","gW","global","I18n","padding","isFunction","isSet","isNumber","isBoolean","isNull","decimalAdjust","exp","NaN","lazyEvaluate","DATE","day_names","abbr_day_names","month_names","abbr_month_names","meridian","NUMBER_FORMAT","precision","separator","delimiter","strip_insignificant_zeros","CURRENCY_FORMAT","unit","format","sign_first","PERCENTAGE_FORMAT","SIZE_UNITS","DEFAULT_OPTIONS","defaultLocale","locale","defaultSeparator","placeholder","fallbacks","translations","missingBehaviour","missingTranslationPrefix","reset","initializeOptions","locales","list","localeParts","firstFallback","secondFallback","nullableFallbackLocale","pluralization","count","currentLocale","lookup","scopes","fullScope","getFullScope","defaultValue","pluralizationLookupWithoutFallback","pluralizerKey","pluralizerKeys","pluralizer","pluralizationLookup","date","am","pm","prepareOptions","subject","createTranslationOptions","translationOptions","translation","usedScope","optionsWithoutDefault","translationOption","pluralize","missingTranslation","regex","nullPlaceholder","missingPlaceholder","String","p1","p2","toNumber","formattedNumber","negative","parts","toFixed","buffer","toCurrency","localize","toPercentage","localizedValue","toTime","parseDate","convertedDate","fraction","UTC","setTime","parse","$1","$2","$3","$6","$4","$5","strftime","meridianOptions","weekDay","getDay","day","getDate","year","getFullYear","month","getMonth","hour","getHours","hour12","secs","getSeconds","mins","getMinutes","getTimezoneOffset","absOffsetHours","absOffsetMinutes","timezoneoffset","dateString","date_string","toHumanSize","iterations","obj1","obj2","merge","dest","dateInstance","clone","toJSDate","parseDateTime","lang","getDateZeroTime","exec","shortMonth","longMonth","h","u","formatPatterns","group","pattern","shortMonths","longMonths","convertArray","MONTH_JS","toLocaleString","toDateString","setMonth","setHours","setSeconds","setDate","setFullYear","getWeek","isBetween","isBefore","isSameOrBefore","isAfter","isSameOrAfter","isSame","subtract","output","substring","formatTokens","DateTime","_n","__spreadArrays","preventClick","bindEvents","scrollToDate","startDate","endDate","elementEnd","numberOfMonths","calendars","ui","litepicker","autoRefresh","onInput","parentEl","inlineMode","HTMLInputElement","updateInput","setup","show","singleMode","isSamePicker","shouldShown","shouldResetDatePicked","datePicked","shouldSwapDatePicked","shouldCheckLockDays","disallowLockDaysInRange","isShowning","dayItem","dataset","rangeIsLocked","autoApply","setDateRange","buttonPreviousMonth","switchingMonths","splitView","monthItem","findNestedMonthItem","gotoDate","buttonNextMonth","buttonCancel","buttonApply","showTooltip","containerTooltip","visibility","hideTooltip","shouldAllowMouseEnter","shouldAllowRepick","allowRepick","isDayItem","triggerElement","renderDay","isInRange","isEndDate","isFlipped","tooltipNumber","pluralSelector","tooltipText","Event","parseInput","startsWith","getStartDate","getEndDate","Calendar","Litepicker","dateIsLocked","lockDays","lockDaysInclusivity","lockDaysFilter","insert","_lastElementInsertedByStyleLoader","disableLitepickerStyles","nextSibling","singleton","locals","_n2","containerMain","containerMonths","numberOfColumns","columns2","columns3","columns4","showWeekNumbers","renderMonth","resetButton","buttonText","clearSelection","monthItemHeader","footerHTML","renderFooter","renderTooltip","plugins","dropdowns","months","monthItemName","minDate","maxDate","selected","years","monthItemYear","minYear","maxYear","reverse","D","w","previousMonth","nextMonth","noPreviousMonth","noNextMonth","M","monthItemWeekdaysRow","T","firstDay","L","weekdayName","title","E","containerDays","S","calcSkipDays","renderWeekNumber","I","isToday","isStartDate","minDays","maxDays","selectForward","selectBackward","highlightedDays","isHighlighted","tabIndex","containerFooter","previewDateRange","weekNumber","weekday","LPCore","_n3","__assign","mobileFriendly","lockDaysFormat","highlightedDaysFormat","one","other","tooltipPluralSelector","Intl","PluralRules","select","warn","findPosition","pageXOffset","pageYOffset","EventEmitter","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","_events","_eventsCount","_maxListeners","defaultMaxListeners","newListener","warned","emitter","fired","removeListener","wrapFn","RangeError","setMaxListeners","getMaxListeners","addListener","prependListener","prependOnceListener","removeAllListeners","rawListeners","listenerCount","eventNames","btoa","unescape","encodeURIComponent","JSON","stringify","sourceRoot","HTMLIFrameElement","contentDocument","media","sourceMap","refs","nonce","nc","Boolean","styleSheet","cssText","createTextNode","all","atob","setStartDate","setEndDate","setLockDays","setHighlightedDays","setOptions","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","arg","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","err","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","_get","receiver","_superPropBase","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_inherits","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","_classCallCheck","_createClass","_slicedToArray","_arrayWithHoles","_arr","_d","_e","_s","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","minLen","arr2","_KEY_TO_DIRECTION","SelectorEngine","_ref5","_ref6","ancestor","previous","getUID","getSelector","hrefAttr","getSelectorFromElement","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","transitionDelay","floatTransitionDuration","floatTransitionDelay","triggerTransitionEnd","isElement$1","jquery","getElement","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","getClientRects","isDisabled","noop","reflow","getjQuery","jQuery","DOMContentLoadedCallbacks","isRTL","defineJQueryPlugin","plugin","NAME","JQUERY_NO_CONFLICT","jQueryInterface","noConflict","execute","executeAfterTransition","transitionElement","durationPadding","emulatedDuration","called","_ref7","getNextActiveElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","getUidEvent","uid","getEvent","findHandler","delegationSelector","uidEventList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","addHandler","oneOff","relatedTarget","delegateTarget","_normalizeParams2","previousFn","domElements","EventHandler","bootstrapDelegationHandler","bootstrapHandler","removeHandler","_normalizeParams4","inNamespace","isNamespace","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","keyHandlers","jQueryEvent","isNative","nativeDispatch","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","elementMap","Data","instanceMap","BaseComponent","_element","DATA_KEY","EVENT_KEY","propertyName","isAnimated","getInstance","EVENT_KEY$b","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API$7","Alert","_BaseComponent","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","_this2","_queueCallback","_destroyElement","getOrCreateInstance","alertInstance","close","handleDismiss","EVENT_KEY$a","EVENT_CLICK_DATA_API$6","Button","_BaseComponent2","_super2","normalizeData","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","pureKey","getDataAttribute","EVENT_KEY$9","Default$9","interval","DefaultType$9","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$2","EVENT_CLICK_DATA_API$5","Carousel","_BaseComponent3","_super3","_this3","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","_pointerEvent","_addEventListeners","_slide","cycle","clearInterval","_updateInterval","nextWhenVisible","_this4","_getItemIndex","absDeltax","_this5","_keydown","_addTouchEventListeners","_this6","pointerType","_handleSwipe","itemImg","isNext","eventDirectionName","targetIndex","fromIndex","activeIndicator","indicators","elementInterval","defaultInterval","directionOrOrder","_this7","_directionToOrder","activeElementIndex","nextElement","_getItemByOrder","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","_triggerSlideEvent","_setActiveIndicatorElement","triggerSlidEvent","ride","carouselInterface","dataApiClickHandler","carousels","EVENT_KEY$8","Default$8","DefaultType$8","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_CLICK_DATA_API$4","Collapse","_BaseComponent4","_super4","_this8","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_getParent","_addAriaAndCollapsedClass","_this9","actives","activesData","container","tempActiveData","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","capitalizedDimension","scrollSize","_this10","triggerArrayLength","isTransitioning","_this11","triggerArray","isOpen","triggerData","basePlacements","variationPlacements","acc","placement","placements","modifierPhases","getNodeName","ownerDocument","defaultView","isElement","isHTMLElement","isShadowRoot","ShadowRoot","applyStyles$1","phase","_ref2","initialStyles","popper","strategy","margin","arrow","reference","attribute","requires","getBasePlacement","getLayoutRect","clientRect","rootNode","getRootNode","isSameNode","getComputedStyle$1","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","min$1","max$1","mergePaddingObject","paddingObject","expandToHashMap","hashMap","arrow$1","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","rects","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","axisProp","centerOffset","_options$element","requiresIfExists","unsetSides","mapToStyles","_Object$assign2","popperRect","offsets","gpuAcceleration","adaptive","roundOffsets","_ref3","dpr","devicePixelRatio","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","computeStyles$1","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","_options$scroll","_options$resize","scrollParents","scrollParent","hash$1","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","listScrollParents","_element$ownerDocumen","getScrollParent","isBody","visualViewport","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getVariation","computeOffsets","variation","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","referenceElement","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","placements$1","allowedPlacements","overflows","flip$1","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","every","check","_loop","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide$1","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","offset$1","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","popperOffsets$1","preventOverflow$1","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","modifiers","visited","dep","depModifier","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","cleanupModifierEffects","merged","orderModifiers","existing","_ref3$options","cleanupFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","createPopper$2","createPopper$1","createPopper","Popper","freeze","createPopperBase","createPopperLite","viewport","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","applyStyles","computeStyles","flip","EVENT_KEY$7","REGEXP_KEYDOWN","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_CLICK","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$7","popperConfig","autoClose","DefaultType$7","Dropdown","_BaseComponent5","_super5","_this12","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","getParentFromElement","_getPopperConfig","isDisplayStatic","_ref8","focus","_completeHide","_this13","_ref9","Default","DefaultType","parentDropdown","_this14","popperData","defaultBsPopperConfig","_getPlacement","_getOffset","_ref10","dropdownInterface","toggles","composedPath","isMenuTarget","clickEvent","_this15","isActive","getToggleButton","clearMenus","_selectMenuItem","dataApiKeydownHandler","ScrollBarHelper","documentWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","styleProp","_this16","scrollbarWidth","_applyManipulationCallback","_resetElementAttributes","actualValue","removeProperty","callBack","Default$6","clickCallback","DefaultType$6","EVENT_MOUSEDOWN","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","_this17","dispose","backdrop","_this18","EVENT_KEY$6","Default$5","DefaultType$5","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_FOCUSIN$2","EVENT_RESIZE","EVENT_CLICK_DISMISS$2","EVENT_KEYDOWN_DISMISS$1","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$2","Modal","_BaseComponent6","_super6","_this19","_dialog","_backdrop","_initializeBackDrop","_isShown","_ignoreBackdropClick","_scrollBar","_this20","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_this21","_hideModal","htmlElement","_this22","modalBody","_enforceFocus","_this23","_this24","_triggerBackdropTransition","_this25","_this26","_resetAdjustments","_this27","currentTarget","_this28","_this$_element","isModalOverflowing","isBodyOverflowing","_this29","showEvent","EVENT_KEY$5","EVENT_LOAD_DATA_API$1","Default$4","DefaultType$4","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_HIDE$2","EVENT_HIDDEN$2","EVENT_FOCUSIN$1","EVENT_CLICK_DATA_API$1","EVENT_CLICK_DISMISS$1","EVENT_KEYDOWN_DISMISS","Offcanvas","_BaseComponent7","_super7","_this30","_this31","_enforceFocusOnElement","_this32","_this33","_this34","_this35","allReadyOpen","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","area","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","li","ol","pre","small","span","sub","sup","strong","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","_ref11","createdDocument","DOMParser","parseFromString","allowlistKeys","_loop2","_ref12","elName","attributeList","allowedAttributes","allowedAttributeList","nodeValue","regExp","attrRegex","allowedAttribute","EVENT_KEY$4","BSCLS_PREFIX_REGEX$1","DISALLOWED_ATTRIBUTES","DefaultType$3","animation","template","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","Event$2","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_BaseComponent8","_super8","_this36","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","_this37","isWithContent","findShadowRoot","attachShadow","isInTheDom","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_tip$classList","_ref13","prevHoverState","_this38","_ref14","_cleanTipClass","getTitle","setElementContent","dataKey","_getDelegateConfig","_this39","_this40","_handlePopperPlacementChange","updateAttachment","_this41","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","tabClass","tClass","EVENT_KEY$3","BSCLS_PREFIX_REGEX","Default$2","DefaultType$2","Event$1","Popover","_Tooltip","_super9","_getContent","EVENT_KEY$2","Default$1","DefaultType$1","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","ScrollSpy","_BaseComponent9","_super10","_this42","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","_this43","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetBCR","maxScroll","_getOffsetHeight","_activate","_clear","queries","link","listGroup","navItem","spy","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","Tab","_BaseComponent10","_super11","_this44","listElement","itemSelector","hideEvent","_this45","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","EVENT_CLICK_DISMISS","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","autohide","Toast","_BaseComponent11","_super12","_this46","_hasMouseInteraction","_hasKeyboardInteraction","_this47","_clearTimeout","_maybeScheduleHide","_this48","_this49","isInteracting","_this50","_onInteraction","webpackContext","req","webpackContextResolve","selectedOption","selectTarget","selectedIndex","bookButtonTarget","bookNowUrl","infoButtonTarget","moreInformationUrl","sourceTarget","execCommand","formSubmission","toastr","success","enquiry_newsletter_opt_in","checked","dataLayer","picker","userLocale","date1","date2","getUTCFullYear","padStart","datePickerAlternateSelector","mobilefriendly","xTouchDown","yTouchDown","touchTargetMonth","orientation","selectedOptions","successMessage","remoteFormEvent","customMessage","remoteFormSuccessMessage","seasonalSwitch","localStorage","ratingInput","640","bgLoad","regBgUrlEscape","uniqueUrls","addStyleScript","cb","insertElem","rel","tmp","bg","poster","preload","play","er","requireJs","backgroundImage","_templateObject2","_taggedTemplateLiteral","_templateObject","strings","_createForOfIteratorHelper","allowArrayLike","it","F","_e2","normalCompletion","didErr","_e3","asyncGeneratorStep","gen","_throw","_asyncToGenerator","customElements","polyfillWrapFlushCallback","BuiltInHTMLElement","wrapperForTheName","FrameLoadingStyle","submittersByForm","clickCaptured","candidate","submitter","form","HTMLFormElement","FrameElement","_HTMLElement","loaded","delegateConstructor","loadingStyleChanged","sourceURLChanged","disabledChanged","eager","frameLoadingStyleFromString","isPreview","expandURL","locatable","baseURI","getAnchor","anchorMatch","getExtension","getPathComponents","getLastPathComponent","isPrefixedBy","baseURL","endsWith","getPrefix","toCacheKey","anchorLength","FetchMethod","FetchResponse","response","headers","ok","succeeded","statusCode","redirected","contentType","status","header","isHTML","dispatch","nextAnimationFrame","parseHTMLDocument","unindent","lines","indent","line","string","uuid","FetchRequest","URLSearchParams","abortController","AbortController","defaultHeaders","isIdempotent","mergeFormDataEntries","_receive","_perform","abort","_callee","fetchOptions","_context","prepareHeadersForRequest","requestStarted","receive","t0","requestErrored","requestFinished","_callee2","fetchResponse","_context2","requestPreventedHandlingResponse","requestSucceededWithResponse","requestFailedWithResponse","_x","searchParams","credentials","redirect","signal","abortSignal","_step","currentSearchParams","_iterator","File","FormSubmissionState","FormEnctype","AppearanceObserver","intersect","lastEntry","isIntersecting","elementAppearedInViewport","intersectionObserver","IntersectionObserver","StreamMessage","templateElement","_step2","fragment","createDocumentFragment","_iterator2","foreignElements","templateChildren","streamElements","FormSubmission","formElement","mustRedirect","formData","buildFormData","fetchRequest","_start","_callee3","_FormSubmissionState","requesting","_context3","perform","_FormSubmissionState2","stopping","stopped","request","cookieName","cookie","decodeURIComponent","getCookieValue","getMetaContent","formSubmissionStarted","clientError","serverError","formSubmissionFailedWithResponse","requestMustRedirect","responseSucceededWithoutRedirect","formSubmissionErrored","receiving","formSubmissionSucceededWithResponse","formSubmissionFinished","post","put","patch","fetchMethodFromString","enctype","urlEncoded","stringFormData","encoding","multipart","plain","formEnctypeFromString","FormData","Snapshot","anchor","getElementForAnchor","snapshot","_step3","permanentElementMap","_iterator3","permanentElements","currentPermanentElement","newPermanentElement","getPermanentElementById","FormInterceptor","submitBubbled","shouldInterceptFormSubmission","formSubmissionIntercepted","View","_renderSnapshot","_render","scrollToElement","scrollToPosition","scrollIntoView","scrollRoot","_callee4","renderer","shouldRender","_context4","newSnapshot","prepareToRenderSnapshot","viewWillRenderSnapshot","renderSnapshot","viewRenderedSnapshot","finishRenderingSnapshot","invalidate","_x2","viewInvalidated","markAsPreview","prepareToRender","_callee5","_context5","_x3","finishRendering","FrameView","_View","LinkInterceptor","clickBubbled","respondsToEventTarget","linkClicked","shouldInterceptLinkClick","convertLinkWithMethodClickToFormSubmission","linkClickIntercepted","willVisit","linkMethod","Bardo","replaceNewPermanentElementWithPlaceholder","replaceCurrentPermanentElementWithClone","replacePlaceholderWithPermanentElement","permanentElement","createPlaceholderForPermanentElement","replaceWith","getPlaceholderById","placeholders","bardo","enter","leave","Renderer","currentSnapshot","promise","resolvingFunctions","createdScriptElement","cspNonce","destinationElement","sourceElement","_arr2","copyElementAttributes","preservingPermanentElements","connectedSnapshot","firstAutofocusableElement","elementIsFocusable","getPermanentElementMapForSnapshot","_Renderer","FrameRenderer","_render2","_callee6","_context6","loadFrameElement","scrollFrameIntoView","focusFirstAutofocusableElement","activateScriptElements","destinationRange","createRange","selectNodeContents","currentElement","deleteContents","frameElement","newElement","sourceRange","extractContents","autoscroll","firstElementChild","block","_step4","_iterator4","newScriptElements","inertScriptElement","activatedScriptElement","createScriptElement","ProgressBar","hiding","trickle","setValue","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","installStylesheetElement","installProgressElement","startTrickling","fadeProgressElement","uninstallProgressElement","stopTrickling","animationDuration","trickleInterval","defaultCSS","HeadSnapshot","_Snapshot","detailsByOuterHTML","outerHTML","details","elementType","tracked","elementIsTracked","getElementsMatchingTypeNotInSnapshot","matchedType","findMetaElementByName","elementIsMetaElementWithName","_this14$detailsByOute","elementIsScript","elementIsStylesheet","TimingMetric","VisitState","PageSnapshot","_Snapshot2","headSnapshot","getMetaValue","getSetting","cacheControlValue","fromDocument","SystemStatusCode","historyChanged","Visit","restorationIdentifier","timingMetrics","followedRedirect","scrolled","snapshotCached","referrer","snapshotHTML","_render3","_requestFailedWithResponse","_requestSucceededWithResponse","recordTimingMetric","visitStart","adapter","visitStarted","cancelRender","canceled","visitEnd","completed","visitCompleted","failed","visitFailed","actionForHistory","getHistoryMethodForAction","hasPreloadedResponse","simulateRequest","shouldIssueRequest","startRequest","recordResponse","finishRequest","requestStart","visitRequestStarted","isSuccessful","visitRequestCompleted","visitRequestFailedWithStatusCode","requestEnd","visitRequestFinished","_this$response","responseHTML","_callee7","_context7","cacheSnapshot","view","renderPage","fromHTMLString","visitRendered","renderError","fail","getCachedSnapshotForLocation","getPreloadedSnapshot","hasAnchor","isPreviewable","getCachedSnapshot","_callee8","_context8","redirectedToLocation","_callee9","_context9","contentTypeMismatch","_x4","_x5","_callee10","_context10","_x6","_x7","networkFailure","scrollToRestoredPosition","scrollToTop","scrollToAnchor","scrollPosition","restorationData","metric","hasCachedSnapshot","_callee11","_context11","frame","performScroll","_x8","getRestorationDataForIdentifier","BrowserAdapter","session","progressBar","showProgressBar","startVisit","visit","issueRequest","changeHistory","loadCachedSnapshot","showProgressBarAfterDelay","loadResponse","timeoutFailure","reload","hideProgressBar","followRedirect","progressBarTimeout","progressBarDelay","CacheObserver","removeStaleElements","_step5","_iterator5","FormSubmitObserver","submitCaptured","willSubmitForm","formSubmitted","FrameRedirector","linkInterceptor","formInterceptor","shouldRedirect","findFrameElement","pageLoaded","onPopState","shouldHandlePopState","turbo","historyPoppedToLocationWithRestorationIdentifier","onPageLoad","_ref16","_callee12","_context12","_x9","additionalData","previousScrollRestoration","scrollRestoration","pageIsLoaded","LinkClickObserver","clickEventIsSignificant","findLinkFromClickTarget","_location","getLocationForLink","willFollowLinkToLocation","followedLinkToLocation","isAction","PageStage","Navigator","_formSubmissionFailedWithResponse","_formSubmissionSucceededWithResponse","allowsVisitingLocation","visitProposedToLocation","currentVisit","proposeVisit","getActionForFormSubmission","_callee13","visitOptions","_context13","clearSnapshotCache","_x10","_x11","_callee14","_context14","_x12","_x13","PageObserver","stage","interpretReadyState","pageIsInteractive","pageIsComplete","pageWillUnload","interactive","pageBecameInteractive","ScrollObserver","updatePosition","scrollPositionChanged","StreamObserver","inspectFetchResponse","fetchResponseFromEvent","fetchResponseIsStream","receiveMessageResponse","receiveMessageEvent","receiveMessageHTML","_receiveMessageResponse","streamSourceIsConnected","_callee15","_context15","_x14","receivedMessageFromStream","_Renderer2","ErrorRenderer","_render4","_callee16","_context16","replaceHeadAndBody","_document","replaceChild","newHead","_step6","_iterator6","scriptElements","replaceableElement","_Renderer3","PageRenderer","_render5","mergeHead","_callee17","_context17","replaceBody","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","activateNewBody","assignNewBody","_step7","_iterator7","newHeadStylesheetElements","_step8","_iterator8","newHeadScriptElements","_step9","_iterator9","currentHeadProvisionalElements","_step10","_iterator10","newHeadProvisionalElements","adoptNode","activateNewBodyScriptElements","_step11","_iterator11","newBodyScriptElements","HTMLBodyElement","isVisitable","trackedElementsAreIdentical","currentHeadSnapshot","trackedElementSignature","newHeadSnapshot","getStylesheetElementsNotInSnapshot","getScriptElementsNotInSnapshot","provisionalElements","SnapshotCache","snapshots","_step12","_iterator12","_View2","PageView","_cacheSnapshot","snapshotCache","lastRenderedLocation","_callee18","_location2","_context18","shouldCacheSnapshot","viewWillCacheSnapshot","fromElement","isCacheable","Session","pageObserver","cacheObserver","linkClickObserver","formSubmitObserver","scrollObserver","streamObserver","frameRedirector","connectStreamSource","disconnectStreamSource","pageInvalidated","updateRestorationData","elementIsNavigable","locationIsVisitable","applicationAllowsFollowingLinkToLocation","getActionForLink","applicationAllowsVisitingLocation","extendURLWithDeprecatedProperties","notifyApplicationAfterVisitingLocation","notifyApplicationAfterPageLoad","getTimingMetrics","submitForm","assumeControlOfScrollRestoration","relinquishControlOfScrollRestoration","renderStreamMessage","notifyApplicationBeforeCachingSnapshot","_ref17","notifyApplicationBeforeRender","notifyApplicationAfterRender","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","newBody","timing","rootLocation","deprecatedLocationPropertyDescriptors","absoluteURL","FrameController","resolveVisitPromise","connected","hasBeenLoaded","settingSourceURL","appearanceObserver","_extractForeignFrameElement","_visit","_requestSucceededWithResponse2","_loadResponse","_loadSourceURL","loadingStyle","loadSourceURL","_callee19","previousURL","_context19","sourceURL","currentURL","_callee20","_parseHTMLDocument","_context20","extractForeignFrameElement","t1","t2","_x15","shouldInterceptNavigation","navigateFrame","_callee21","_context21","_x16","_x17","_callee22","_context22","_x18","getFrameElementById","_callee23","_context23","CSS","escape","activateElement","_x19","connectedCallback","StreamActions","after","targetElements","templateContent","removeDuplicateTargetChildren","before","_HTMLElement2","StreamElement","_render6","_connectedCallback","_callee24","_context24","_callee26","_context26","renderPromise","_callee25","_context25","beforeRenderEvent","performAction","duplicateChildren","existingChildren","flatMap","newChildrenIds","actionFunction","raise","targetElementsById","targetElementsByQuery","HTMLTemplateElement","define","currentScript","registerAdapter","clearCache","setProgressBarDelay","Turbo","DEFAULT_OPTS","subtitle","dismissible","stackable","pauseDelayOnHover","toast","warning","primary","secondary","light","dark","toastContainer","fg","dismiss","icon","globalToastStyles","toastHeader","toastTitle","toastSubtitle","toastButton","toastBody","bootstrap","require","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","season","mostReadPosts","triggerEl","panel","endX","endY","distanceX","distanceY","offCanvasButton","offCanvas","offCanvasClose","popovers","triggler_selector","the_trigger","popoverTriggerEl","popover","composeEventName","eventPrefix","composedName","composed","targetElement","appearEvent","controllerDisconnect","useResize","slideTime","updateTime","swiperTarget","createSwitcherTimeout","incrementProgress","updateMetaVisibility","restartProgress","activeSwiperName","activeTabsName","tabsTarget","swiperSlideIndex","resetProgress","switcherTimeout","progressTarget","progressTimeout"],"mappings":"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","file":"js/application-d56010b740fb2296613a.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 22);\n","module.exports = require(\"regenerator-runtime\");\n","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, false);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, false);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings[\"delete\"](binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: true,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: true,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName;\n return this.fetchEventListener(eventTarget, eventName);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var eventListener = eventListenerMap.get(eventName);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName);\n eventListenerMap.set(eventName, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName) {\n var eventListener = new EventListener(eventTarget, eventName);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 76\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#(.+))?$/;\nexport function parseDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: true,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"change\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"change\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function get() {\n return this.action.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function get() {\n return this.action.eventTarget;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function get() {\n return this.action.eventName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return true;\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function get() {\n return this.action.methodName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements[\"delete\"](element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function get() {\n return this.elementObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function get() {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: true,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function get() {\n return this.elementObserver.started;\n },\n enumerable: true,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key)[\"delete\"](value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map[\"delete\"](key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: true,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype[\"delete\"] = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function get() {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: true,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype[\"delete\"] = function (key, value) {\n _super.prototype[\"delete\"].call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function get() {\n return this.attributeObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function get() {\n return this.attributeObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.attributeObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement[\"delete\"](token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function get() {\n return this.tokenListObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function get() {\n return this.tokenListObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.tokenListObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element)[\"delete\"](token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function get() {\n return this.schema.actionAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function get() {\n return this.context.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: true,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction[\"delete\"](action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { BindingObserver } from \"./binding_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function get() {\n return this.module.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function get() {\n return this.module.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function get() {\n return this.application.dispatcher;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function get() {\n return this.element.parentElement;\n },\n enumerable: true,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n/** @hidden */\n\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: blessControllerConstructor(definition.controllerConstructor)\n };\n}\n\nfunction blessControllerConstructor(controllerConstructor) {\n var constructor = extend(controllerConstructor);\n constructor.bless();\n return constructor;\n}\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function Controller() {\n var _newTarget = this && this instanceof Controller ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n Controller.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: Controller\n }\n });\n Reflect.setPrototypeOf(Controller, constructor);\n return Controller;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(Controller, _super);\n\n function Controller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return Controller;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function get() {\n return this.definition.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function get() {\n return this.definition.controllerConstructor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function get() {\n return Array.from(this.connectedContexts);\n },\n enumerable: true,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts[\"delete\"](context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","var DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n key = this.getFormattedKey(key);\n return this.element.getAttribute(key);\n };\n\n DataMap.prototype.set = function (key, value) {\n key = this.getFormattedKey(key);\n this.element.setAttribute(key, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n key = this.getFormattedKey(key);\n return this.element.hasAttribute(key);\n };\n\n DataMap.prototype[\"delete\"] = function (key) {\n if (this.has(key)) {\n key = this.getFormattedKey(key);\n this.element.removeAttribute(key);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getFormattedKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, _char) {\n return \"-\" + _char.toLowerCase();\n });\n}","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","import { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function get() {\n return this.scope.schema;\n },\n enumerable: true,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAll = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetNames = function (targetNames) {\n var _this = this;\n\n return targetNames.map(function (targetName) {\n return _this.getSelectorForTargetName(targetName);\n }).join(\", \");\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n return TargetSet;\n}();\n\nexport { TargetSet };","import { DataMap } from \"./data_map\";\nimport { TargetSet } from \"./target_set\";\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, identifier, element) {\n this.schema = schema;\n this.identifier = identifier;\n this.element = element;\n this.targets = new TargetSet(this);\n this.data = new DataMap(this);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.findAllElements(selector)[0];\n };\n\n Scope.prototype.findAllElements = function (selector) {\n var head = this.element.matches(selector) ? [this.element] : [];\n var tail = this.filterElements(Array.from(this.element.querySelectorAll(selector)));\n return head.concat(tail);\n };\n\n Scope.prototype.filterElements = function (elements) {\n var _this = this;\n\n return elements.filter(function (element) {\n return _this.containsElement(element);\n });\n };\n\n Scope.prototype.containsElement = function (element) {\n return element.closest(this.controllerSelector) === this.element;\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: true,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { Scope } from \"./scope\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = new Scope(this.schema, identifier, element);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function get() {\n return this.application.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier[\"delete\"](scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier[\"delete\"](module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.router.start();\n this.dispatcher.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.router.stop();\n this.dispatcher.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: true,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n console.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","/** @hidden */\nexport function defineTargetProperties(constructor) {\n var prototype = constructor.prototype;\n var targetNames = getTargetNamesForConstructor(constructor);\n targetNames.forEach(function (name) {\n var _a;\n\n return defineLinkedProperties(prototype, (_a = {}, _a[name + \"Target\"] = {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function get() {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function get() {\n return this.targets.has(name);\n }\n }, _a));\n });\n}\n\nfunction getTargetNamesForConstructor(constructor) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (targetNames, constructor) {\n getOwnTargetNamesForConstructor(constructor).forEach(function (name) {\n return targetNames.add(name);\n });\n return targetNames;\n }, new Set()));\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors;\n}\n\nfunction getOwnTargetNamesForConstructor(constructor) {\n var definition = constructor[\"targets\"];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction defineLinkedProperties(object, properties) {\n Object.keys(properties).forEach(function (name) {\n if (!(name in object)) {\n var descriptor = properties[name];\n Object.defineProperty(object, name, descriptor);\n }\n });\n}\n\nfunction capitalize(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}","import { defineTargetProperties } from \"./target_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Controller.bless = function () {\n defineTargetProperties(this);\n };\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function get() {\n return this.context.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function get() {\n return this.scope.targets;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: true,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.targets = [];\n return Controller;\n}();\n\nexport { Controller };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\n\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n\n if (src === void 0) {\n src = {};\n }\n\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\n\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\n};\n\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n/* eslint-disable no-proto */\n\n\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\n\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n 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 touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { getDocument, 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 extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype']; // eslint-disable-next-line\n\n var HTMLElement = typeof window !== 'undefined' ? window.HTMLElement : undefined;\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 && !(HTMLElement && nextSource instanceof HTMLElement)) {\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 bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n\n return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.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 swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function slideTo(index, speed, runCallbacks, internal, 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'. [\" + _typeof(index) + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n 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 normalizedGird = 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 >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (_typeof(slidesIndexes) === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\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 swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n 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 // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.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) {\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.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n 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 swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n 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 if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction 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.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\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 // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/* eslint no-param-reassign: \"off\" */\n\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && 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\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (_typeof(moduleParams) !== 'object' || moduleParams === null) return;\n\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)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (_typeof(params[moduleParamName]) === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n extend(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 = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n 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 }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.enable = 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 _proto.disable = 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 _proto.setProgress = 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 _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n 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 _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.mount = 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 \".\" + (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 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(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n extend(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 _proto.init = 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 _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.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 extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\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(\".\" + 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 marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = 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')] = 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 var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n\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((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var 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) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n 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';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n 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 snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(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}","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: \" + 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';\nimport removeClasses from './removeClasses';\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';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Virtual = {\n update: function update(force) {\n var swiper = this;\n var _swiper$params = swiper.params,\n slidesPerView = _swiper$params.slidesPerView,\n slidesPerGroup = _swiper$params.slidesPerGroup,\n centeredSlides = _swiper$params.centeredSlides;\n var _swiper$params$virtua = swiper.params.virtual,\n addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\n addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\n var _swiper$virtual = swiper.virtual,\n previousFrom = _swiper$virtual.from,\n previousTo = _swiper$virtual.to,\n slides = _swiper$virtual.slides,\n previousSlidesGrid = _swiper$virtual.slidesGrid,\n renderSlide = _swiper$virtual.renderSlide,\n previousOffset = _swiper$virtual.offset;\n swiper.updateActiveIndex();\n var activeIndex = swiper.activeIndex || 0;\n var offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n var slidesAfter;\n var slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n extend(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, offset + \"px\");\n }\n\n swiper.updateProgress();\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: function getSlides() {\n var slidesToRender = [];\n\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n\n return;\n }\n\n var prependIndexes = [];\n var appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\").remove();\n }\n }\n }\n\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (_i >= from && _i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(_i);\n } else {\n if (_i > previousTo) appendIndexes.push(_i);\n if (_i < previousFrom) prependIndexes.push(_i);\n }\n }\n }\n\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) {\n return b - a;\n }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, offset + \"px\");\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\n var params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(\"
\" + slide + \"
\");\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide: function appendSlide(slides) {\n var swiper = this;\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slides) {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n var $cachedEl = cache[cachedIndex];\n var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide: function removeSlide(slidesIndexes) {\n var swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n var activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides: function removeAllSlides() {\n var swiper = this;\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n }\n};\nexport default {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n virtual: _extends({}, Virtual, {\n slides: swiper.params.virtual.slides,\n cache: {}\n })\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"virtual\");\n var overwriteParams = {\n watchSlidesProgress: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n/* eslint-disable consistent-return */\n\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n if (!swiper.enabled) return;\n var window = getWindow();\n var document = getDocument();\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\" + swiper.params.slideClass).length > 0 && swiper.$el.parents(\".\" + swiper.params.slideActiveClass).length === 0) {\n return undefined;\n }\n\n var $el = swiper.$el;\n var swiperWidth = $el[0].clientWidth;\n var swiperHeight = $el[0].clientHeight;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n var document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n var document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n keyboard: _extends({\n enabled: false\n }, Keyboard)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n var document = getDocument();\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n var window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n var swiper = this;\n if (!swiper.enabled) return;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n var positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (_recentWheelEvents.length >= 15) {\n _recentWheelEvents.shift(); // only store the last N events\n\n }\n\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = _recentWheelEvents[0];\n\n _recentWheelEvents.push(_newEvent);\n\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n _recentWheelEvents.splice(0);\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.mousewheel.timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n var window = getWindow();\n\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n },\n click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(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(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !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 += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\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);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', 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 extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$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 = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, nextTick, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n var dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(\"translate3d(\" + newPos + \"px, 0, 0)\");\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n $dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\n $dragEl[0].style.height = newSize + \"px\";\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize\n });\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n },\n getPointerPosition: function getPointerPosition(e) {\n var swiper = this;\n\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el,\n dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n dragStartPos = scrollbar.dragStartPos;\n var positionRatio;\n positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n clearTimeout(swiper.scrollbar.dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n swiper.emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n\n if (!support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n\n if (!support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n swiper.params.scrollbar = createElementIfNotDefined($swiperEl, swiper.params.scrollbar, swiper.params.createElements, {\n el: 'swiper-scrollbar'\n });\n var params = swiper.params.scrollbar;\n if (!params.el) return;\n var $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find(\".\" + swiper.params.scrollbar.dragClass);\n\n if ($dragEl.length === 0) {\n $dragEl = $(\"
\");\n $el.append($dragEl);\n }\n\n extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n }\n};\nexport default {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n scrollbar: _extends({\n isTouched: false,\n timeout: null,\n dragTimeout: null\n }, Scrollbar)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update(swiper) {\n swiper.scrollbar.updateSize();\n },\n resize: function resize(swiper) {\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate(swiper) {\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate(swiper) {\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n swiper.scrollbar.setTransition(duration);\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.scrollbar.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy(swiper) {\n swiper.scrollbar.destroy();\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\n var rtl = swiper.rtl;\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = parseInt(x, 10) * progress * rtlFactor + \"%\";\n } else {\n x = x * progress * rtlFactor + \"px\";\n }\n\n if (y.indexOf('%') >= 0) {\n y = parseInt(y, 10) * progress + \"%\";\n } else {\n y = y * progress + \"px\";\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px)\");\n } else {\n var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\");\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides,\n progress = swiper.progress,\n snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each(function (slideEl, slideIndex) {\n var slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition(duration) {\n if (duration === void 0) {\n duration = this.params.speed;\n }\n\n var swiper = this;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n }\n};\nexport default {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n parallax: _extends({}, Parallax)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init: function init(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, getTranslate } from '../../utils/utils';\nvar Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n return distance;\n },\n // Events\n onGestureStart: function onGestureStart(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(\".\" + swiper.params.slideClass);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') zoom.onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);\n }\n\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var device = swiper.device;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var device = swiper.device;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n } // Define if we need image drag\n\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle: function toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom[\"in\"](e);\n }\n },\n \"in\": function _in(e) {\n var swiper = this;\n var window = getWindow();\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n gesture.$slideEl.addClass(\"\" + params.zoomedSlideClass);\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\");\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n out: function out() {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(\"\" + params.zoomedSlideClass);\n gesture.$slideEl = undefined;\n },\n toggleGestures: function toggleGestures(method) {\n var swiper = this;\n var zoom = swiper.zoom;\n var selector = zoom.slideSelector,\n passive = zoom.passiveListener;\n swiper.$wrapperEl[method]('gesturestart', selector, zoom.onGestureStart, passive);\n swiper.$wrapperEl[method]('gesturechange', selector, zoom.onGestureChange, passive);\n swiper.$wrapperEl[method]('gestureend', selector, zoom.onGestureEnd, passive);\n },\n enableGestures: function enableGestures() {\n if (this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = true;\n this.zoom.toggleGestures('on');\n },\n disableGestures: function disableGestures() {\n if (!this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = false;\n this.zoom.toggleGestures('off');\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var support = swiper.support;\n var zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass;\n swiper.zoom.passiveListener = passiveListener;\n swiper.zoom.slideSelector = slideSelector; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) return;\n var support = swiper.support;\n swiper.zoom.enabled = false;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n }\n};\nexport default {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n zoom: _extends({\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n }\n }, Zoom)\n });\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function get() {\n return scale;\n },\n set: function set(value) {\n if (scale !== value) {\n var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy(swiper) {\n swiper.zoom.disable();\n },\n touchStart: function touchStart(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(swiper, e) {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if (loadInDuplicate === void 0) {\n loadInDuplicate = true;\n }\n\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\") : swiper.slides.eq(index);\n var $images = $slideEl.find(\".\" + params.elementClass + \":not(.\" + params.loadedClass + \"):not(.\" + params.loadingClass + \")\");\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(function (imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n var $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', \"url(\\\"\" + background + \"\\\")\");\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(function (sourceEl) {\n var $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(\".\" + params.preloaderClass).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + swiper.params.slideDuplicateClass + \")\");\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children(\".\" + swiper.params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\");\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n swiperParams = swiper.params,\n slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n var slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(\".\" + swiperParams.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\").length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(\".\" + swiperParams.slideVisibleClass).each(function (slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (var _i = activeIndex + slidesPerView; _i < maxIndex; _i += 1) {\n if (slideExist(_i)) swiper.lazy.loadInSlide(_i);\n } // Prev Slides\n\n\n for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) {\n if (slideExist(_i2)) swiper.lazy.loadInSlide(_i2);\n }\n } else {\n var nextSlide = $wrapperEl.children(\".\" + swiperParams.slideNextClass);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n var prevSlide = $wrapperEl.children(\".\" + swiperParams.slidePrevClass);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n checkInViewOnLoad: function checkInViewOnLoad() {\n var window = getWindow();\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n var isWindow = $scrollElement[0] === window;\n var scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n var scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n var swiperOffset = swiper.$el.offset();\n var rtl = swiper.rtlTranslate;\n var inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n swiper.lazy.load();\n $scrollElement.off('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n } else if (!swiper.lazy.scrollHandlerAttached) {\n swiper.lazy.scrollHandlerAttached = true;\n $scrollElement.on('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n }\n }\n};\nexport default {\n name: 'lazy',\n params: {\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n lazy: _extends({\n initialImageLoaded: false\n }, Lazy)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n if (swiper.params.lazy.checkInView) {\n swiper.lazy.checkInViewOnLoad();\n } else {\n swiper.lazy.load();\n }\n }\n },\n scroll: function scroll(swiper) {\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n 'scrollbarDragMove resize _freeModeNoMomentumRelease': function lazyLoad(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart(swiper) {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\n\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(_setTranslate, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n var Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var Swiper = swiper.constructor;\n var controlled = swiper.controller.control;\n var i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(function () {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n controller: _extends({\n control: swiper.params.controller.control\n }, Controller)\n });\n },\n on: {\n update: function update(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(swiper, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(swiper, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, classesToSelector } from '../../utils/utils';\nvar A11y = {\n getRandomNumber: function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n var randomChar = function randomChar() {\n return Math.round(16 * Math.random()).toString(16);\n };\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n },\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElRoleDescription: function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n return $el;\n },\n addElControls: function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n addElId: function addElId($el, id) {\n $el.attr('id', id);\n return $el;\n },\n addElLive: function addElLive($el, live) {\n $el.attr('aria-live', live);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterOrSpaceKey: function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n var swiper = this;\n var params = swiper.params.a11y;\n var $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n if (swiper.params.loop || !swiper.navigation) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.a11y;\n swiper.$el.append(swiper.a11y.liveRegion); // Container\n\n var $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\n var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n swiper.a11y.addElId($wrapperEl, wrapperId);\n swiper.a11y.addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n swiper.a11y.addElRole($(swiper.slides), params.slideRole);\n swiper.slides.each(function (slideEl) {\n var $slideEl = $(slideEl);\n var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, $slideEl.index() + 1).replace(/\\{\\{slidesLength\\}\\}/, swiper.slides.length);\n swiper.a11y.addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n swiper.a11y.makeElFocusable($nextEl);\n\n if ($nextEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($nextEl, 'button');\n $nextEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n swiper.a11y.addElControls($nextEl, wrapperId);\n }\n\n if ($prevEl && $prevEl.length) {\n swiper.a11y.makeElFocusable($prevEl);\n\n if ($prevEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($prevEl, 'button');\n $prevEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n swiper.a11y.addElControls($prevEl, wrapperId);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n }\n};\nexport default {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends({}, A11y, {\n liveRegion: $(\"\")\n })\n });\n },\n on: {\n afterInit: function afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar History = {\n init: function init() {\n var swiper = this;\n var window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues(swiper.params.url);\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues(swiper.params.url);\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues: function getPathValues(urlOverride) {\n var window = getWindow();\n var location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n var pathArray = location.pathname.slice(1).split('/').filter(function (part) {\n return part !== '';\n });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return {\n key: key,\n value: value\n };\n },\n setHistory: function setHistory(key, index) {\n var swiper = this;\n var window = getWindow();\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n var location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n var slide = swiper.slides.eq(index);\n var value = History.slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n var root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = root + \"/\" + key + \"/\" + value;\n } else if (!location.pathname.includes(key)) {\n value = key + \"/\" + value;\n }\n\n var currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value: value\n }, null, value);\n } else {\n window.history.pushState({\n value: value\n }, null, value);\n }\n },\n slugify: function slugify(text) {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = History.slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n }\n};\nexport default {\n name: 'history',\n params: {\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n history: _extends({}, History)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar HashNavigation = {\n onHashCange: function onHashCange() {\n var swiper = this;\n var document = getDocument();\n swiper.emit('hashChange');\n var newHash = document.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-hash=\\\"\" + newHash + \"\\\"]\").index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n var window = getWindow();\n var document = getDocument();\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, \"#\" + swiper.slides.eq(swiper.activeIndex).attr('data-hash') || '');\n swiper.emit('hashSet');\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init: function init() {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n swiper.hashNavigation.initialized = true;\n var hash = document.location.hash.replace('#', '');\n\n if (hash) {\n var speed = 0;\n\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n }\n};\nexport default {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n hashNavigation: _extends({\n initialized: false\n }, HashNavigation)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n/* eslint no-underscore-dangle: \"off\" */\n\n\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n onMouseEnter: function onMouseEnter() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n },\n onMouseLeave: function onMouseLeave() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n },\n attachMouseEvents: function attachMouseEvents() {\n var swiper = this;\n\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n }\n },\n detachMouseEvents: function detachMouseEvents() {\n var swiper = this;\n swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n swiper.autoplay.attachMouseEvents();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n swiper.autoplay.detachMouseEvents();\n\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl.css({\n opacity: slideOpacity\n }).transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n fadeEffect: _extends({}, Fade)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"fade\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides,\n swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n rtl = swiper.rtlTranslate,\n swiperSize = swiper.size,\n browser = swiper.browser;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: swiperWidth + \"px\"\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
\");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
\");\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-moz-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-ms-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n 'transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\"\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\"translate3d(0px, \" + (swiperWidth / 2 + params.shadowOffset) + \"px, \" + -swiperWidth / 2 + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + params.shadowScale + \")\");\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var offset = params.shadowOffset;\n $cubeShadowEl.transform(\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + (swiperHeight / 2 + offset) + \"px, \" + -swiperHeight / 2 / scale2 + \"px) rotateX(-90deg)\");\n }\n }\n\n var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\");\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n }\n};\nexport default {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n cubeEffect: _extends({}, Cube)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"cube\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n var offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -offset;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
\");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
\");\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n $slideEl.transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n activeIndex = swiper.activeIndex,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false; // eslint-disable-next-line\n\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return; // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n flipEffect: _extends({}, Flip)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"flip\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth; // Each slide offset from center\n\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n var translateZ = -translate * Math.abs(offsetMultiplier);\n var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) scale(\" + scale + \")\";\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(\"
\");\n $slideEl.append($shadowBeforeEl);\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(\"
\");\n $slideEl.append($shadowAfterEl);\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n};\nexport default {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n coverflowEffect: _extends({}, Coverflow)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"coverflow\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { extend, isObject, bindModuleMethods } from '../../utils/utils';\nimport $ from '../../utils/dom';\nvar Thumbs = {\n init: function init() {\n var swiper = this;\n var thumbsParams = swiper.params.thumbs;\n if (swiper.thumbs.initialized) return false;\n swiper.thumbs.initialized = true;\n var SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false\n }));\n swiper.thumbs.swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n return true;\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n var slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n },\n update: function update(initial) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n var direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\").addClass(thumbActiveClass);\n }\n } else {\n for (var _i = 0; _i < thumbsToActivate; _i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass);\n }\n }\n }\n};\nexport default {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n thumbs: _extends({\n swiper: null,\n initialized: false\n }, Thumbs)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n var thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update: function update(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize: function resize(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition: function setTransition(swiper, duration) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy(swiper) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n }\n }\n};","/**\n * Swiper 6.7.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2021 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 23, 2021\n */\nimport Swiper from './esm/components/core/core-class';\nexport { default as Swiper, default } from './esm/components/core/core-class';\nimport Virtual from './esm/components/virtual/virtual';\nimport Keyboard from './esm/components/keyboard/keyboard';\nimport Mousewheel from './esm/components/mousewheel/mousewheel';\nimport Navigation from './esm/components/navigation/navigation';\nimport Pagination from './esm/components/pagination/pagination';\nimport Scrollbar from './esm/components/scrollbar/scrollbar';\nimport Parallax from './esm/components/parallax/parallax';\nimport Zoom from './esm/components/zoom/zoom';\nimport Lazy from './esm/components/lazy/lazy';\nimport Controller from './esm/components/controller/controller';\nimport A11y from './esm/components/a11y/a11y';\nimport History from './esm/components/history/history';\nimport HashNavigation from './esm/components/hash-navigation/hash-navigation';\nimport Autoplay from './esm/components/autoplay/autoplay';\nimport EffectFade from './esm/components/effect-fade/effect-fade';\nimport EffectCube from './esm/components/effect-cube/effect-cube';\nimport EffectFlip from './esm/components/effect-flip/effect-flip';\nimport EffectCoverflow from './esm/components/effect-coverflow/effect-coverflow';\nimport Thumbs from './esm/components/thumbs/thumbs'; // Swiper Class\n\nvar components = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Lazy, Controller, A11y, History, HashNavigation, Autoplay, EffectFade, EffectCube, EffectFlip, EffectCoverflow, Thumbs];\nSwiper.use(components);","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (window, factory) {\n var lazySizes = factory(window, window.document, Date);\n window.lazySizes = lazySizes;\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module.exports) {\n module.exports = lazySizes;\n }\n})(typeof window != 'undefined' ? window : {},\n/**\n * import(\"./types/global\")\n * @typedef { import(\"./types/lazysizes-config\").LazySizesConfigPartial } LazySizesConfigPartial\n */\nfunction l(window, document, Date) {\n // Pass in the window Date function also for SSR because the Date class can be lost\n 'use strict';\n /*jshint eqnull:true */\n\n var lazysizes,\n /**\n * @type { LazySizesConfigPartial }\n */\n lazySizesCfg;\n\n (function () {\n var prop;\n var lazySizesDefaults = {\n lazyClass: 'lazyload',\n loadedClass: 'lazyloaded',\n loadingClass: 'lazyloading',\n preloadClass: 'lazypreload',\n errorClass: 'lazyerror',\n //strictClass: 'lazystrict',\n autosizesClass: 'lazyautosizes',\n fastLoadedClass: 'ls-is-cached',\n iframeLoadMode: 0,\n srcAttr: 'data-src',\n srcsetAttr: 'data-srcset',\n sizesAttr: 'data-sizes',\n //preloadAfterLoad: false,\n minSize: 40,\n customMedia: {},\n init: true,\n expFactor: 1.5,\n hFac: 0.8,\n loadMode: 2,\n loadHidden: true,\n ricTimeout: 0,\n throttleDelay: 125\n };\n lazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n for (prop in lazySizesDefaults) {\n if (!(prop in lazySizesCfg)) {\n lazySizesCfg[prop] = lazySizesDefaults[prop];\n }\n }\n })();\n\n if (!document || !document.getElementsByClassName) {\n return {\n init: function init() {},\n\n /**\n * @type { LazySizesConfigPartial }\n */\n cfg: lazySizesCfg,\n\n /**\n * @type { true }\n */\n noSupport: true\n };\n }\n\n var docElem = document.documentElement;\n var supportPicture = window.HTMLPictureElement;\n var _addEventListener = 'addEventListener';\n var _getAttribute = 'getAttribute';\n /**\n * Update to bind to window because 'this' becomes null during SSR\n * builds.\n */\n\n var addEventListener = window[_addEventListener].bind(window);\n\n var setTimeout = window.setTimeout;\n var requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n var requestIdleCallback = window.requestIdleCallback;\n var regPicture = /^picture$/i;\n var loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n var regClassCache = {};\n var forEach = Array.prototype.forEach;\n /**\n * @param ele {Element}\n * @param cls {string}\n */\n\n var hasClass = function hasClass(ele, cls) {\n if (!regClassCache[cls]) {\n regClassCache[cls] = new RegExp('(\\\\s|^)' + cls + '(\\\\s|$)');\n }\n\n return regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n };\n /**\n * @param ele {Element}\n * @param cls {string}\n */\n\n\n var addClass = function addClass(ele, cls) {\n if (!hasClass(ele, cls)) {\n ele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n }\n };\n /**\n * @param ele {Element}\n * @param cls {string}\n */\n\n\n var removeClass = function removeClass(ele, cls) {\n var reg;\n\n if (reg = hasClass(ele, cls)) {\n ele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n }\n };\n\n var addRemoveLoadEvents = function addRemoveLoadEvents(dom, fn, add) {\n var action = add ? _addEventListener : 'removeEventListener';\n\n if (add) {\n addRemoveLoadEvents(dom, fn);\n }\n\n loadEvents.forEach(function (evt) {\n dom[action](evt, fn);\n });\n };\n /**\n * @param elem { Element }\n * @param name { string }\n * @param detail { any }\n * @param noBubbles { boolean }\n * @param noCancelable { boolean }\n * @returns { CustomEvent }\n */\n\n\n var triggerEvent = function triggerEvent(elem, name, detail, noBubbles, noCancelable) {\n var event = document.createEvent('Event');\n\n if (!detail) {\n detail = {};\n }\n\n detail.instance = lazysizes;\n event.initEvent(name, !noBubbles, !noCancelable);\n event.detail = detail;\n elem.dispatchEvent(event);\n return event;\n };\n\n var updatePolyfill = function updatePolyfill(el, full) {\n var polyfill;\n\n if (!supportPicture && (polyfill = window.picturefill || lazySizesCfg.pf)) {\n if (full && full.src && !el[_getAttribute]('srcset')) {\n el.setAttribute('srcset', full.src);\n }\n\n polyfill({\n reevaluate: true,\n elements: [el]\n });\n } else if (full && full.src) {\n el.src = full.src;\n }\n };\n\n var getCSS = function getCSS(elem, style) {\n return (getComputedStyle(elem, null) || {})[style];\n };\n /**\n *\n * @param elem { Element }\n * @param parent { Element }\n * @param [width] {number}\n * @returns {number}\n */\n\n\n var getWidth = function getWidth(elem, parent, width) {\n width = width || elem.offsetWidth;\n\n while (width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth) {\n width = parent.offsetWidth;\n parent = parent.parentNode;\n }\n\n return width;\n };\n\n var rAF = function () {\n var running, waiting;\n var firstFns = [];\n var secondFns = [];\n var fns = firstFns;\n\n var run = function run() {\n var runFns = fns;\n fns = firstFns.length ? secondFns : firstFns;\n running = true;\n waiting = false;\n\n while (runFns.length) {\n runFns.shift()();\n }\n\n running = false;\n };\n\n var rafBatch = function rafBatch(fn, queue) {\n if (running && !queue) {\n fn.apply(this, arguments);\n } else {\n fns.push(fn);\n\n if (!waiting) {\n waiting = true;\n (document.hidden ? setTimeout : requestAnimationFrame)(run);\n }\n }\n };\n\n rafBatch._lsFlush = run;\n return rafBatch;\n }();\n\n var rAFIt = function rAFIt(fn, simple) {\n return simple ? function () {\n rAF(fn);\n } : function () {\n var that = this;\n var args = arguments;\n rAF(function () {\n fn.apply(that, args);\n });\n };\n };\n\n var throttle = function throttle(fn) {\n var running;\n var lastTime = 0;\n var gDelay = lazySizesCfg.throttleDelay;\n var rICTimeout = lazySizesCfg.ricTimeout;\n\n var run = function run() {\n running = false;\n lastTime = Date.now();\n fn();\n };\n\n var idleCallback = requestIdleCallback && rICTimeout > 49 ? function () {\n requestIdleCallback(run, {\n timeout: rICTimeout\n });\n\n if (rICTimeout !== lazySizesCfg.ricTimeout) {\n rICTimeout = lazySizesCfg.ricTimeout;\n }\n } : rAFIt(function () {\n setTimeout(run);\n }, true);\n return function (isPriority) {\n var delay;\n\n if (isPriority = isPriority === true) {\n rICTimeout = 33;\n }\n\n if (running) {\n return;\n }\n\n running = true;\n delay = gDelay - (Date.now() - lastTime);\n\n if (delay < 0) {\n delay = 0;\n }\n\n if (isPriority || delay < 9) {\n idleCallback();\n } else {\n setTimeout(idleCallback, delay);\n }\n };\n }; //based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\n\n var debounce = function debounce(func) {\n var timeout, timestamp;\n var wait = 99;\n\n var run = function run() {\n timeout = null;\n func();\n };\n\n var later = function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait) {\n setTimeout(later, wait - last);\n } else {\n (requestIdleCallback || run)(run);\n }\n };\n\n return function () {\n timestamp = Date.now();\n\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n };\n };\n\n var loader = function () {\n var preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n var eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n var regImg = /^img$/i;\n var regIframe = /^iframe$/i;\n var supportScroll = 'onscroll' in window && !/(gle|ing)bot/.test(navigator.userAgent);\n var shrinkExpand = 0;\n var currentExpand = 0;\n var isLoading = 0;\n var lowRuns = -1;\n\n var resetPreloading = function resetPreloading(e) {\n isLoading--;\n\n if (!e || isLoading < 0 || !e.target) {\n isLoading = 0;\n }\n };\n\n var isVisible = function isVisible(elem) {\n if (isBodyHidden == null) {\n isBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n }\n\n return isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n };\n\n var isNestedVisible = function isNestedVisible(elem, elemExpand) {\n var outerRect;\n var parent = elem;\n var visible = isVisible(elem);\n eLtop -= elemExpand;\n eLbottom += elemExpand;\n eLleft -= elemExpand;\n eLright += elemExpand;\n\n while (visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem) {\n visible = (getCSS(parent, 'opacity') || 1) > 0;\n\n if (visible && getCSS(parent, 'overflow') != 'visible') {\n outerRect = parent.getBoundingClientRect();\n visible = eLright > outerRect.left && eLleft < outerRect.right && eLbottom > outerRect.top - 1 && eLtop < outerRect.bottom + 1;\n }\n }\n\n return visible;\n };\n\n var checkElements = function checkElements() {\n var eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal, beforeExpandVal, defaultExpand, preloadExpand, hFac;\n var lazyloadElems = lazysizes.elements;\n\n if ((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)) {\n i = 0;\n lowRuns++;\n\n for (; i < eLlen; i++) {\n if (!lazyloadElems[i] || lazyloadElems[i]._lazyRace) {\n continue;\n }\n\n if (!supportScroll || lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i])) {\n unveilElement(lazyloadElems[i]);\n continue;\n }\n\n if (!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)) {\n elemExpand = currentExpand;\n }\n\n if (!defaultExpand) {\n defaultExpand = !lazySizesCfg.expand || lazySizesCfg.expand < 1 ? docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 : lazySizesCfg.expand;\n lazysizes._defEx = defaultExpand;\n preloadExpand = defaultExpand * lazySizesCfg.expFactor;\n hFac = lazySizesCfg.hFac;\n isBodyHidden = null;\n\n if (currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden) {\n currentExpand = preloadExpand;\n lowRuns = 0;\n } else if (loadMode > 1 && lowRuns > 1 && isLoading < 6) {\n currentExpand = defaultExpand;\n } else {\n currentExpand = shrinkExpand;\n }\n }\n\n if (beforeExpandVal !== elemExpand) {\n eLvW = innerWidth + elemExpand * hFac;\n elvH = innerHeight + elemExpand;\n elemNegativeExpand = elemExpand * -1;\n beforeExpandVal = elemExpand;\n }\n\n rect = lazyloadElems[i].getBoundingClientRect();\n\n if ((eLbottom = rect.bottom) >= elemNegativeExpand && (eLtop = rect.top) <= elvH && (eLright = rect.right) >= elemNegativeExpand * hFac && (eLleft = rect.left) <= eLvW && (eLbottom || eLright || eLleft || eLtop) && (lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) && (isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4) || isNestedVisible(lazyloadElems[i], elemExpand))) {\n unveilElement(lazyloadElems[i]);\n loadedSomething = true;\n\n if (isLoading > 9) {\n break;\n }\n } else if (!loadedSomething && isCompleted && !autoLoadElem && isLoading < 4 && lowRuns < 4 && loadMode > 2 && (preloadElems[0] || lazySizesCfg.preloadAfterLoad) && (preloadElems[0] || !elemExpandVal && (eLbottom || eLright || eLleft || eLtop || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto'))) {\n autoLoadElem = preloadElems[0] || lazyloadElems[i];\n }\n }\n\n if (autoLoadElem && !loadedSomething) {\n unveilElement(autoLoadElem);\n }\n }\n };\n\n var throttledCheckElements = throttle(checkElements);\n\n var switchLoadingClass = function switchLoadingClass(e) {\n var elem = e.target;\n\n if (elem._lazyCache) {\n delete elem._lazyCache;\n return;\n }\n\n resetPreloading(e);\n addClass(elem, lazySizesCfg.loadedClass);\n removeClass(elem, lazySizesCfg.loadingClass);\n addRemoveLoadEvents(elem, rafSwitchLoadingClass);\n triggerEvent(elem, 'lazyloaded');\n };\n\n var rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\n var rafSwitchLoadingClass = function rafSwitchLoadingClass(e) {\n rafedSwitchLoadingClass({\n target: e.target\n });\n };\n\n var changeIframeSrc = function changeIframeSrc(elem, src) {\n var loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode; // loadMode can be also a string!\n\n if (loadMode == 0) {\n elem.contentWindow.location.replace(src);\n } else if (loadMode == 1) {\n elem.src = src;\n }\n };\n\n var handleSources = function handleSources(source) {\n var customMedia;\n\n var sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n if (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) {\n source.setAttribute('media', customMedia);\n }\n\n if (sourceSrcset) {\n source.setAttribute('srcset', sourceSrcset);\n }\n };\n\n var lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg) {\n var src, srcset, parent, isPicture, event, firesLoad;\n\n if (!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented) {\n if (sizes) {\n if (isAuto) {\n addClass(elem, lazySizesCfg.autosizesClass);\n } else {\n elem.setAttribute('sizes', sizes);\n }\n }\n\n srcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n src = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n if (isImg) {\n parent = elem.parentNode;\n isPicture = parent && regPicture.test(parent.nodeName || '');\n }\n\n firesLoad = detail.firesLoad || 'src' in elem && (srcset || src || isPicture);\n event = {\n target: elem\n };\n addClass(elem, lazySizesCfg.loadingClass);\n\n if (firesLoad) {\n clearTimeout(resetPreloadingTimer);\n resetPreloadingTimer = setTimeout(resetPreloading, 2500);\n addRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n }\n\n if (isPicture) {\n forEach.call(parent.getElementsByTagName('source'), handleSources);\n }\n\n if (srcset) {\n elem.setAttribute('srcset', srcset);\n } else if (src && !isPicture) {\n if (regIframe.test(elem.nodeName)) {\n changeIframeSrc(elem, src);\n } else {\n elem.src = src;\n }\n }\n\n if (isImg && (srcset || isPicture)) {\n updatePolyfill(elem, {\n src: src\n });\n }\n }\n\n if (elem._lazyRace) {\n delete elem._lazyRace;\n }\n\n removeClass(elem, lazySizesCfg.lazyClass);\n rAF(function () {\n // Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n var isLoaded = elem.complete && elem.naturalWidth > 1;\n\n if (!firesLoad || isLoaded) {\n if (isLoaded) {\n addClass(elem, lazySizesCfg.fastLoadedClass);\n }\n\n switchLoadingClass(event);\n elem._lazyCache = true;\n setTimeout(function () {\n if ('_lazyCache' in elem) {\n delete elem._lazyCache;\n }\n }, 9);\n }\n\n if (elem.loading == 'lazy') {\n isLoading--;\n }\n }, true);\n });\n /**\n *\n * @param elem { Element }\n */\n\n var unveilElement = function unveilElement(elem) {\n if (elem._lazyRace) {\n return;\n }\n\n var detail;\n var isImg = regImg.test(elem.nodeName); //allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\n var sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\n var isAuto = sizes == 'auto';\n\n if ((isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)) {\n return;\n }\n\n detail = triggerEvent(elem, 'lazyunveilread').detail;\n\n if (isAuto) {\n autoSizer.updateElem(elem, true, elem.offsetWidth);\n }\n\n elem._lazyRace = true;\n isLoading++;\n lazyUnveil(elem, detail, isAuto, sizes, isImg);\n };\n\n var afterScroll = debounce(function () {\n lazySizesCfg.loadMode = 3;\n throttledCheckElements();\n });\n\n var altLoadmodeScrollListner = function altLoadmodeScrollListner() {\n if (lazySizesCfg.loadMode == 3) {\n lazySizesCfg.loadMode = 2;\n }\n\n afterScroll();\n };\n\n var onload = function onload() {\n if (isCompleted) {\n return;\n }\n\n if (Date.now() - started < 999) {\n setTimeout(onload, 999);\n return;\n }\n\n isCompleted = true;\n lazySizesCfg.loadMode = 3;\n throttledCheckElements();\n addEventListener('scroll', altLoadmodeScrollListner, true);\n };\n\n return {\n _: function _() {\n started = Date.now();\n lazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n preloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n addEventListener('scroll', throttledCheckElements, true);\n addEventListener('resize', throttledCheckElements, true);\n addEventListener('pageshow', function (e) {\n if (e.persisted) {\n var loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n if (loadingElements.length && loadingElements.forEach) {\n requestAnimationFrame(function () {\n loadingElements.forEach(function (img) {\n if (img.complete) {\n unveilElement(img);\n }\n });\n });\n }\n }\n });\n\n if (window.MutationObserver) {\n new MutationObserver(throttledCheckElements).observe(docElem, {\n childList: true,\n subtree: true,\n attributes: true\n });\n } else {\n docElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\n docElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\n setInterval(throttledCheckElements, 999);\n }\n\n addEventListener('hashchange', throttledCheckElements, true); //, 'fullscreenchange'\n\n ['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function (name) {\n document[_addEventListener](name, throttledCheckElements, true);\n });\n\n if (/d$|^c/.test(document.readyState)) {\n onload();\n } else {\n addEventListener('load', onload);\n\n document[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\n setTimeout(onload, 20000);\n }\n\n if (lazysizes.elements.length) {\n checkElements();\n\n rAF._lsFlush();\n } else {\n throttledCheckElements();\n }\n },\n checkElems: throttledCheckElements,\n unveil: unveilElement,\n _aLSL: altLoadmodeScrollListner\n };\n }();\n\n var autoSizer = function () {\n var autosizesElems;\n var sizeElement = rAFIt(function (elem, parent, event, width) {\n var sources, i, len;\n elem._lazysizesWidth = width;\n width += 'px';\n elem.setAttribute('sizes', width);\n\n if (regPicture.test(parent.nodeName || '')) {\n sources = parent.getElementsByTagName('source');\n\n for (i = 0, len = sources.length; i < len; i++) {\n sources[i].setAttribute('sizes', width);\n }\n }\n\n if (!event.detail.dataAttr) {\n updatePolyfill(elem, event.detail);\n }\n });\n /**\n *\n * @param elem {Element}\n * @param dataAttr\n * @param [width] { number }\n */\n\n var getSizeElement = function getSizeElement(elem, dataAttr, width) {\n var event;\n var parent = elem.parentNode;\n\n if (parent) {\n width = getWidth(elem, parent, width);\n event = triggerEvent(elem, 'lazybeforesizes', {\n width: width,\n dataAttr: !!dataAttr\n });\n\n if (!event.defaultPrevented) {\n width = event.detail.width;\n\n if (width && width !== elem._lazysizesWidth) {\n sizeElement(elem, parent, event, width);\n }\n }\n }\n };\n\n var updateElementsSizes = function updateElementsSizes() {\n var i;\n var len = autosizesElems.length;\n\n if (len) {\n i = 0;\n\n for (; i < len; i++) {\n getSizeElement(autosizesElems[i]);\n }\n }\n };\n\n var debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n return {\n _: function _() {\n autosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n addEventListener('resize', debouncedUpdateElementsSizes);\n },\n checkElems: debouncedUpdateElementsSizes,\n updateElem: getSizeElement\n };\n }();\n\n var init = function init() {\n if (!init.i && document.getElementsByClassName) {\n init.i = true;\n\n autoSizer._();\n\n loader._();\n }\n };\n\n setTimeout(function () {\n if (lazySizesCfg.init) {\n init();\n }\n });\n lazysizes = {\n /**\n * @type { LazySizesConfigPartial }\n */\n cfg: lazySizesCfg,\n autoSizer: autoSizer,\n loader: loader,\n init: init,\n uP: updatePolyfill,\n aC: addClass,\n rC: removeClass,\n hC: hasClass,\n fire: triggerEvent,\n gW: getWidth,\n rAF: rAF\n };\n return lazysizes;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// I18n.js\n// =======\n//\n// This small library provides the Rails I18n API on the Javascript.\n// You don't actually have to use Rails (or even Ruby) to use I18n.js.\n// Just make sure you export all translations in an object like this:\n//\n// I18n.translations.en = {\n// hello: \"Hello World\"\n// };\n//\n// See tests for specific formatting like numbers and dates.\n//\n// Using UMD pattern from\n// https://github.com/umdjs/umd#regular-module\n// `returnExports.js` version\n;\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(\"i18n\", function () {\n return factory(root);\n });\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(root);\n } else {\n // Browser globals (root is window)\n root.I18n = factory(root);\n }\n})(this, function (global) {\n \"use strict\"; // Use previously defined object if exists in current scope\n\n var I18n = global && global.I18n || {}; // Just cache the Array#slice function.\n\n var slice = Array.prototype.slice; // Apply number padding.\n\n var padding = function padding(number) {\n return (\"0\" + number.toString()).substr(-2);\n }; // Improved toFixed number rounding function with support for unprecise floating points\n // JavaScript's standard toFixed function does not round certain numbers correctly (for example 0.105 with precision 2).\n\n\n var toFixed = function toFixed(number, precision) {\n return decimalAdjust('round', number, -precision).toFixed(precision);\n }; // Is a given variable an object?\n // Borrowed from Underscore.js\n\n\n var isObject = function isObject(obj) {\n var type = _typeof(obj);\n\n return type === 'function' || type === 'object';\n };\n\n var isFunction = function isFunction(func) {\n var type = _typeof(func);\n\n return type === 'function';\n }; // Check if value is different than undefined and null;\n\n\n var isSet = function isSet(value) {\n return typeof value !== 'undefined' && value !== null;\n }; // Is a given value an array?\n // Borrowed from Underscore.js\n\n\n var isArray = function isArray(val) {\n if (Array.isArray) {\n return Array.isArray(val);\n }\n\n return Object.prototype.toString.call(val) === '[object Array]';\n };\n\n var isString = function isString(val) {\n return typeof val === 'string' || Object.prototype.toString.call(val) === '[object String]';\n };\n\n var isNumber = function isNumber(val) {\n return typeof val === 'number' || Object.prototype.toString.call(val) === '[object Number]';\n };\n\n var isBoolean = function isBoolean(val) {\n return val === true || val === false;\n };\n\n var isNull = function isNull(val) {\n return val === null;\n };\n\n var decimalAdjust = function decimalAdjust(type, value, exp) {\n // If the exp is undefined or zero...\n if (typeof exp === 'undefined' || +exp === 0) {\n return Math[type](value);\n }\n\n value = +value;\n exp = +exp; // If the value is not a number or the exp is not an integer...\n\n if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {\n return NaN;\n } // Shift\n\n\n value = value.toString().split('e');\n value = Math[type](+(value[0] + 'e' + (value[1] ? +value[1] - exp : -exp))); // Shift back\n\n value = value.toString().split('e');\n return +(value[0] + 'e' + (value[1] ? +value[1] + exp : exp));\n };\n\n var lazyEvaluate = function lazyEvaluate(message, scope) {\n if (isFunction(message)) {\n return message(scope);\n } else {\n return message;\n }\n };\n\n var merge = function merge(dest, obj) {\n var key, value;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n value = obj[key];\n\n if (isString(value) || isNumber(value) || isBoolean(value) || isArray(value) || isNull(value)) {\n dest[key] = value;\n } else {\n if (dest[key] == null) dest[key] = {};\n merge(dest[key], value);\n }\n }\n }\n\n return dest;\n }; // Set default days/months translations.\n\n\n var DATE = {\n day_names: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n abbr_day_names: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n month_names: [null, \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n abbr_month_names: [null, \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n meridian: [\"AM\", \"PM\"]\n }; // Set default number format.\n\n var NUMBER_FORMAT = {\n precision: 3,\n separator: \".\",\n delimiter: \",\",\n strip_insignificant_zeros: false\n }; // Set default currency format.\n\n var CURRENCY_FORMAT = {\n unit: \"$\",\n precision: 2,\n format: \"%u%n\",\n sign_first: true,\n delimiter: \",\",\n separator: \".\"\n }; // Set default percentage format.\n\n var PERCENTAGE_FORMAT = {\n unit: \"%\",\n precision: 3,\n format: \"%n%u\",\n separator: \".\",\n delimiter: \"\"\n }; // Set default size units.\n\n var SIZE_UNITS = [null, \"kb\", \"mb\", \"gb\", \"tb\"]; // Other default options\n\n var DEFAULT_OPTIONS = {\n // Set default locale. This locale will be used when fallback is enabled and\n // the translation doesn't exist in a particular locale.\n defaultLocale: \"en\" // Set the current locale to `en`.\n ,\n locale: \"en\" // Set the translation key separator.\n ,\n defaultSeparator: \".\" // Set the placeholder format. Accepts `{{placeholder}}` and `%{placeholder}`.\n ,\n placeholder: /(?:\\{\\{|%\\{)(.*?)(?:\\}\\}?)/gm // Set if engine should fallback to the default locale when a translation\n // is missing.\n ,\n fallbacks: false // Set the default translation object.\n ,\n translations: {} // Set missing translation behavior. 'message' will display a message\n // that the translation is missing, 'guess' will try to guess the string\n ,\n missingBehaviour: 'message' // if you use missingBehaviour with 'message', but want to know that the\n // string is actually missing for testing purposes, you can prefix the\n // guessed string by setting the value here. By default, no prefix!\n ,\n missingTranslationPrefix: ''\n }; // Set default locale. This locale will be used when fallback is enabled and\n // the translation doesn't exist in a particular locale.\n\n I18n.reset = function () {\n var key;\n\n for (key in DEFAULT_OPTIONS) {\n this[key] = DEFAULT_OPTIONS[key];\n }\n }; // Much like `reset`, but only assign options if not already assigned\n\n\n I18n.initializeOptions = function () {\n var key;\n\n for (key in DEFAULT_OPTIONS) {\n if (!isSet(this[key])) {\n this[key] = DEFAULT_OPTIONS[key];\n }\n }\n };\n\n I18n.initializeOptions(); // Return a list of all locales that must be tried before returning the\n // missing translation message. By default, this will consider the inline option,\n // current locale and fallback locale.\n //\n // I18n.locales.get(\"de-DE\");\n // // [\"de-DE\", \"de\", \"en\"]\n //\n // You can define custom rules for any locale. Just make sure you return a array\n // containing all locales.\n //\n // // Default the Wookie locale to English.\n // I18n.locales[\"wk\"] = function(locale) {\n // return [\"en\"];\n // };\n //\n\n I18n.locales = {}; // Retrieve locales based on inline locale, current locale or default to\n // I18n's detection.\n\n I18n.locales.get = function (locale) {\n var result = this[locale] || this[I18n.locale] || this[\"default\"];\n\n if (isFunction(result)) {\n result = result(locale);\n }\n\n if (isArray(result) === false) {\n result = [result];\n }\n\n return result;\n }; // The default locale list.\n\n\n I18n.locales[\"default\"] = function (locale) {\n var locales = [],\n list = []; // Handle the inline locale option that can be provided to\n // the `I18n.t` options.\n\n if (locale) {\n locales.push(locale);\n } // Add the current locale to the list.\n\n\n if (!locale && I18n.locale) {\n locales.push(I18n.locale);\n } // Add the default locale if fallback strategy is enabled.\n\n\n if (I18n.fallbacks && I18n.defaultLocale) {\n locales.push(I18n.defaultLocale);\n } // Locale code format 1:\n // According to RFC4646 (http://www.ietf.org/rfc/rfc4646.txt)\n // language codes for Traditional Chinese should be `zh-Hant`\n //\n // But due to backward compatibility\n // We use older version of IETF language tag\n // @see http://www.w3.org/TR/html401/struct/dirlang.html\n // @see http://en.wikipedia.org/wiki/IETF_language_tag\n //\n // Format: `language-code = primary-code ( \"-\" subcode )*`\n //\n // primary-code uses ISO639-1\n // @see http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n // @see http://www.iso.org/iso/home/standards/language_codes.htm\n //\n // subcode uses ISO 3166-1 alpha-2\n // @see http://en.wikipedia.org/wiki/ISO_3166\n // @see http://www.iso.org/iso/country_codes.htm\n //\n // @note\n // subcode can be in upper case or lower case\n // defining it in upper case is a convention only\n // Locale code format 2:\n // Format: `code = primary-code ( \"-\" region-code )*`\n // primary-code uses ISO 639-1\n // script-code uses ISO 15924\n // region-code uses ISO 3166-1 alpha-2\n // Example: zh-Hant-TW, en-HK, zh-Hant-CN\n //\n // It is similar to RFC4646 (or actually the same),\n // but seems to be limited to language, script, region\n // Compute each locale with its country code.\n // So this will return an array containing\n // `de-DE` and `de`\n // or\n // `zh-hans-tw`, `zh-hans`, `zh`\n // locales.\n\n\n locales.forEach(function (locale) {\n var localeParts = locale.split(\"-\");\n var firstFallback = null;\n var secondFallback = null;\n\n if (localeParts.length === 3) {\n firstFallback = [localeParts[0], localeParts[1]].join(\"-\");\n secondFallback = localeParts[0];\n } else if (localeParts.length === 2) {\n firstFallback = localeParts[0];\n }\n\n if (list.indexOf(locale) === -1) {\n list.push(locale);\n }\n\n if (!I18n.fallbacks) {\n return;\n }\n\n [firstFallback, secondFallback].forEach(function (nullableFallbackLocale) {\n // We don't want null values\n if (typeof nullableFallbackLocale === \"undefined\") {\n return;\n }\n\n if (nullableFallbackLocale === null) {\n return;\n } // We don't want duplicate values\n //\n // Comparing with `locale` first is faster than\n // checking whether value's presence in the list\n\n\n if (nullableFallbackLocale === locale) {\n return;\n }\n\n if (list.indexOf(nullableFallbackLocale) !== -1) {\n return;\n }\n\n list.push(nullableFallbackLocale);\n });\n }); // No locales set? English it is.\n\n if (!locales.length) {\n locales.push(\"en\");\n }\n\n return list;\n }; // Hold pluralization rules.\n\n\n I18n.pluralization = {}; // Return the pluralizer for a specific locale.\n // If no specify locale is found, then I18n's default will be used.\n\n I18n.pluralization.get = function (locale) {\n return this[locale] || this[I18n.locale] || this[\"default\"];\n }; // The default pluralizer rule.\n // It detects the `zero`, `one`, and `other` scopes.\n\n\n I18n.pluralization[\"default\"] = function (count) {\n switch (count) {\n case 0:\n return [\"zero\", \"other\"];\n\n case 1:\n return [\"one\"];\n\n default:\n return [\"other\"];\n }\n }; // Return current locale. If no locale has been set, then\n // the current locale will be the default locale.\n\n\n I18n.currentLocale = function () {\n return this.locale || this.defaultLocale;\n }; // Check if value is different than undefined and null;\n\n\n I18n.isSet = isSet; // Find and process the translation using the provided scope and options.\n // This is used internally by some functions and should not be used as an\n // public API.\n\n I18n.lookup = function (scope, options) {\n options = options || {};\n var locales = this.locales.get(options.locale).slice(),\n locale,\n scopes,\n fullScope,\n translations;\n fullScope = this.getFullScope(scope, options);\n\n while (locales.length) {\n locale = locales.shift();\n scopes = fullScope.split(options.separator || this.defaultSeparator);\n translations = this.translations[locale];\n\n if (!translations) {\n continue;\n }\n\n while (scopes.length) {\n translations = translations[scopes.shift()];\n\n if (translations === undefined || translations === null) {\n break;\n }\n }\n\n if (translations !== undefined && translations !== null) {\n return translations;\n }\n }\n\n if (isSet(options.defaultValue)) {\n return lazyEvaluate(options.defaultValue, scope);\n }\n }; // lookup pluralization rule key into translations\n\n\n I18n.pluralizationLookupWithoutFallback = function (count, locale, translations) {\n var pluralizer = this.pluralization.get(locale),\n pluralizerKeys = pluralizer(count),\n pluralizerKey,\n message;\n\n if (isObject(translations)) {\n while (pluralizerKeys.length) {\n pluralizerKey = pluralizerKeys.shift();\n\n if (isSet(translations[pluralizerKey])) {\n message = translations[pluralizerKey];\n break;\n }\n }\n }\n\n return message;\n }; // Lookup dedicated to pluralization\n\n\n I18n.pluralizationLookup = function (count, scope, options) {\n options = options || {};\n var locales = this.locales.get(options.locale).slice(),\n locale,\n scopes,\n translations,\n message;\n scope = this.getFullScope(scope, options);\n\n while (locales.length) {\n locale = locales.shift();\n scopes = scope.split(options.separator || this.defaultSeparator);\n translations = this.translations[locale];\n\n if (!translations) {\n continue;\n }\n\n while (scopes.length) {\n translations = translations[scopes.shift()];\n\n if (!isObject(translations)) {\n break;\n }\n\n if (scopes.length === 0) {\n message = this.pluralizationLookupWithoutFallback(count, locale, translations);\n }\n }\n\n if (typeof message !== \"undefined\" && message !== null) {\n break;\n }\n }\n\n if (typeof message === \"undefined\" || message === null) {\n if (isSet(options.defaultValue)) {\n if (isObject(options.defaultValue)) {\n message = this.pluralizationLookupWithoutFallback(count, options.locale, options.defaultValue);\n } else {\n message = options.defaultValue;\n }\n\n translations = options.defaultValue;\n }\n }\n\n return {\n message: message,\n translations: translations\n };\n }; // Rails changed the way the meridian is stored.\n // It started with `date.meridian` returning an array,\n // then it switched to `time.am` and `time.pm`.\n // This function abstracts this difference and returns\n // the correct meridian or the default value when none is provided.\n\n\n I18n.meridian = function () {\n var time = this.lookup(\"time\");\n var date = this.lookup(\"date\");\n\n if (time && time.am && time.pm) {\n return [time.am, time.pm];\n } else if (date && date.meridian) {\n return date.meridian;\n } else {\n return DATE.meridian;\n }\n }; // Merge serveral hash options, checking if value is set before\n // overwriting any value. The precedence is from left to right.\n //\n // I18n.prepareOptions({name: \"John Doe\"}, {name: \"Mary Doe\", role: \"user\"});\n // #=> {name: \"John Doe\", role: \"user\"}\n //\n\n\n I18n.prepareOptions = function () {\n var args = slice.call(arguments),\n options = {},\n subject;\n\n while (args.length) {\n subject = args.shift();\n\n if (_typeof(subject) != \"object\") {\n continue;\n }\n\n for (var attr in subject) {\n if (!subject.hasOwnProperty(attr)) {\n continue;\n }\n\n if (isSet(options[attr])) {\n continue;\n }\n\n options[attr] = subject[attr];\n }\n }\n\n return options;\n }; // Generate a list of translation options for default fallbacks.\n // `defaultValue` is also deleted from options as it is returned as part of\n // the translationOptions array.\n\n\n I18n.createTranslationOptions = function (scope, options) {\n var translationOptions = [{\n scope: scope\n }]; // Defaults should be an array of hashes containing either\n // fallback scopes or messages\n\n if (isSet(options.defaults)) {\n translationOptions = translationOptions.concat(options.defaults);\n } // Maintain support for defaultValue. Since it is always a message\n // insert it in to the translation options as such.\n\n\n if (isSet(options.defaultValue)) {\n translationOptions.push({\n message: options.defaultValue\n });\n }\n\n return translationOptions;\n }; // Translate the given scope with the provided options.\n\n\n I18n.translate = function (scope, options) {\n options = options || {};\n var translationOptions = this.createTranslationOptions(scope, options);\n var translation;\n var usedScope = scope;\n var optionsWithoutDefault = this.prepareOptions(options);\n delete optionsWithoutDefault.defaultValue; // Iterate through the translation options until a translation\n // or message is found.\n\n var translationFound = translationOptions.some(function (translationOption) {\n if (isSet(translationOption.scope)) {\n usedScope = translationOption.scope;\n translation = this.lookup(usedScope, optionsWithoutDefault);\n } else if (isSet(translationOption.message)) {\n translation = lazyEvaluate(translationOption.message, scope);\n }\n\n if (translation !== undefined && translation !== null) {\n return true;\n }\n }, this);\n\n if (!translationFound) {\n return this.missingTranslation(scope, options);\n }\n\n if (typeof translation === \"string\") {\n translation = this.interpolate(translation, options);\n } else if (isArray(translation)) {\n translation = translation.map(function (t) {\n return typeof t === \"string\" ? this.interpolate(t, options) : t;\n }, this);\n } else if (isObject(translation) && isSet(options.count)) {\n translation = this.pluralize(options.count, usedScope, options);\n }\n\n return translation;\n }; // This function interpolates the all variables in the given message.\n\n\n I18n.interpolate = function (message, options) {\n if (message == null) {\n return message;\n }\n\n options = options || {};\n var matches = message.match(this.placeholder),\n placeholder,\n value,\n name,\n regex;\n\n if (!matches) {\n return message;\n }\n\n while (matches.length) {\n placeholder = matches.shift();\n name = placeholder.replace(this.placeholder, \"$1\");\n\n if (isSet(options[name])) {\n value = options[name].toString().replace(/\\$/gm, \"_#$#_\");\n } else if (name in options) {\n value = this.nullPlaceholder(placeholder, message, options);\n } else {\n value = this.missingPlaceholder(placeholder, message, options);\n }\n\n regex = new RegExp(placeholder.replace(/{/gm, \"\\\\{\").replace(/}/gm, \"\\\\}\"));\n message = message.replace(regex, value);\n }\n\n return message.replace(/_#\\$#_/g, \"$\");\n }; // Pluralize the given scope using the `count` value.\n // The pluralized translation may have other placeholders,\n // which will be retrieved from `options`.\n\n\n I18n.pluralize = function (count, scope, options) {\n options = this.prepareOptions({\n count: String(count)\n }, options);\n var pluralizer, result;\n result = this.pluralizationLookup(count, scope, options);\n\n if (typeof result.translations === \"undefined\" || result.translations == null) {\n return this.missingTranslation(scope, options);\n }\n\n if (typeof result.message !== \"undefined\" && result.message != null) {\n return this.interpolate(result.message, options);\n } else {\n pluralizer = this.pluralization.get(options.locale);\n return this.missingTranslation(scope + '.' + pluralizer(count)[0], options);\n }\n }; // Return a missing translation message for the given parameters.\n\n\n I18n.missingTranslation = function (scope, options) {\n //guess intended string\n if (this.missingBehaviour === 'guess') {\n //get only the last portion of the scope\n var s = scope.split('.').slice(-1)[0]; //replace underscore with space && camelcase with space and lowercase letter\n\n return (this.missingTranslationPrefix.length > 0 ? this.missingTranslationPrefix : '') + s.replace(/_/g, ' ').replace(/([a-z])([A-Z])/g, function (match, p1, p2) {\n return p1 + ' ' + p2.toLowerCase();\n });\n }\n\n var localeForTranslation = options != null && options.locale != null ? options.locale : this.currentLocale();\n var fullScope = this.getFullScope(scope, options);\n var fullScopeWithLocale = [localeForTranslation, fullScope].join(options.separator || this.defaultSeparator);\n return '[missing \"' + fullScopeWithLocale + '\" translation]';\n }; // Return a missing placeholder message for given parameters\n\n\n I18n.missingPlaceholder = function (placeholder, message, options) {\n return \"[missing \" + placeholder + \" value]\";\n };\n\n I18n.nullPlaceholder = function () {\n return I18n.missingPlaceholder.apply(I18n, arguments);\n }; // Format number using localization rules.\n // The options will be retrieved from the `number.format` scope.\n // If this isn't present, then the following options will be used:\n //\n // - `precision`: `3`\n // - `separator`: `\".\"`\n // - `delimiter`: `\",\"`\n // - `strip_insignificant_zeros`: `false`\n //\n // You can also override these options by providing the `options` argument.\n //\n\n\n I18n.toNumber = function (number, options) {\n options = this.prepareOptions(options, this.lookup(\"number.format\"), NUMBER_FORMAT);\n var negative = number < 0,\n string = toFixed(Math.abs(number), options.precision).toString(),\n parts = string.split(\".\"),\n precision,\n buffer = [],\n formattedNumber,\n format = options.format || \"%n\",\n sign = negative ? \"-\" : \"\";\n number = parts[0];\n precision = parts[1];\n\n while (number.length > 0) {\n buffer.unshift(number.substr(Math.max(0, number.length - 3), 3));\n number = number.substr(0, number.length - 3);\n }\n\n formattedNumber = buffer.join(options.delimiter);\n\n if (options.strip_insignificant_zeros && precision) {\n precision = precision.replace(/0+$/, \"\");\n }\n\n if (options.precision > 0 && precision) {\n formattedNumber += options.separator + precision;\n }\n\n if (options.sign_first) {\n format = \"%s\" + format;\n } else {\n format = format.replace(\"%n\", \"%s%n\");\n }\n\n formattedNumber = format.replace(\"%u\", options.unit).replace(\"%n\", formattedNumber).replace(\"%s\", sign);\n return formattedNumber;\n }; // Format currency with localization rules.\n // The options will be retrieved from the `number.currency.format` and\n // `number.format` scopes, in that order.\n //\n // Any missing option will be retrieved from the `I18n.toNumber` defaults and\n // the following options:\n //\n // - `unit`: `\"$\"`\n // - `precision`: `2`\n // - `format`: `\"%u%n\"`\n // - `delimiter`: `\",\"`\n // - `separator`: `\".\"`\n //\n // You can also override these options by providing the `options` argument.\n //\n\n\n I18n.toCurrency = function (number, options) {\n options = this.prepareOptions(options, this.lookup(\"number.currency.format\", options), this.lookup(\"number.format\", options), CURRENCY_FORMAT);\n return this.toNumber(number, options);\n }; // Localize several values.\n // You can provide the following scopes: `currency`, `number`, or `percentage`.\n // If you provide a scope that matches the `/^(date|time)/` regular expression\n // then the `value` will be converted by using the `I18n.toTime` function.\n //\n // It will default to the value's `toString` function.\n //\n\n\n I18n.localize = function (scope, value, options) {\n options || (options = {});\n\n switch (scope) {\n case \"currency\":\n return this.toCurrency(value, options);\n\n case \"number\":\n scope = this.lookup(\"number.format\", options);\n return this.toNumber(value, scope);\n\n case \"percentage\":\n return this.toPercentage(value, options);\n\n default:\n var localizedValue;\n\n if (scope.match(/^(date|time)/)) {\n localizedValue = this.toTime(scope, value, options);\n } else {\n localizedValue = value.toString();\n }\n\n return this.interpolate(localizedValue, options);\n }\n }; // Parse a given `date` string into a JavaScript Date object.\n // This function is time zone aware.\n //\n // The following string formats are recognized:\n //\n // yyyy-mm-dd\n // yyyy-mm-dd[ T]hh:mm::ss\n // yyyy-mm-dd[ T]hh:mm::ss\n // yyyy-mm-dd[ T]hh:mm::ssZ\n // yyyy-mm-dd[ T]hh:mm::ss+0000\n // yyyy-mm-dd[ T]hh:mm::ss+00:00\n // yyyy-mm-dd[ T]hh:mm::ss.123Z\n //\n\n\n I18n.parseDate = function (date) {\n var matches, convertedDate, fraction; // A date input of `null` or `undefined` will be returned as-is\n\n if (date == null) {\n return date;\n } // we have a date, so just return it.\n\n\n if (_typeof(date) === \"object\") {\n return date;\n }\n\n matches = date.toString().match(/(\\d{4})-(\\d{2})-(\\d{2})(?:[ T](\\d{2}):(\\d{2}):(\\d{2})([\\.,]\\d{1,3})?)?(Z|\\+00:?00)?/);\n\n if (matches) {\n for (var i = 1; i <= 6; i++) {\n matches[i] = parseInt(matches[i], 10) || 0;\n } // month starts on 0\n\n\n matches[2] -= 1;\n fraction = matches[7] ? 1000 * (\"0\" + matches[7]) : null;\n\n if (matches[8]) {\n convertedDate = new Date(Date.UTC(matches[1], matches[2], matches[3], matches[4], matches[5], matches[6], fraction));\n } else {\n convertedDate = new Date(matches[1], matches[2], matches[3], matches[4], matches[5], matches[6], fraction);\n }\n } else if (typeof date == \"number\") {\n // UNIX timestamp\n convertedDate = new Date();\n convertedDate.setTime(date);\n } else if (date.match(/([A-Z][a-z]{2}) ([A-Z][a-z]{2}) (\\d+) (\\d+:\\d+:\\d+) ([+-]\\d+) (\\d+)/)) {\n // This format `Wed Jul 20 13:03:39 +0000 2011` is parsed by\n // webkit/firefox, but not by IE, so we must parse it manually.\n convertedDate = new Date();\n convertedDate.setTime(Date.parse([RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$6, RegExp.$4, RegExp.$5].join(\" \")));\n } else if (date.match(/\\d+ \\d+:\\d+:\\d+ [+-]\\d+ \\d+/)) {\n // a valid javascript format with timezone info\n convertedDate = new Date();\n convertedDate.setTime(Date.parse(date));\n } else {\n // an arbitrary javascript string\n convertedDate = new Date();\n convertedDate.setTime(Date.parse(date));\n }\n\n return convertedDate;\n }; // Formats time according to the directives in the given format string.\n // The directives begins with a percent (%) character. Any text not listed as a\n // directive will be passed through to the output string.\n //\n // The accepted formats are:\n //\n // %a - The abbreviated weekday name (Sun)\n // %A - The full weekday name (Sunday)\n // %b - The abbreviated month name (Jan)\n // %B - The full month name (January)\n // %c - The preferred local date and time representation\n // %d - Day of the month (01..31)\n // %-d - Day of the month (1..31)\n // %H - Hour of the day, 24-hour clock (00..23)\n // %-H/%k - Hour of the day, 24-hour clock (0..23)\n // %I - Hour of the day, 12-hour clock (01..12)\n // %-I/%l - Hour of the day, 12-hour clock (1..12)\n // %m - Month of the year (01..12)\n // %-m - Month of the year (1..12)\n // %M - Minute of the hour (00..59)\n // %-M - Minute of the hour (0..59)\n // %p - Meridian indicator (AM or PM)\n // %P - Meridian indicator (am or pm)\n // %S - Second of the minute (00..60)\n // %-S - Second of the minute (0..60)\n // %w - Day of the week (Sunday is 0, 0..6)\n // %y - Year without a century (00..99)\n // %-y - Year without a century (0..99)\n // %Y - Year with century\n // %z/%Z - Timezone offset (+0545)\n //\n\n\n I18n.strftime = function (date, format, options) {\n var options = this.lookup(\"date\", options),\n meridianOptions = I18n.meridian();\n\n if (!options) {\n options = {};\n }\n\n options = this.prepareOptions(options, DATE);\n\n if (isNaN(date.getTime())) {\n throw new Error('I18n.strftime() requires a valid date object, but received an invalid date.');\n }\n\n var weekDay = date.getDay(),\n day = date.getDate(),\n year = date.getFullYear(),\n month = date.getMonth() + 1,\n hour = date.getHours(),\n hour12 = hour,\n meridian = hour > 11 ? 1 : 0,\n secs = date.getSeconds(),\n mins = date.getMinutes(),\n offset = date.getTimezoneOffset(),\n absOffsetHours = Math.floor(Math.abs(offset / 60)),\n absOffsetMinutes = Math.abs(offset) - absOffsetHours * 60,\n timezoneoffset = (offset > 0 ? \"-\" : \"+\") + (absOffsetHours.toString().length < 2 ? \"0\" + absOffsetHours : absOffsetHours) + (absOffsetMinutes.toString().length < 2 ? \"0\" + absOffsetMinutes : absOffsetMinutes);\n\n if (hour12 > 12) {\n hour12 = hour12 - 12;\n } else if (hour12 === 0) {\n hour12 = 12;\n }\n\n format = format.replace(\"%a\", options.abbr_day_names[weekDay]);\n format = format.replace(\"%A\", options.day_names[weekDay]);\n format = format.replace(\"%b\", options.abbr_month_names[month]);\n format = format.replace(\"%B\", options.month_names[month]);\n format = format.replace(\"%d\", padding(day));\n format = format.replace(\"%e\", day);\n format = format.replace(\"%-d\", day);\n format = format.replace(\"%H\", padding(hour));\n format = format.replace(\"%-H\", hour);\n format = format.replace(\"%k\", hour);\n format = format.replace(\"%I\", padding(hour12));\n format = format.replace(\"%-I\", hour12);\n format = format.replace(\"%l\", hour12);\n format = format.replace(\"%m\", padding(month));\n format = format.replace(\"%-m\", month);\n format = format.replace(\"%M\", padding(mins));\n format = format.replace(\"%-M\", mins);\n format = format.replace(\"%p\", meridianOptions[meridian]);\n format = format.replace(\"%P\", meridianOptions[meridian].toLowerCase());\n format = format.replace(\"%S\", padding(secs));\n format = format.replace(\"%-S\", secs);\n format = format.replace(\"%w\", weekDay);\n format = format.replace(\"%y\", padding(year));\n format = format.replace(\"%-y\", padding(year).replace(/^0+/, \"\"));\n format = format.replace(\"%Y\", year);\n format = format.replace(\"%z\", timezoneoffset);\n format = format.replace(\"%Z\", timezoneoffset);\n return format;\n }; // Convert the given dateString into a formatted date.\n\n\n I18n.toTime = function (scope, dateString, options) {\n var date = this.parseDate(dateString),\n format = this.lookup(scope, options); // A date input of `null` or `undefined` will be returned as-is\n\n if (date == null) {\n return date;\n }\n\n var date_string = date.toString();\n\n if (date_string.match(/invalid/i)) {\n return date_string;\n }\n\n if (!format) {\n return date_string;\n }\n\n return this.strftime(date, format, options);\n }; // Convert a number into a formatted percentage value.\n\n\n I18n.toPercentage = function (number, options) {\n options = this.prepareOptions(options, this.lookup(\"number.percentage.format\", options), this.lookup(\"number.format\", options), PERCENTAGE_FORMAT);\n return this.toNumber(number, options);\n }; // Convert a number into a readable size representation.\n\n\n I18n.toHumanSize = function (number, options) {\n var kb = 1024,\n size = number,\n iterations = 0,\n unit,\n precision,\n fullScope;\n\n while (size >= kb && iterations < 4) {\n size = size / kb;\n iterations += 1;\n }\n\n if (iterations === 0) {\n fullScope = this.getFullScope(\"number.human.storage_units.units.byte\", options);\n unit = this.t(fullScope, {\n count: size\n });\n precision = 0;\n } else {\n fullScope = this.getFullScope(\"number.human.storage_units.units.\" + SIZE_UNITS[iterations], options);\n unit = this.t(fullScope);\n precision = size - Math.floor(size) === 0 ? 0 : 1;\n }\n\n options = this.prepareOptions(options, {\n unit: unit,\n precision: precision,\n format: \"%n%u\",\n delimiter: \"\"\n });\n return this.toNumber(size, options);\n };\n\n I18n.getFullScope = function (scope, options) {\n options = options || {}; // Deal with the scope as an array.\n\n if (isArray(scope)) {\n scope = scope.join(options.separator || this.defaultSeparator);\n } // Deal with the scope option provided through the second argument.\n //\n // I18n.t('hello', {scope: 'greetings'});\n //\n\n\n if (options.scope) {\n scope = [options.scope, scope].join(options.separator || this.defaultSeparator);\n }\n\n return scope;\n };\n /**\n * Merge obj1 with obj2 (shallow merge), without modifying inputs\n * @param {Object} obj1\n * @param {Object} obj2\n * @returns {Object} Merged values of obj1 and obj2\n *\n * In order to support ES3, `Object.prototype.hasOwnProperty.call` is used\n * Idea is from:\n * https://stackoverflow.com/questions/8157700/object-has-no-hasownproperty-method-i-e-its-undefined-ie8\n */\n\n\n I18n.extend = function (obj1, obj2) {\n if (typeof obj1 === \"undefined\" && typeof obj2 === \"undefined\") {\n return {};\n }\n\n return merge(obj1, obj2);\n }; // Set aliases, so we can save some typing.\n\n\n I18n.t = I18n.translate.bind(I18n);\n I18n.l = I18n.localize.bind(I18n);\n I18n.p = I18n.pluralize.bind(I18n);\n return I18n;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * \n * litepicker.umd.js\n * Litepicker v2.0.11 (https://github.com/wakirin/Litepicker)\n * Package: litepicker (https://www.npmjs.com/package/litepicker)\n * License: MIT (https://github.com/wakirin/Litepicker/blob/master/LICENCE.md)\n * Copyright 2019-2021 Rinat G.\n * \n * Hash: 8991663e2f73caec8a52\n * \n */\n!function (t, e) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) ? module.exports = e() : \"function\" == typeof define && define.amd ? define(\"Litepicker\", [], e) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) ? exports.Litepicker = e() : t.Litepicker = e();\n}(window, function () {\n return function (t) {\n var e = {};\n\n function i(n) {\n if (e[n]) return e[n].exports;\n var o = e[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return t[n].call(o.exports, o, o.exports, i), o.l = !0, o.exports;\n }\n\n return i.m = t, i.c = e, i.d = function (t, e, n) {\n i.o(t, e) || Object.defineProperty(t, e, {\n enumerable: !0,\n get: n\n });\n }, i.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, i.t = function (t, e) {\n if (1 & e && (t = i(t)), 8 & e) return t;\n if (4 & e && \"object\" == _typeof(t) && t && t.__esModule) return t;\n var n = Object.create(null);\n if (i.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & e && \"string\" != typeof t) for (var o in t) {\n i.d(n, o, function (e) {\n return t[e];\n }.bind(null, o));\n }\n return n;\n }, i.n = function (t) {\n var e = t && t.__esModule ? function () {\n return t[\"default\"];\n } : function () {\n return t;\n };\n return i.d(e, \"a\", e), e;\n }, i.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, i.p = \"\", i(i.s = 4);\n }([function (t, e, i) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n\n var n = function () {\n function t(e, i, n) {\n void 0 === e && (e = null), void 0 === i && (i = null), void 0 === n && (n = \"en-US\"), this.dateInstance = \"object\" == _typeof(i) && null !== i ? i.parse(e instanceof t ? e.clone().toJSDate() : e) : \"string\" == typeof i ? t.parseDateTime(e, i, n) : e ? t.parseDateTime(e) : t.parseDateTime(new Date()), this.lang = n;\n }\n\n return t.parseDateTime = function (e, i, n) {\n if (void 0 === i && (i = \"YYYY-MM-DD\"), void 0 === n && (n = \"en-US\"), !e) return new Date(NaN);\n if (e instanceof Date) return new Date(e);\n if (e instanceof t) return e.clone().toJSDate();\n if (/^-?\\d{10,}$/.test(e)) return t.getDateZeroTime(new Date(Number(e)));\n\n if (\"string\" == typeof e) {\n for (var o = [], s = null; null != (s = t.regex.exec(i));) {\n \"\\\\\" !== s[1] && o.push(s);\n }\n\n if (o.length) {\n var r = {\n year: null,\n month: null,\n shortMonth: null,\n longMonth: null,\n day: null,\n value: \"\"\n };\n o[0].index > 0 && (r.value += \".*?\");\n\n for (var a = 0, l = Object.entries(o); a < l.length; a++) {\n var c = l[a],\n h = c[0],\n p = c[1],\n d = Number(h),\n u = t.formatPatterns(p[0], n),\n m = u.group,\n f = u.pattern;\n r[m] = d + 1, r.value += f, r.value += \".*?\";\n }\n\n var g = new RegExp(\"^\" + r.value + \"$\");\n\n if (g.test(e)) {\n var v = g.exec(e),\n y = Number(v[r.year]),\n b = null;\n r.month ? b = Number(v[r.month]) - 1 : r.shortMonth ? b = t.shortMonths(n).indexOf(v[r.shortMonth]) : r.longMonth && (b = t.longMonths(n).indexOf(v[r.longMonth]));\n var k = Number(v[r.day]) || 1;\n return new Date(y, b, k, 0, 0, 0, 0);\n }\n }\n }\n\n return t.getDateZeroTime(new Date(e));\n }, t.convertArray = function (e, i) {\n return e.map(function (e) {\n return e instanceof Array ? e.map(function (e) {\n return new t(e, i);\n }) : new t(e, i);\n });\n }, t.getDateZeroTime = function (t) {\n return new Date(t.getFullYear(), t.getMonth(), t.getDate(), 0, 0, 0, 0);\n }, t.shortMonths = function (e) {\n return t.MONTH_JS.map(function (t) {\n return new Date(2019, t).toLocaleString(e, {\n month: \"short\"\n });\n });\n }, t.longMonths = function (e) {\n return t.MONTH_JS.map(function (t) {\n return new Date(2019, t).toLocaleString(e, {\n month: \"long\"\n });\n });\n }, t.formatPatterns = function (e, i) {\n switch (e) {\n case \"YY\":\n case \"YYYY\":\n return {\n group: \"year\",\n pattern: \"(\\\\d{\" + e.length + \"})\"\n };\n\n case \"M\":\n return {\n group: \"month\",\n pattern: \"(\\\\d{1,2})\"\n };\n\n case \"MM\":\n return {\n group: \"month\",\n pattern: \"(\\\\d{2})\"\n };\n\n case \"MMM\":\n return {\n group: \"shortMonth\",\n pattern: \"(\" + t.shortMonths(i).join(\"|\") + \")\"\n };\n\n case \"MMMM\":\n return {\n group: \"longMonth\",\n pattern: \"(\" + t.longMonths(i).join(\"|\") + \")\"\n };\n\n case \"D\":\n return {\n group: \"day\",\n pattern: \"(\\\\d{1,2})\"\n };\n\n case \"DD\":\n return {\n group: \"day\",\n pattern: \"(\\\\d{2})\"\n };\n }\n }, t.prototype.toJSDate = function () {\n return this.dateInstance;\n }, t.prototype.toLocaleString = function (t, e) {\n return this.dateInstance.toLocaleString(t, e);\n }, t.prototype.toDateString = function () {\n return this.dateInstance.toDateString();\n }, t.prototype.getSeconds = function () {\n return this.dateInstance.getSeconds();\n }, t.prototype.getDay = function () {\n return this.dateInstance.getDay();\n }, t.prototype.getTime = function () {\n return this.dateInstance.getTime();\n }, t.prototype.getDate = function () {\n return this.dateInstance.getDate();\n }, t.prototype.getMonth = function () {\n return this.dateInstance.getMonth();\n }, t.prototype.getFullYear = function () {\n return this.dateInstance.getFullYear();\n }, t.prototype.setMonth = function (t) {\n return this.dateInstance.setMonth(t);\n }, t.prototype.setHours = function (t, e, i, n) {\n void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === n && (n = 0), this.dateInstance.setHours(t, e, i, n);\n }, t.prototype.setSeconds = function (t) {\n return this.dateInstance.setSeconds(t);\n }, t.prototype.setDate = function (t) {\n return this.dateInstance.setDate(t);\n }, t.prototype.setFullYear = function (t) {\n return this.dateInstance.setFullYear(t);\n }, t.prototype.getWeek = function (t) {\n var e = new Date(this.timestamp()),\n i = (this.getDay() + (7 - t)) % 7;\n e.setDate(e.getDate() - i);\n var n = e.getTime();\n return e.setMonth(0, 1), e.getDay() !== t && e.setMonth(0, 1 + (4 - e.getDay() + 7) % 7), 1 + Math.ceil((n - e.getTime()) / 6048e5);\n }, t.prototype.clone = function () {\n return new t(this.toJSDate());\n }, t.prototype.isBetween = function (t, e, i) {\n switch (void 0 === i && (i = \"()\"), i) {\n default:\n case \"()\":\n return this.timestamp() > t.getTime() && this.timestamp() < e.getTime();\n\n case \"[)\":\n return this.timestamp() >= t.getTime() && this.timestamp() < e.getTime();\n\n case \"(]\":\n return this.timestamp() > t.getTime() && this.timestamp() <= e.getTime();\n\n case \"[]\":\n return this.timestamp() >= t.getTime() && this.timestamp() <= e.getTime();\n }\n }, t.prototype.isBefore = function (t, e) {\n switch (void 0 === e && (e = \"seconds\"), e) {\n case \"second\":\n case \"seconds\":\n return t.getTime() > this.getTime();\n\n case \"day\":\n case \"days\":\n return new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime() > new Date(this.getFullYear(), this.getMonth(), this.getDate()).getTime();\n\n case \"month\":\n case \"months\":\n return new Date(t.getFullYear(), t.getMonth(), 1).getTime() > new Date(this.getFullYear(), this.getMonth(), 1).getTime();\n\n case \"year\":\n case \"years\":\n return t.getFullYear() > this.getFullYear();\n }\n\n throw new Error(\"isBefore: Invalid unit!\");\n }, t.prototype.isSameOrBefore = function (t, e) {\n switch (void 0 === e && (e = \"seconds\"), e) {\n case \"second\":\n case \"seconds\":\n return t.getTime() >= this.getTime();\n\n case \"day\":\n case \"days\":\n return new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime() >= new Date(this.getFullYear(), this.getMonth(), this.getDate()).getTime();\n\n case \"month\":\n case \"months\":\n return new Date(t.getFullYear(), t.getMonth(), 1).getTime() >= new Date(this.getFullYear(), this.getMonth(), 1).getTime();\n }\n\n throw new Error(\"isSameOrBefore: Invalid unit!\");\n }, t.prototype.isAfter = function (t, e) {\n switch (void 0 === e && (e = \"seconds\"), e) {\n case \"second\":\n case \"seconds\":\n return this.getTime() > t.getTime();\n\n case \"day\":\n case \"days\":\n return new Date(this.getFullYear(), this.getMonth(), this.getDate()).getTime() > new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime();\n\n case \"month\":\n case \"months\":\n return new Date(this.getFullYear(), this.getMonth(), 1).getTime() > new Date(t.getFullYear(), t.getMonth(), 1).getTime();\n\n case \"year\":\n case \"years\":\n return this.getFullYear() > t.getFullYear();\n }\n\n throw new Error(\"isAfter: Invalid unit!\");\n }, t.prototype.isSameOrAfter = function (t, e) {\n switch (void 0 === e && (e = \"seconds\"), e) {\n case \"second\":\n case \"seconds\":\n return this.getTime() >= t.getTime();\n\n case \"day\":\n case \"days\":\n return new Date(this.getFullYear(), this.getMonth(), this.getDate()).getTime() >= new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime();\n\n case \"month\":\n case \"months\":\n return new Date(this.getFullYear(), this.getMonth(), 1).getTime() >= new Date(t.getFullYear(), t.getMonth(), 1).getTime();\n }\n\n throw new Error(\"isSameOrAfter: Invalid unit!\");\n }, t.prototype.isSame = function (t, e) {\n switch (void 0 === e && (e = \"seconds\"), e) {\n case \"second\":\n case \"seconds\":\n return this.getTime() === t.getTime();\n\n case \"day\":\n case \"days\":\n return new Date(this.getFullYear(), this.getMonth(), this.getDate()).getTime() === new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime();\n\n case \"month\":\n case \"months\":\n return new Date(this.getFullYear(), this.getMonth(), 1).getTime() === new Date(t.getFullYear(), t.getMonth(), 1).getTime();\n }\n\n throw new Error(\"isSame: Invalid unit!\");\n }, t.prototype.add = function (t, e) {\n switch (void 0 === e && (e = \"seconds\"), e) {\n case \"second\":\n case \"seconds\":\n this.setSeconds(this.getSeconds() + t);\n break;\n\n case \"day\":\n case \"days\":\n this.setDate(this.getDate() + t);\n break;\n\n case \"month\":\n case \"months\":\n this.setMonth(this.getMonth() + t);\n }\n\n return this;\n }, t.prototype.subtract = function (t, e) {\n switch (void 0 === e && (e = \"seconds\"), e) {\n case \"second\":\n case \"seconds\":\n this.setSeconds(this.getSeconds() - t);\n break;\n\n case \"day\":\n case \"days\":\n this.setDate(this.getDate() - t);\n break;\n\n case \"month\":\n case \"months\":\n this.setMonth(this.getMonth() - t);\n }\n\n return this;\n }, t.prototype.diff = function (t, e) {\n void 0 === e && (e = \"seconds\");\n\n switch (e) {\n default:\n case \"second\":\n case \"seconds\":\n return this.getTime() - t.getTime();\n\n case \"day\":\n case \"days\":\n return Math.round((this.timestamp() - t.getTime()) / 864e5);\n\n case \"month\":\n case \"months\":\n }\n }, t.prototype.format = function (e, i) {\n if (void 0 === i && (i = \"en-US\"), \"object\" == _typeof(e)) return e.output(this.clone().toJSDate());\n\n for (var n = \"\", o = [], s = null; null != (s = t.regex.exec(e));) {\n \"\\\\\" !== s[1] && o.push(s);\n }\n\n if (o.length) {\n o[0].index > 0 && (n += e.substring(0, o[0].index));\n\n for (var r = 0, a = Object.entries(o); r < a.length; r++) {\n var l = a[r],\n c = l[0],\n h = l[1],\n p = Number(c);\n n += this.formatTokens(h[0], i), o[p + 1] && (n += e.substring(h.index + h[0].length, o[p + 1].index)), p === o.length - 1 && (n += e.substring(h.index + h[0].length));\n }\n }\n\n return n.replace(/\\\\/g, \"\");\n }, t.prototype.timestamp = function () {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0, 0).getTime();\n }, t.prototype.formatTokens = function (e, i) {\n switch (e) {\n case \"YY\":\n return String(this.getFullYear()).slice(-2);\n\n case \"YYYY\":\n return String(this.getFullYear());\n\n case \"M\":\n return String(this.getMonth() + 1);\n\n case \"MM\":\n return (\"0\" + (this.getMonth() + 1)).slice(-2);\n\n case \"MMM\":\n return t.shortMonths(i)[this.getMonth()];\n\n case \"MMMM\":\n return t.longMonths(i)[this.getMonth()];\n\n case \"D\":\n return String(this.getDate());\n\n case \"DD\":\n return (\"0\" + this.getDate()).slice(-2);\n\n default:\n return \"\";\n }\n }, t.regex = /(\\\\)?(Y{2,4}|M{1,4}|D{1,2}|d{1,4})/g, t.MONTH_JS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], t;\n }();\n\n e.DateTime = n;\n }, function (t, e, i) {\n \"use strict\";\n\n var _n,\n o = this && this.__extends || (_n = function n(t, e) {\n return (_n = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (t, e) {\n t.__proto__ = e;\n } || function (t, e) {\n for (var i in e) {\n e.hasOwnProperty(i) && (t[i] = e[i]);\n }\n })(t, e);\n }, function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n _n(t, e), t.prototype = null === e ? Object.create(e) : (i.prototype = e.prototype, new i());\n }),\n s = this && this.__spreadArrays || function () {\n for (var t = 0, e = 0, i = arguments.length; e < i; e++) {\n t += arguments[e].length;\n }\n\n var n = Array(t),\n o = 0;\n\n for (e = 0; e < i; e++) {\n for (var s = arguments[e], r = 0, a = s.length; r < a; r++, o++) {\n n[o] = s[r];\n }\n }\n\n return n;\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n\n var r = i(5),\n a = i(0),\n l = i(3),\n c = i(2),\n h = function (t) {\n function e(e) {\n var i = t.call(this, e) || this;\n return i.preventClick = !1, i.bindEvents(), i;\n }\n\n return o(e, t), e.prototype.scrollToDate = function (t) {\n if (this.options.scrollToDate) {\n var e = this.options.startDate instanceof a.DateTime ? this.options.startDate.clone() : null,\n i = this.options.endDate instanceof a.DateTime ? this.options.endDate.clone() : null;\n !this.options.startDate || t && t !== this.options.element ? t && this.options.endDate && t === this.options.elementEnd && (i.setDate(1), this.options.numberOfMonths > 1 && i.isAfter(e) && i.setMonth(i.getMonth() - (this.options.numberOfMonths - 1)), this.calendars[0] = i.clone()) : (e.setDate(1), this.calendars[0] = e.clone());\n }\n }, e.prototype.bindEvents = function () {\n document.addEventListener(\"click\", this.onClick.bind(this), !0), this.ui = document.createElement(\"div\"), this.ui.className = l.litepicker, this.ui.style.display = \"none\", this.ui.addEventListener(\"mouseenter\", this.onMouseEnter.bind(this), !0), this.ui.addEventListener(\"mouseleave\", this.onMouseLeave.bind(this), !1), this.options.autoRefresh ? (this.options.element instanceof HTMLElement && this.options.element.addEventListener(\"keyup\", this.onInput.bind(this), !0), this.options.elementEnd instanceof HTMLElement && this.options.elementEnd.addEventListener(\"keyup\", this.onInput.bind(this), !0)) : (this.options.element instanceof HTMLElement && this.options.element.addEventListener(\"change\", this.onInput.bind(this), !0), this.options.elementEnd instanceof HTMLElement && this.options.elementEnd.addEventListener(\"change\", this.onInput.bind(this), !0)), this.options.parentEl ? this.options.parentEl instanceof HTMLElement ? this.options.parentEl.appendChild(this.ui) : document.querySelector(this.options.parentEl).appendChild(this.ui) : this.options.inlineMode ? this.options.element instanceof HTMLInputElement ? this.options.element.parentNode.appendChild(this.ui) : this.options.element.appendChild(this.ui) : document.body.appendChild(this.ui), this.updateInput(), this.init(), \"function\" == typeof this.options.setup && this.options.setup.call(this, this), this.render(), this.options.inlineMode && this.show();\n }, e.prototype.updateInput = function () {\n if (this.options.element instanceof HTMLInputElement) {\n var t = this.options.startDate,\n e = this.options.endDate;\n if (this.options.singleMode && t) this.options.element.value = t.format(this.options.format, this.options.lang);else if (!this.options.singleMode && t && e) {\n var i = t.format(this.options.format, this.options.lang),\n n = e.format(this.options.format, this.options.lang);\n this.options.elementEnd instanceof HTMLInputElement ? (this.options.element.value = i, this.options.elementEnd.value = n) : this.options.element.value = \"\" + i + this.options.delimiter + n;\n }\n t || e || (this.options.element.value = \"\", this.options.elementEnd instanceof HTMLInputElement && (this.options.elementEnd.value = \"\"));\n }\n }, e.prototype.isSamePicker = function (t) {\n return t.closest(\".\" + l.litepicker) === this.ui;\n }, e.prototype.shouldShown = function (t) {\n return !t.disabled && (t === this.options.element || this.options.elementEnd && t === this.options.elementEnd);\n }, e.prototype.shouldResetDatePicked = function () {\n return this.options.singleMode || 2 === this.datePicked.length;\n }, e.prototype.shouldSwapDatePicked = function () {\n return 2 === this.datePicked.length && this.datePicked[0].getTime() > this.datePicked[1].getTime();\n }, e.prototype.shouldCheckLockDays = function () {\n return this.options.disallowLockDaysInRange && 2 === this.datePicked.length;\n }, e.prototype.onClick = function (t) {\n var e = t.target;\n if (e && this.ui) if (this.shouldShown(e)) this.show(e);else if (e.closest(\".\" + l.litepicker) || !this.isShowning()) {\n if (this.isSamePicker(e)) if (this.emit(\"before:click\", e), this.preventClick) this.preventClick = !1;else {\n if (e.classList.contains(l.dayItem)) {\n if (t.preventDefault(), e.classList.contains(l.isLocked)) return;\n\n if (this.shouldResetDatePicked() && (this.datePicked.length = 0), this.datePicked[this.datePicked.length] = new a.DateTime(e.dataset.time), this.shouldSwapDatePicked()) {\n var i = this.datePicked[1].clone();\n this.datePicked[1] = this.datePicked[0].clone(), this.datePicked[0] = i.clone();\n }\n\n if (this.shouldCheckLockDays()) c.rangeIsLocked(this.datePicked, this.options) && (this.emit(\"error:range\", this.datePicked), this.datePicked.length = 0);\n return this.render(), this.emit.apply(this, s([\"preselect\"], s(this.datePicked).map(function (t) {\n return t.clone();\n }))), void (this.options.autoApply && (this.options.singleMode && this.datePicked.length ? (this.setDate(this.datePicked[0]), this.hide()) : this.options.singleMode || 2 !== this.datePicked.length || (this.setDateRange(this.datePicked[0], this.datePicked[1]), this.hide())));\n }\n\n if (e.classList.contains(l.buttonPreviousMonth)) {\n t.preventDefault();\n var n = 0,\n o = this.options.switchingMonths || this.options.numberOfMonths;\n\n if (this.options.splitView) {\n var r = e.closest(\".\" + l.monthItem);\n n = c.findNestedMonthItem(r), o = 1;\n }\n\n return this.calendars[n].setMonth(this.calendars[n].getMonth() - o), this.gotoDate(this.calendars[n], n), void this.emit(\"change:month\", this.calendars[n], n);\n }\n\n if (e.classList.contains(l.buttonNextMonth)) {\n t.preventDefault();\n n = 0, o = this.options.switchingMonths || this.options.numberOfMonths;\n\n if (this.options.splitView) {\n r = e.closest(\".\" + l.monthItem);\n n = c.findNestedMonthItem(r), o = 1;\n }\n\n return this.calendars[n].setMonth(this.calendars[n].getMonth() + o), this.gotoDate(this.calendars[n], n), void this.emit(\"change:month\", this.calendars[n], n);\n }\n\n e.classList.contains(l.buttonCancel) && (t.preventDefault(), this.hide(), this.emit(\"button:cancel\")), e.classList.contains(l.buttonApply) && (t.preventDefault(), this.options.singleMode && this.datePicked.length ? this.setDate(this.datePicked[0]) : this.options.singleMode || 2 !== this.datePicked.length || this.setDateRange(this.datePicked[0], this.datePicked[1]), this.hide(), this.emit(\"button:apply\", this.options.startDate, this.options.endDate));\n }\n } else this.hide();\n }, e.prototype.showTooltip = function (t, e) {\n var i = this.ui.querySelector(\".\" + l.containerTooltip);\n i.style.visibility = \"visible\", i.innerHTML = e;\n var n = this.ui.getBoundingClientRect(),\n o = i.getBoundingClientRect(),\n s = t.getBoundingClientRect(),\n r = s.top,\n a = s.left;\n\n if (this.options.inlineMode && this.options.parentEl) {\n var c = this.ui.parentNode.getBoundingClientRect();\n r -= c.top, a -= c.left;\n } else r -= n.top, a -= n.left;\n\n r -= o.height, a -= o.width / 2, a += s.width / 2, i.style.top = r + \"px\", i.style.left = a + \"px\", this.emit(\"tooltip\", i, t);\n }, e.prototype.hideTooltip = function () {\n this.ui.querySelector(\".\" + l.containerTooltip).style.visibility = \"hidden\";\n }, e.prototype.shouldAllowMouseEnter = function (t) {\n return !this.options.singleMode && !t.classList.contains(l.isLocked);\n }, e.prototype.shouldAllowRepick = function () {\n return this.options.elementEnd && this.options.allowRepick && this.options.startDate && this.options.endDate;\n }, e.prototype.isDayItem = function (t) {\n return t.classList.contains(l.dayItem);\n }, e.prototype.onMouseEnter = function (t) {\n var e = this,\n i = t.target;\n\n if (this.isDayItem(i) && this.shouldAllowMouseEnter(i)) {\n if (this.shouldAllowRepick() && (this.triggerElement === this.options.element ? this.datePicked[0] = this.options.endDate.clone() : this.triggerElement === this.options.elementEnd && (this.datePicked[0] = this.options.startDate.clone())), 1 !== this.datePicked.length) return;\n var n = this.ui.querySelector(\".\" + l.dayItem + '[data-time=\"' + this.datePicked[0].getTime() + '\"]'),\n o = this.datePicked[0].clone(),\n s = new a.DateTime(i.dataset.time),\n r = !1;\n\n if (o.getTime() > s.getTime()) {\n var c = o.clone();\n o = s.clone(), s = c.clone(), r = !0;\n }\n\n if (Array.prototype.slice.call(this.ui.querySelectorAll(\".\" + l.dayItem)).forEach(function (t) {\n var i = new a.DateTime(t.dataset.time),\n n = e.renderDay(i);\n i.isBetween(o, s) && n.classList.add(l.isInRange), t.className = n.className;\n }), i.classList.add(l.isEndDate), r ? (n && n.classList.add(l.isFlipped), i.classList.add(l.isFlipped)) : (n && n.classList.remove(l.isFlipped), i.classList.remove(l.isFlipped)), this.options.showTooltip) {\n var h = s.diff(o, \"day\") + 1;\n\n if (\"function\" == typeof this.options.tooltipNumber && (h = this.options.tooltipNumber.call(this, h)), h > 0) {\n var p = this.pluralSelector(h),\n d = h + \" \" + (this.options.tooltipText[p] ? this.options.tooltipText[p] : \"[\" + p + \"]\");\n this.showTooltip(i, d);\n var u = window.navigator.userAgent,\n m = /(iphone|ipad)/i.test(u),\n f = /OS 1([0-2])/i.test(u);\n m && f && i.dispatchEvent(new Event(\"click\"));\n } else this.hideTooltip();\n }\n }\n }, e.prototype.onMouseLeave = function (t) {\n t.target;\n this.options.allowRepick && (!this.options.allowRepick || this.options.startDate || this.options.endDate) && (this.datePicked.length = 0, this.render());\n }, e.prototype.onInput = function (t) {\n var e = this.parseInput(),\n i = e[0],\n n = e[1],\n o = this.options.format;\n\n if (this.options.elementEnd ? i instanceof a.DateTime && n instanceof a.DateTime && i.format(o) === this.options.element.value && n.format(o) === this.options.elementEnd.value : this.options.singleMode ? i instanceof a.DateTime && i.format(o) === this.options.element.value : i instanceof a.DateTime && n instanceof a.DateTime && \"\" + i.format(o) + this.options.delimiter + n.format(o) === this.options.element.value) {\n if (n && i.getTime() > n.getTime()) {\n var s = i.clone();\n i = n.clone(), n = s.clone();\n }\n\n this.options.startDate = new a.DateTime(i, this.options.format, this.options.lang), n && (this.options.endDate = new a.DateTime(n, this.options.format, this.options.lang)), this.updateInput(), this.render();\n var r = i.clone(),\n l = 0;\n (this.options.elementEnd ? i.format(o) === t.target.value : t.target.value.startsWith(i.format(o))) || (r = n.clone(), l = this.options.numberOfMonths - 1), this.emit(\"selected\", this.getStartDate(), this.getEndDate()), this.gotoDate(r, l);\n }\n }, e;\n }(r.Calendar);\n\n e.Litepicker = h;\n }, function (t, e, i) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.findNestedMonthItem = function (t) {\n for (var e = t.parentNode.childNodes, i = 0; i < e.length; i += 1) {\n if (e.item(i) === t) return i;\n }\n\n return 0;\n }, e.dateIsLocked = function (t, e, i) {\n var n = !1;\n return e.lockDays.length && (n = e.lockDays.filter(function (i) {\n return i instanceof Array ? t.isBetween(i[0], i[1], e.lockDaysInclusivity) : i.isSame(t, \"day\");\n }).length), n || \"function\" != typeof e.lockDaysFilter || (n = e.lockDaysFilter.call(this, t.clone(), null, i)), n;\n }, e.rangeIsLocked = function (t, e) {\n var i = !1;\n return e.lockDays.length && (i = e.lockDays.filter(function (i) {\n if (i instanceof Array) {\n var n = t[0].toDateString() === i[0].toDateString() && t[1].toDateString() === i[1].toDateString();\n return i[0].isBetween(t[0], t[1], e.lockDaysInclusivity) || i[1].isBetween(t[0], t[1], e.lockDaysInclusivity) || n;\n }\n\n return i.isBetween(t[0], t[1], e.lockDaysInclusivity);\n }).length), i || \"function\" != typeof e.lockDaysFilter || (i = e.lockDaysFilter.call(this, t[0].clone(), t[1].clone(), t)), i;\n };\n }, function (t, e, i) {\n var n = i(8);\n \"string\" == typeof n && (n = [[t.i, n, \"\"]]);\n var o = {\n insert: function insert(t) {\n var e = document.querySelector(\"head\"),\n i = window._lastElementInsertedByStyleLoader;\n window.disableLitepickerStyles || (i ? i.nextSibling ? e.insertBefore(t, i.nextSibling) : e.appendChild(t) : e.insertBefore(t, e.firstChild), window._lastElementInsertedByStyleLoader = t);\n },\n singleton: !1\n };\n i(10)(n, o);\n n.locals && (t.exports = n.locals);\n }, function (t, e, i) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n var n = i(1);\n e.Litepicker = n.Litepicker, i(11), window.Litepicker = n.Litepicker, e[\"default\"] = n.Litepicker;\n }, function (t, e, i) {\n \"use strict\";\n\n var _n2,\n o = this && this.__extends || (_n2 = function n(t, e) {\n return (_n2 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (t, e) {\n t.__proto__ = e;\n } || function (t, e) {\n for (var i in e) {\n e.hasOwnProperty(i) && (t[i] = e[i]);\n }\n })(t, e);\n }, function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n _n2(t, e), t.prototype = null === e ? Object.create(e) : (i.prototype = e.prototype, new i());\n });\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n\n var s = i(6),\n r = i(0),\n a = i(3),\n l = i(2),\n c = function (t) {\n function e(e) {\n return t.call(this, e) || this;\n }\n\n return o(e, t), e.prototype.render = function () {\n var t = this;\n this.emit(\"before:render\", this.ui);\n var e = document.createElement(\"div\");\n e.className = a.containerMain;\n var i = document.createElement(\"div\");\n i.className = a.containerMonths, a[\"columns\" + this.options.numberOfColumns] && (i.classList.remove(a.columns2, a.columns3, a.columns4), i.classList.add(a[\"columns\" + this.options.numberOfColumns])), this.options.splitView && i.classList.add(a.splitView), this.options.showWeekNumbers && i.classList.add(a.showWeekNumbers);\n\n for (var n = this.calendars[0].clone(), o = n.getMonth(), s = n.getMonth() + this.options.numberOfMonths, r = 0, l = o; l < s; l += 1) {\n var c = n.clone();\n c.setDate(1), c.setHours(0, 0, 0, 0), this.options.splitView ? c = this.calendars[r].clone() : c.setMonth(l), i.appendChild(this.renderMonth(c, r)), r += 1;\n }\n\n if (this.ui.innerHTML = \"\", e.appendChild(i), this.options.resetButton) {\n var h = void 0;\n \"function\" == typeof this.options.resetButton ? h = this.options.resetButton.call(this) : ((h = document.createElement(\"button\")).type = \"button\", h.className = a.resetButton, h.innerHTML = this.options.buttonText.reset), h.addEventListener(\"click\", function (e) {\n e.preventDefault(), t.clearSelection();\n }), e.querySelector(\".\" + a.monthItem + \":last-child\").querySelector(\".\" + a.monthItemHeader).appendChild(h);\n }\n\n this.ui.appendChild(e), this.options.autoApply && !this.options.footerHTML || this.ui.appendChild(this.renderFooter()), this.options.showTooltip && this.ui.appendChild(this.renderTooltip()), this.ui.dataset.plugins = (this.options.plugins || []).join(\"|\"), this.emit(\"render\", this.ui);\n }, e.prototype.renderMonth = function (t, e) {\n var i = this,\n n = t.clone(),\n o = 32 - new Date(n.getFullYear(), n.getMonth(), 32).getDate(),\n s = document.createElement(\"div\");\n s.className = a.monthItem;\n var c = document.createElement(\"div\");\n c.className = a.monthItemHeader;\n var h = document.createElement(\"div\");\n\n if (this.options.dropdowns.months) {\n var p = document.createElement(\"select\");\n p.className = a.monthItemName;\n\n for (var d = 0; d < 12; d += 1) {\n var u = document.createElement(\"option\"),\n m = new r.DateTime(new Date(t.getFullYear(), d, 2, 0, 0, 0)),\n f = new r.DateTime(new Date(t.getFullYear(), d, 1, 0, 0, 0));\n u.value = String(d), u.text = m.toLocaleString(this.options.lang, {\n month: \"long\"\n }), u.disabled = this.options.minDate && f.isBefore(new r.DateTime(this.options.minDate), \"month\") || this.options.maxDate && f.isAfter(new r.DateTime(this.options.maxDate), \"month\"), u.selected = f.getMonth() === t.getMonth(), p.appendChild(u);\n }\n\n p.addEventListener(\"change\", function (t) {\n var e = t.target,\n n = 0;\n\n if (i.options.splitView) {\n var o = e.closest(\".\" + a.monthItem);\n n = l.findNestedMonthItem(o);\n }\n\n i.calendars[n].setMonth(Number(e.value)), i.render(), i.emit(\"change:month\", i.calendars[n], n, t);\n }), h.appendChild(p);\n } else {\n (m = document.createElement(\"strong\")).className = a.monthItemName, m.innerHTML = t.toLocaleString(this.options.lang, {\n month: \"long\"\n }), h.appendChild(m);\n }\n\n if (this.options.dropdowns.years) {\n var g = document.createElement(\"select\");\n g.className = a.monthItemYear;\n var v = this.options.dropdowns.minYear,\n y = this.options.dropdowns.maxYear ? this.options.dropdowns.maxYear : new Date().getFullYear();\n if (t.getFullYear() > y) (u = document.createElement(\"option\")).value = String(t.getFullYear()), u.text = String(t.getFullYear()), u.selected = !0, u.disabled = !0, g.appendChild(u);\n\n for (d = y; d >= v; d -= 1) {\n var u = document.createElement(\"option\"),\n b = new r.DateTime(new Date(d, 0, 1, 0, 0, 0));\n u.value = String(d), u.text = String(d), u.disabled = this.options.minDate && b.isBefore(new r.DateTime(this.options.minDate), \"year\") || this.options.maxDate && b.isAfter(new r.DateTime(this.options.maxDate), \"year\"), u.selected = t.getFullYear() === d, g.appendChild(u);\n }\n\n if (t.getFullYear() < v) (u = document.createElement(\"option\")).value = String(t.getFullYear()), u.text = String(t.getFullYear()), u.selected = !0, u.disabled = !0, g.appendChild(u);\n\n if (\"asc\" === this.options.dropdowns.years) {\n var k = Array.prototype.slice.call(g.childNodes).reverse();\n g.innerHTML = \"\", k.forEach(function (t) {\n t.innerHTML = t.value, g.appendChild(t);\n });\n }\n\n g.addEventListener(\"change\", function (t) {\n var e = t.target,\n n = 0;\n\n if (i.options.splitView) {\n var o = e.closest(\".\" + a.monthItem);\n n = l.findNestedMonthItem(o);\n }\n\n i.calendars[n].setFullYear(Number(e.value)), i.render(), i.emit(\"change:year\", i.calendars[n], n, t);\n }), h.appendChild(g);\n } else {\n var D = document.createElement(\"span\");\n D.className = a.monthItemYear, D.innerHTML = String(t.getFullYear()), h.appendChild(D);\n }\n\n var w = document.createElement(\"button\");\n w.type = \"button\", w.className = a.buttonPreviousMonth, w.innerHTML = this.options.buttonText.previousMonth;\n var x = document.createElement(\"button\");\n x.type = \"button\", x.className = a.buttonNextMonth, x.innerHTML = this.options.buttonText.nextMonth, c.appendChild(w), c.appendChild(h), c.appendChild(x), this.options.minDate && n.isSameOrBefore(new r.DateTime(this.options.minDate), \"month\") && s.classList.add(a.noPreviousMonth), this.options.maxDate && n.isSameOrAfter(new r.DateTime(this.options.maxDate), \"month\") && s.classList.add(a.noNextMonth);\n var M = document.createElement(\"div\");\n M.className = a.monthItemWeekdaysRow, this.options.showWeekNumbers && (M.innerHTML = \"
W
\");\n\n for (var _ = 1; _ <= 7; _ += 1) {\n var T = 3 + this.options.firstDay + _,\n L = document.createElement(\"div\");\n L.innerHTML = this.weekdayName(T), L.title = this.weekdayName(T, \"long\"), M.appendChild(L);\n }\n\n var E = document.createElement(\"div\");\n E.className = a.containerDays;\n var S = this.calcSkipDays(n);\n this.options.showWeekNumbers && S && E.appendChild(this.renderWeekNumber(n));\n\n for (var I = 0; I < S; I += 1) {\n var P = document.createElement(\"div\");\n E.appendChild(P);\n }\n\n for (I = 1; I <= o; I += 1) {\n n.setDate(I), this.options.showWeekNumbers && n.getDay() === this.options.firstDay && E.appendChild(this.renderWeekNumber(n)), E.appendChild(this.renderDay(n));\n }\n\n return s.appendChild(c), s.appendChild(M), s.appendChild(E), this.emit(\"render:month\", s, t), s;\n }, e.prototype.renderDay = function (t) {\n t.setHours();\n var e = document.createElement(\"div\");\n if (e.className = a.dayItem, e.innerHTML = String(t.getDate()), e.dataset.time = String(t.getTime()), t.toDateString() === new Date().toDateString() && e.classList.add(a.isToday), this.datePicked.length) this.datePicked[0].toDateString() === t.toDateString() && (e.classList.add(a.isStartDate), this.options.singleMode && e.classList.add(a.isEndDate)), 2 === this.datePicked.length && this.datePicked[1].toDateString() === t.toDateString() && e.classList.add(a.isEndDate), 2 === this.datePicked.length && t.isBetween(this.datePicked[0], this.datePicked[1]) && e.classList.add(a.isInRange);else if (this.options.startDate) {\n var i = this.options.startDate,\n n = this.options.endDate;\n i.toDateString() === t.toDateString() && (e.classList.add(a.isStartDate), this.options.singleMode && e.classList.add(a.isEndDate)), n && n.toDateString() === t.toDateString() && e.classList.add(a.isEndDate), i && n && t.isBetween(i, n) && e.classList.add(a.isInRange);\n }\n\n if (this.options.minDate && t.isBefore(new r.DateTime(this.options.minDate)) && e.classList.add(a.isLocked), this.options.maxDate && t.isAfter(new r.DateTime(this.options.maxDate)) && e.classList.add(a.isLocked), this.options.minDays > 1 && 1 === this.datePicked.length) {\n var o = this.options.minDays - 1,\n s = this.datePicked[0].clone().subtract(o, \"day\"),\n c = this.datePicked[0].clone().add(o, \"day\");\n t.isBetween(s, this.datePicked[0], \"(]\") && e.classList.add(a.isLocked), t.isBetween(this.datePicked[0], c, \"[)\") && e.classList.add(a.isLocked);\n }\n\n if (this.options.maxDays && 1 === this.datePicked.length) {\n var h = this.options.maxDays;\n s = this.datePicked[0].clone().subtract(h, \"day\"), c = this.datePicked[0].clone().add(h, \"day\");\n t.isSameOrBefore(s) && e.classList.add(a.isLocked), t.isSameOrAfter(c) && e.classList.add(a.isLocked);\n }\n\n (this.options.selectForward && 1 === this.datePicked.length && t.isBefore(this.datePicked[0]) && e.classList.add(a.isLocked), this.options.selectBackward && 1 === this.datePicked.length && t.isAfter(this.datePicked[0]) && e.classList.add(a.isLocked), l.dateIsLocked(t, this.options, this.datePicked) && e.classList.add(a.isLocked), this.options.highlightedDays.length) && this.options.highlightedDays.filter(function (e) {\n return e instanceof Array ? t.isBetween(e[0], e[1], \"[]\") : e.isSame(t, \"day\");\n }).length && e.classList.add(a.isHighlighted);\n return e.tabIndex = e.classList.contains(\"is-locked\") ? -1 : 0, this.emit(\"render:day\", e, t), e;\n }, e.prototype.renderFooter = function () {\n var t = document.createElement(\"div\");\n\n if (t.className = a.containerFooter, this.options.footerHTML ? t.innerHTML = this.options.footerHTML : t.innerHTML = '\\n \\n \\n \\n \", this.options.singleMode) {\n if (1 === this.datePicked.length) {\n var e = this.datePicked[0].format(this.options.format, this.options.lang);\n t.querySelector(\".\" + a.previewDateRange).innerHTML = e;\n }\n } else if (1 === this.datePicked.length && t.querySelector(\".\" + a.buttonApply).setAttribute(\"disabled\", \"\"), 2 === this.datePicked.length) {\n e = this.datePicked[0].format(this.options.format, this.options.lang);\n var i = this.datePicked[1].format(this.options.format, this.options.lang);\n t.querySelector(\".\" + a.previewDateRange).innerHTML = \"\" + e + this.options.delimiter + i;\n }\n\n return this.emit(\"render:footer\", t), t;\n }, e.prototype.renderWeekNumber = function (t) {\n var e = document.createElement(\"div\"),\n i = t.getWeek(this.options.firstDay);\n return e.className = a.weekNumber, e.innerHTML = 53 === i && 0 === t.getMonth() ? \"53 / 1\" : i, e;\n }, e.prototype.renderTooltip = function () {\n var t = document.createElement(\"div\");\n return t.className = a.containerTooltip, t;\n }, e.prototype.weekdayName = function (t, e) {\n return void 0 === e && (e = \"short\"), new Date(1970, 0, t, 12, 0, 0, 0).toLocaleString(this.options.lang, {\n weekday: e\n });\n }, e.prototype.calcSkipDays = function (t) {\n var e = t.getDay() - this.options.firstDay;\n return e < 0 && (e += 7), e;\n }, e;\n }(s.LPCore);\n\n e.Calendar = c;\n }, function (t, e, i) {\n \"use strict\";\n\n var _n3,\n o = this && this.__extends || (_n3 = function n(t, e) {\n return (_n3 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (t, e) {\n t.__proto__ = e;\n } || function (t, e) {\n for (var i in e) {\n e.hasOwnProperty(i) && (t[i] = e[i]);\n }\n })(t, e);\n }, function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n _n3(t, e), t.prototype = null === e ? Object.create(e) : (i.prototype = e.prototype, new i());\n }),\n s = this && this.__assign || function () {\n return (s = Object.assign || function (t) {\n for (var e, i = 1, n = arguments.length; i < n; i++) {\n for (var o in e = arguments[i]) {\n Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);\n }\n }\n\n return t;\n }).apply(this, arguments);\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n\n var r = i(7),\n a = i(0),\n l = i(1),\n c = function (t) {\n function e(e) {\n var i = t.call(this) || this;\n i.datePicked = [], i.calendars = [], i.options = {\n element: null,\n elementEnd: null,\n parentEl: null,\n firstDay: 1,\n format: \"YYYY-MM-DD\",\n lang: \"en-US\",\n delimiter: \" - \",\n numberOfMonths: 1,\n numberOfColumns: 1,\n startDate: null,\n endDate: null,\n zIndex: 9999,\n position: \"auto\",\n selectForward: !1,\n selectBackward: !1,\n splitView: !1,\n inlineMode: !1,\n singleMode: !0,\n autoApply: !0,\n allowRepick: !1,\n showWeekNumbers: !1,\n showTooltip: !0,\n scrollToDate: !0,\n mobileFriendly: !0,\n resetButton: !1,\n autoRefresh: !1,\n lockDaysFormat: \"YYYY-MM-DD\",\n lockDays: [],\n disallowLockDaysInRange: !1,\n lockDaysInclusivity: \"[]\",\n highlightedDaysFormat: \"YYYY-MM-DD\",\n highlightedDays: [],\n dropdowns: {\n minYear: 1990,\n maxYear: null,\n months: !1,\n years: !1\n },\n buttonText: {\n apply: \"Apply\",\n cancel: \"Cancel\",\n previousMonth: '',\n nextMonth: '',\n reset: '\\n \\n \\n '\n },\n tooltipText: {\n one: \"day\",\n other: \"days\"\n }\n }, i.options = s(s({}, i.options), e.element.dataset), Object.keys(i.options).forEach(function (t) {\n \"true\" !== i.options[t] && \"false\" !== i.options[t] || (i.options[t] = \"true\" === i.options[t]);\n });\n var n = s(s({}, i.options.dropdowns), e.dropdowns),\n o = s(s({}, i.options.buttonText), e.buttonText),\n r = s(s({}, i.options.tooltipText), e.tooltipText);\n i.options = s(s({}, i.options), e), i.options.dropdowns = s({}, n), i.options.buttonText = s({}, o), i.options.tooltipText = s({}, r), i.options.elementEnd || (i.options.allowRepick = !1), i.options.lockDays.length && (i.options.lockDays = a.DateTime.convertArray(i.options.lockDays, i.options.lockDaysFormat)), i.options.highlightedDays.length && (i.options.highlightedDays = a.DateTime.convertArray(i.options.highlightedDays, i.options.highlightedDaysFormat));\n var l = i.parseInput(),\n c = l[0],\n h = l[1];\n i.options.startDate && (i.options.singleMode || i.options.endDate) && (c = new a.DateTime(i.options.startDate, i.options.format, i.options.lang)), c && i.options.endDate && (h = new a.DateTime(i.options.endDate, i.options.format, i.options.lang)), c instanceof a.DateTime && !isNaN(c.getTime()) && (i.options.startDate = c), i.options.startDate && h instanceof a.DateTime && !isNaN(h.getTime()) && (i.options.endDate = h), !i.options.singleMode || i.options.startDate instanceof a.DateTime || (i.options.startDate = null), i.options.singleMode || i.options.startDate instanceof a.DateTime && i.options.endDate instanceof a.DateTime || (i.options.startDate = null, i.options.endDate = null);\n\n for (var p = 0; p < i.options.numberOfMonths; p += 1) {\n var d = i.options.startDate instanceof a.DateTime ? i.options.startDate.clone() : new a.DateTime();\n\n if (!i.options.startDate && (0 === p || i.options.splitView)) {\n var u = i.options.maxDate ? new a.DateTime(i.options.maxDate) : null,\n m = i.options.minDate ? new a.DateTime(i.options.minDate) : null,\n f = i.options.numberOfMonths - 1;\n m && u && d.isAfter(u) ? (d = m.clone()).setDate(1) : !m && u && d.isAfter(u) && ((d = u.clone()).setDate(1), d.setMonth(d.getMonth() - f));\n }\n\n d.setDate(1), d.setMonth(d.getMonth() + p), i.calendars[p] = d;\n }\n\n if (i.options.showTooltip) if (i.options.tooltipPluralSelector) i.pluralSelector = i.options.tooltipPluralSelector;else try {\n var g = new Intl.PluralRules(i.options.lang);\n i.pluralSelector = g.select.bind(g);\n } catch (t) {\n i.pluralSelector = function (t) {\n return 0 === Math.abs(t) ? \"one\" : \"other\";\n };\n }\n return i;\n }\n\n return o(e, t), e.add = function (t, e) {\n l.Litepicker.prototype[t] = e;\n }, e.prototype.DateTime = function (t, e) {\n return t ? new a.DateTime(t, e) : new a.DateTime();\n }, e.prototype.init = function () {\n var t = this;\n this.options.plugins && this.options.plugins.length && this.options.plugins.forEach(function (e) {\n l.Litepicker.prototype.hasOwnProperty(e) ? l.Litepicker.prototype[e].init.call(t, t) : console.warn(\"Litepicker: plugin «\" + e + \"» not found.\");\n });\n }, e.prototype.parseInput = function () {\n var t = this.options.delimiter,\n e = new RegExp(\"\" + t),\n i = this.options.element instanceof HTMLInputElement ? this.options.element.value.split(t) : [];\n\n if (this.options.elementEnd) {\n if (this.options.element instanceof HTMLInputElement && this.options.element.value.length && this.options.elementEnd instanceof HTMLInputElement && this.options.elementEnd.value.length) return [new a.DateTime(this.options.element.value, this.options.format), new a.DateTime(this.options.elementEnd.value, this.options.format)];\n } else if (this.options.singleMode) {\n if (this.options.element instanceof HTMLInputElement && this.options.element.value.length) return [new a.DateTime(this.options.element.value, this.options.format)];\n } else if (this.options.element instanceof HTMLInputElement && e.test(this.options.element.value) && i.length && i.length % 2 == 0) {\n var n = i.slice(0, i.length / 2).join(t),\n o = i.slice(i.length / 2).join(t);\n return [new a.DateTime(n, this.options.format), new a.DateTime(o, this.options.format)];\n }\n\n return [];\n }, e.prototype.isShowning = function () {\n return this.ui && \"none\" !== this.ui.style.display;\n }, e.prototype.findPosition = function (t) {\n var e = t.getBoundingClientRect(),\n i = this.ui.getBoundingClientRect(),\n n = this.options.position.split(\" \"),\n o = window.scrollX || window.pageXOffset,\n s = window.scrollY || window.pageYOffset,\n r = 0,\n a = 0;\n if (\"auto\" !== n[0] && /top|bottom/.test(n[0])) r = e[n[0]] + s, \"top\" === n[0] && (r -= i.height);else {\n r = e.bottom + s;\n var l = e.bottom + i.height > window.innerHeight,\n c = e.top + s - i.height >= i.height;\n l && c && (r = e.top + s - i.height);\n }\n if (/left|right/.test(n[0]) || n[1] && \"auto\" !== n[1] && /left|right/.test(n[1])) a = /left|right/.test(n[0]) ? e[n[0]] + o : e[n[1]] + o, \"right\" !== n[0] && \"right\" !== n[1] || (a -= i.width);else {\n a = e.left + o;\n l = e.left + i.width > window.innerWidth;\n var h = e.right + o - i.width >= 0;\n l && h && (a = e.right + o - i.width);\n }\n return {\n left: a,\n top: r\n };\n }, e;\n }(r.EventEmitter);\n\n e.LPCore = c;\n }, function (t, e, i) {\n \"use strict\";\n\n var n,\n o = \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect : null,\n s = o && \"function\" == typeof o.apply ? o.apply : function (t, e, i) {\n return Function.prototype.apply.call(t, e, i);\n };\n n = o && \"function\" == typeof o.ownKeys ? o.ownKeys : Object.getOwnPropertySymbols ? function (t) {\n return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t));\n } : function (t) {\n return Object.getOwnPropertyNames(t);\n };\n\n var r = Number.isNaN || function (t) {\n return t != t;\n };\n\n function a() {\n a.init.call(this);\n }\n\n t.exports = a, a.EventEmitter = a, a.prototype._events = void 0, a.prototype._eventsCount = 0, a.prototype._maxListeners = void 0;\n var l = 10;\n\n function c(t) {\n return void 0 === t._maxListeners ? a.defaultMaxListeners : t._maxListeners;\n }\n\n function h(t, e, i, n) {\n var o, s, r, a;\n if (\"function\" != typeof i) throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + _typeof(i));\n if (void 0 === (s = t._events) ? (s = t._events = Object.create(null), t._eventsCount = 0) : (void 0 !== s.newListener && (t.emit(\"newListener\", e, i.listener ? i.listener : i), s = t._events), r = s[e]), void 0 === r) r = s[e] = i, ++t._eventsCount;else if (\"function\" == typeof r ? r = s[e] = n ? [i, r] : [r, i] : n ? r.unshift(i) : r.push(i), (o = c(t)) > 0 && r.length > o && !r.warned) {\n r.warned = !0;\n var l = new Error(\"Possible EventEmitter memory leak detected. \" + r.length + \" \" + String(e) + \" listeners added. Use emitter.setMaxListeners() to increase limit\");\n l.name = \"MaxListenersExceededWarning\", l.emitter = t, l.type = e, l.count = r.length, a = l, console && console.warn && console.warn(a);\n }\n return t;\n }\n\n function p() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t.push(arguments[e]);\n }\n\n this.fired || (this.target.removeListener(this.type, this.wrapFn), this.fired = !0, s(this.listener, this.target, t));\n }\n\n function d(t, e, i) {\n var n = {\n fired: !1,\n wrapFn: void 0,\n target: t,\n type: e,\n listener: i\n },\n o = p.bind(n);\n return o.listener = i, n.wrapFn = o, o;\n }\n\n function u(t, e, i) {\n var n = t._events;\n if (void 0 === n) return [];\n var o = n[e];\n return void 0 === o ? [] : \"function\" == typeof o ? i ? [o.listener || o] : [o] : i ? function (t) {\n for (var e = new Array(t.length), i = 0; i < e.length; ++i) {\n e[i] = t[i].listener || t[i];\n }\n\n return e;\n }(o) : f(o, o.length);\n }\n\n function m(t) {\n var e = this._events;\n\n if (void 0 !== e) {\n var i = e[t];\n if (\"function\" == typeof i) return 1;\n if (void 0 !== i) return i.length;\n }\n\n return 0;\n }\n\n function f(t, e) {\n for (var i = new Array(e), n = 0; n < e; ++n) {\n i[n] = t[n];\n }\n\n return i;\n }\n\n Object.defineProperty(a, \"defaultMaxListeners\", {\n enumerable: !0,\n get: function get() {\n return l;\n },\n set: function set(t) {\n if (\"number\" != typeof t || t < 0 || r(t)) throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + t + \".\");\n l = t;\n }\n }), a.init = function () {\n void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0;\n }, a.prototype.setMaxListeners = function (t) {\n if (\"number\" != typeof t || t < 0 || r(t)) throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + t + \".\");\n return this._maxListeners = t, this;\n }, a.prototype.getMaxListeners = function () {\n return c(this);\n }, a.prototype.emit = function (t) {\n for (var e = [], i = 1; i < arguments.length; i++) {\n e.push(arguments[i]);\n }\n\n var n = \"error\" === t,\n o = this._events;\n if (void 0 !== o) n = n && void 0 === o.error;else if (!n) return !1;\n\n if (n) {\n var r;\n if (e.length > 0 && (r = e[0]), r instanceof Error) throw r;\n var a = new Error(\"Unhandled error.\" + (r ? \" (\" + r.message + \")\" : \"\"));\n throw a.context = r, a;\n }\n\n var l = o[t];\n if (void 0 === l) return !1;\n if (\"function\" == typeof l) s(l, this, e);else {\n var c = l.length,\n h = f(l, c);\n\n for (i = 0; i < c; ++i) {\n s(h[i], this, e);\n }\n }\n return !0;\n }, a.prototype.addListener = function (t, e) {\n return h(this, t, e, !1);\n }, a.prototype.on = a.prototype.addListener, a.prototype.prependListener = function (t, e) {\n return h(this, t, e, !0);\n }, a.prototype.once = function (t, e) {\n if (\"function\" != typeof e) throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + _typeof(e));\n return this.on(t, d(this, t, e)), this;\n }, a.prototype.prependOnceListener = function (t, e) {\n if (\"function\" != typeof e) throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + _typeof(e));\n return this.prependListener(t, d(this, t, e)), this;\n }, a.prototype.removeListener = function (t, e) {\n var i, n, o, s, r;\n if (\"function\" != typeof e) throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + _typeof(e));\n if (void 0 === (n = this._events)) return this;\n if (void 0 === (i = n[t])) return this;\n if (i === e || i.listener === e) 0 == --this._eventsCount ? this._events = Object.create(null) : (delete n[t], n.removeListener && this.emit(\"removeListener\", t, i.listener || e));else if (\"function\" != typeof i) {\n for (o = -1, s = i.length - 1; s >= 0; s--) {\n if (i[s] === e || i[s].listener === e) {\n r = i[s].listener, o = s;\n break;\n }\n }\n\n if (o < 0) return this;\n 0 === o ? i.shift() : function (t, e) {\n for (; e + 1 < t.length; e++) {\n t[e] = t[e + 1];\n }\n\n t.pop();\n }(i, o), 1 === i.length && (n[t] = i[0]), void 0 !== n.removeListener && this.emit(\"removeListener\", t, r || e);\n }\n return this;\n }, a.prototype.off = a.prototype.removeListener, a.prototype.removeAllListeners = function (t) {\n var e, i, n;\n if (void 0 === (i = this._events)) return this;\n if (void 0 === i.removeListener) return 0 === arguments.length ? (this._events = Object.create(null), this._eventsCount = 0) : void 0 !== i[t] && (0 == --this._eventsCount ? this._events = Object.create(null) : delete i[t]), this;\n\n if (0 === arguments.length) {\n var o,\n s = Object.keys(i);\n\n for (n = 0; n < s.length; ++n) {\n \"removeListener\" !== (o = s[n]) && this.removeAllListeners(o);\n }\n\n return this.removeAllListeners(\"removeListener\"), this._events = Object.create(null), this._eventsCount = 0, this;\n }\n\n if (\"function\" == typeof (e = i[t])) this.removeListener(t, e);else if (void 0 !== e) for (n = e.length - 1; n >= 0; n--) {\n this.removeListener(t, e[n]);\n }\n return this;\n }, a.prototype.listeners = function (t) {\n return u(this, t, !0);\n }, a.prototype.rawListeners = function (t) {\n return u(this, t, !1);\n }, a.listenerCount = function (t, e) {\n return \"function\" == typeof t.listenerCount ? t.listenerCount(e) : m.call(t, e);\n }, a.prototype.listenerCount = m, a.prototype.eventNames = function () {\n return this._eventsCount > 0 ? n(this._events) : [];\n };\n }, function (t, e, i) {\n (e = i(9)(!1)).push([t.i, ':root{--litepicker-container-months-color-bg: #fff;--litepicker-container-months-box-shadow-color: #ddd;--litepicker-footer-color-bg: #fafafa;--litepicker-footer-box-shadow-color: #ddd;--litepicker-tooltip-color-bg: #fff;--litepicker-month-header-color: #333;--litepicker-button-prev-month-color: #9e9e9e;--litepicker-button-next-month-color: #9e9e9e;--litepicker-button-prev-month-color-hover: #2196f3;--litepicker-button-next-month-color-hover: #2196f3;--litepicker-month-width: calc(var(--litepicker-day-width) * 7);--litepicker-month-weekday-color: #9e9e9e;--litepicker-month-week-number-color: #9e9e9e;--litepicker-day-width: 38px;--litepicker-day-color: #333;--litepicker-day-color-hover: #2196f3;--litepicker-is-today-color: #f44336;--litepicker-is-in-range-color: #bbdefb;--litepicker-is-locked-color: #9e9e9e;--litepicker-is-start-color: #fff;--litepicker-is-start-color-bg: #2196f3;--litepicker-is-end-color: #fff;--litepicker-is-end-color-bg: #2196f3;--litepicker-button-cancel-color: #fff;--litepicker-button-cancel-color-bg: #9e9e9e;--litepicker-button-apply-color: #fff;--litepicker-button-apply-color-bg: #2196f3;--litepicker-button-reset-color: #909090;--litepicker-button-reset-color-hover: #2196f3;--litepicker-highlighted-day-color: #333;--litepicker-highlighted-day-color-bg: #ffeb3b}.show-week-numbers{--litepicker-month-width: calc(var(--litepicker-day-width) * 8)}.litepicker{font-family:-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;font-size:0.8em;display:none}.litepicker button{border:none;background:none}.litepicker .container__main{display:-webkit-box;display:-ms-flexbox;display:flex}.litepicker .container__months{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;background-color:var(--litepicker-container-months-color-bg);border-radius:5px;-webkit-box-shadow:0 0 5px var(--litepicker-container-months-box-shadow-color);box-shadow:0 0 5px var(--litepicker-container-months-box-shadow-color);width:calc(var(--litepicker-month-width) + 10px);-webkit-box-sizing:content-box;box-sizing:content-box}.litepicker .container__months.columns-2{width:calc((var(--litepicker-month-width) * 2) + 20px)}.litepicker .container__months.columns-3{width:calc((var(--litepicker-month-width) * 3) + 30px)}.litepicker .container__months.columns-4{width:calc((var(--litepicker-month-width) * 4) + 40px)}.litepicker .container__months.split-view .month-item-header .button-previous-month,.litepicker .container__months.split-view .month-item-header .button-next-month{visibility:visible}.litepicker .container__months .month-item{padding:5px;width:var(--litepicker-month-width);-webkit-box-sizing:content-box;box-sizing:content-box}.litepicker .container__months .month-item-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-weight:500;padding:10px 5px;text-align:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--litepicker-month-header-color)}.litepicker .container__months .month-item-header div{-webkit-box-flex:1;-ms-flex:1;flex:1}.litepicker .container__months .month-item-header div>.month-item-name{margin-right:5px}.litepicker .container__months .month-item-header div>.month-item-year{padding:0}.litepicker .container__months .month-item-header .reset-button{color:var(--litepicker-button-reset-color)}.litepicker .container__months .month-item-header .reset-button>svg{fill:var(--litepicker-button-reset-color)}.litepicker .container__months .month-item-header .reset-button *{pointer-events:none}.litepicker .container__months .month-item-header .reset-button:hover{color:var(--litepicker-button-reset-color-hover)}.litepicker .container__months .month-item-header .reset-button:hover>svg{fill:var(--litepicker-button-reset-color-hover)}.litepicker .container__months .month-item-header .button-previous-month,.litepicker .container__months .month-item-header .button-next-month{visibility:hidden;text-decoration:none;padding:3px 5px;border-radius:3px;-webkit-transition:color 0.3s, border 0.3s;transition:color 0.3s, border 0.3s;cursor:default}.litepicker .container__months .month-item-header .button-previous-month *,.litepicker .container__months .month-item-header .button-next-month *{pointer-events:none}.litepicker .container__months .month-item-header .button-previous-month{color:var(--litepicker-button-prev-month-color)}.litepicker .container__months .month-item-header .button-previous-month>svg,.litepicker .container__months .month-item-header .button-previous-month>img{fill:var(--litepicker-button-prev-month-color)}.litepicker .container__months .month-item-header .button-previous-month:hover{color:var(--litepicker-button-prev-month-color-hover)}.litepicker .container__months .month-item-header .button-previous-month:hover>svg{fill:var(--litepicker-button-prev-month-color-hover)}.litepicker .container__months .month-item-header .button-next-month{color:var(--litepicker-button-next-month-color)}.litepicker .container__months .month-item-header .button-next-month>svg,.litepicker .container__months .month-item-header .button-next-month>img{fill:var(--litepicker-button-next-month-color)}.litepicker .container__months .month-item-header .button-next-month:hover{color:var(--litepicker-button-next-month-color-hover)}.litepicker .container__months .month-item-header .button-next-month:hover>svg{fill:var(--litepicker-button-next-month-color-hover)}.litepicker .container__months .month-item-weekdays-row{display:-webkit-box;display:-ms-flexbox;display:flex;justify-self:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;color:var(--litepicker-month-weekday-color)}.litepicker .container__months .month-item-weekdays-row>div{padding:5px 0;font-size:85%;-webkit-box-flex:1;-ms-flex:1;flex:1;width:var(--litepicker-day-width);text-align:center}.litepicker .container__months .month-item:first-child .button-previous-month{visibility:visible}.litepicker .container__months .month-item:last-child .button-next-month{visibility:visible}.litepicker .container__months .month-item.no-previous-month .button-previous-month{visibility:hidden}.litepicker .container__months .month-item.no-next-month .button-next-month{visibility:hidden}.litepicker .container__days{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;justify-self:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:center;-webkit-box-sizing:content-box;box-sizing:content-box}.litepicker .container__days>div,.litepicker .container__days>a{padding:5px 0;width:var(--litepicker-day-width)}.litepicker .container__days .day-item{color:var(--litepicker-day-color);text-align:center;text-decoration:none;border-radius:3px;-webkit-transition:color 0.3s, border 0.3s;transition:color 0.3s, border 0.3s;cursor:default}.litepicker .container__days .day-item:hover{color:var(--litepicker-day-color-hover);-webkit-box-shadow:inset 0 0 0 1px var(--litepicker-day-color-hover);box-shadow:inset 0 0 0 1px var(--litepicker-day-color-hover)}.litepicker .container__days .day-item.is-today{color:var(--litepicker-is-today-color)}.litepicker .container__days .day-item.is-locked{color:var(--litepicker-is-locked-color)}.litepicker .container__days .day-item.is-locked:hover{color:var(--litepicker-is-locked-color);-webkit-box-shadow:none;box-shadow:none;cursor:default}.litepicker .container__days .day-item.is-in-range{background-color:var(--litepicker-is-in-range-color);border-radius:0}.litepicker .container__days .day-item.is-start-date{color:var(--litepicker-is-start-color);background-color:var(--litepicker-is-start-color-bg);border-top-left-radius:5px;border-bottom-left-radius:5px;border-top-right-radius:0;border-bottom-right-radius:0}.litepicker .container__days .day-item.is-start-date.is-flipped{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:5px;border-bottom-right-radius:5px}.litepicker .container__days .day-item.is-end-date{color:var(--litepicker-is-end-color);background-color:var(--litepicker-is-end-color-bg);border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:5px;border-bottom-right-radius:5px}.litepicker .container__days .day-item.is-end-date.is-flipped{border-top-left-radius:5px;border-bottom-left-radius:5px;border-top-right-radius:0;border-bottom-right-radius:0}.litepicker .container__days .day-item.is-start-date.is-end-date{border-top-left-radius:5px;border-bottom-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px}.litepicker .container__days .day-item.is-highlighted{color:var(--litepicker-highlighted-day-color);background-color:var(--litepicker-highlighted-day-color-bg)}.litepicker .container__days .week-number{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--litepicker-month-week-number-color);font-size:85%}.litepicker .container__footer{text-align:right;padding:10px 5px;margin:0 5px;background-color:var(--litepicker-footer-color-bg);-webkit-box-shadow:inset 0px 3px 3px 0px var(--litepicker-footer-box-shadow-color);box-shadow:inset 0px 3px 3px 0px var(--litepicker-footer-box-shadow-color);border-bottom-left-radius:5px;border-bottom-right-radius:5px}.litepicker .container__footer .preview-date-range{margin-right:10px;font-size:90%}.litepicker .container__footer .button-cancel{background-color:var(--litepicker-button-cancel-color-bg);color:var(--litepicker-button-cancel-color);border:0;padding:3px 7px 4px;border-radius:3px}.litepicker .container__footer .button-cancel *{pointer-events:none}.litepicker .container__footer .button-apply{background-color:var(--litepicker-button-apply-color-bg);color:var(--litepicker-button-apply-color);border:0;padding:3px 7px 4px;border-radius:3px;margin-left:10px;margin-right:10px}.litepicker .container__footer .button-apply:disabled{opacity:0.7}.litepicker .container__footer .button-apply *{pointer-events:none}.litepicker .container__tooltip{position:absolute;margin-top:-4px;padding:4px 8px;border-radius:4px;background-color:var(--litepicker-tooltip-color-bg);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25);box-shadow:0 1px 3px rgba(0,0,0,0.25);white-space:nowrap;font-size:11px;pointer-events:none;visibility:hidden}.litepicker .container__tooltip:before{position:absolute;bottom:-5px;left:calc(50% - 5px);border-top:5px solid rgba(0,0,0,0.12);border-right:5px solid transparent;border-left:5px solid transparent;content:\"\"}.litepicker .container__tooltip:after{position:absolute;bottom:-4px;left:calc(50% - 4px);border-top:4px solid var(--litepicker-tooltip-color-bg);border-right:4px solid transparent;border-left:4px solid transparent;content:\"\"}\\n', \"\"]), e.locals = {\n showWeekNumbers: \"show-week-numbers\",\n litepicker: \"litepicker\",\n containerMain: \"container__main\",\n containerMonths: \"container__months\",\n columns2: \"columns-2\",\n columns3: \"columns-3\",\n columns4: \"columns-4\",\n splitView: \"split-view\",\n monthItemHeader: \"month-item-header\",\n buttonPreviousMonth: \"button-previous-month\",\n buttonNextMonth: \"button-next-month\",\n monthItem: \"month-item\",\n monthItemName: \"month-item-name\",\n monthItemYear: \"month-item-year\",\n resetButton: \"reset-button\",\n monthItemWeekdaysRow: \"month-item-weekdays-row\",\n noPreviousMonth: \"no-previous-month\",\n noNextMonth: \"no-next-month\",\n containerDays: \"container__days\",\n dayItem: \"day-item\",\n isToday: \"is-today\",\n isLocked: \"is-locked\",\n isInRange: \"is-in-range\",\n isStartDate: \"is-start-date\",\n isFlipped: \"is-flipped\",\n isEndDate: \"is-end-date\",\n isHighlighted: \"is-highlighted\",\n weekNumber: \"week-number\",\n containerFooter: \"container__footer\",\n previewDateRange: \"preview-date-range\",\n buttonCancel: \"button-cancel\",\n buttonApply: \"button-apply\",\n containerTooltip: \"container__tooltip\"\n }, t.exports = e;\n }, function (t, e, i) {\n \"use strict\";\n\n t.exports = function (t) {\n var e = [];\n return e.toString = function () {\n return this.map(function (e) {\n var i = function (t, e) {\n var i = t[1] || \"\",\n n = t[3];\n if (!n) return i;\n\n if (e && \"function\" == typeof btoa) {\n var o = (r = n, a = btoa(unescape(encodeURIComponent(JSON.stringify(r)))), l = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(a), \"/*# \".concat(l, \" */\")),\n s = n.sources.map(function (t) {\n return \"/*# sourceURL=\".concat(n.sourceRoot || \"\").concat(t, \" */\");\n });\n return [i].concat(s).concat([o]).join(\"\\n\");\n }\n\n var r, a, l;\n return [i].join(\"\\n\");\n }(e, t);\n\n return e[2] ? \"@media \".concat(e[2], \" {\").concat(i, \"}\") : i;\n }).join(\"\");\n }, e.i = function (t, i, n) {\n \"string\" == typeof t && (t = [[null, t, \"\"]]);\n var o = {};\n if (n) for (var s = 0; s < this.length; s++) {\n var r = this[s][0];\n null != r && (o[r] = !0);\n }\n\n for (var a = 0; a < t.length; a++) {\n var l = [].concat(t[a]);\n n && o[l[0]] || (i && (l[2] ? l[2] = \"\".concat(i, \" and \").concat(l[2]) : l[2] = i), e.push(l));\n }\n }, e;\n };\n }, function (t, e, i) {\n \"use strict\";\n\n var n,\n o = {},\n s = function s() {\n return void 0 === n && (n = Boolean(window && document && document.all && !window.atob)), n;\n },\n r = function () {\n var t = {};\n return function (e) {\n if (void 0 === t[e]) {\n var i = document.querySelector(e);\n if (window.HTMLIFrameElement && i instanceof window.HTMLIFrameElement) try {\n i = i.contentDocument.head;\n } catch (t) {\n i = null;\n }\n t[e] = i;\n }\n\n return t[e];\n };\n }();\n\n function a(t, e) {\n for (var i = [], n = {}, o = 0; o < t.length; o++) {\n var s = t[o],\n r = e.base ? s[0] + e.base : s[0],\n a = {\n css: s[1],\n media: s[2],\n sourceMap: s[3]\n };\n n[r] ? n[r].parts.push(a) : i.push(n[r] = {\n id: r,\n parts: [a]\n });\n }\n\n return i;\n }\n\n function l(t, e) {\n for (var i = 0; i < t.length; i++) {\n var n = t[i],\n s = o[n.id],\n r = 0;\n\n if (s) {\n for (s.refs++; r < s.parts.length; r++) {\n s.parts[r](n.parts[r]);\n }\n\n for (; r < n.parts.length; r++) {\n s.parts.push(g(n.parts[r], e));\n }\n } else {\n for (var a = []; r < n.parts.length; r++) {\n a.push(g(n.parts[r], e));\n }\n\n o[n.id] = {\n id: n.id,\n refs: 1,\n parts: a\n };\n }\n }\n }\n\n function c(t) {\n var e = document.createElement(\"style\");\n\n if (void 0 === t.attributes.nonce) {\n var n = i.nc;\n n && (t.attributes.nonce = n);\n }\n\n if (Object.keys(t.attributes).forEach(function (i) {\n e.setAttribute(i, t.attributes[i]);\n }), \"function\" == typeof t.insert) t.insert(e);else {\n var o = r(t.insert || \"head\");\n if (!o) throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n o.appendChild(e);\n }\n return e;\n }\n\n var h,\n p = (h = [], function (t, e) {\n return h[t] = e, h.filter(Boolean).join(\"\\n\");\n });\n\n function d(t, e, i, n) {\n var o = i ? \"\" : n.css;\n if (t.styleSheet) t.styleSheet.cssText = p(e, o);else {\n var s = document.createTextNode(o),\n r = t.childNodes;\n r[e] && t.removeChild(r[e]), r.length ? t.insertBefore(s, r[e]) : t.appendChild(s);\n }\n }\n\n function u(t, e, i) {\n var n = i.css,\n o = i.media,\n s = i.sourceMap;\n if (o && t.setAttribute(\"media\", o), s && btoa && (n += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s)))), \" */\")), t.styleSheet) t.styleSheet.cssText = n;else {\n for (; t.firstChild;) {\n t.removeChild(t.firstChild);\n }\n\n t.appendChild(document.createTextNode(n));\n }\n }\n\n var m = null,\n f = 0;\n\n function g(t, e) {\n var i, n, o;\n\n if (e.singleton) {\n var s = f++;\n i = m || (m = c(e)), n = d.bind(null, i, s, !1), o = d.bind(null, i, s, !0);\n } else i = c(e), n = u.bind(null, i, e), o = function o() {\n !function (t) {\n if (null === t.parentNode) return !1;\n t.parentNode.removeChild(t);\n }(i);\n };\n\n return n(t), function (e) {\n if (e) {\n if (e.css === t.css && e.media === t.media && e.sourceMap === t.sourceMap) return;\n n(t = e);\n } else o();\n };\n }\n\n t.exports = function (t, e) {\n (e = e || {}).attributes = \"object\" == _typeof(e.attributes) ? e.attributes : {}, e.singleton || \"boolean\" == typeof e.singleton || (e.singleton = s());\n var i = a(t, e);\n return l(i, e), function (t) {\n for (var n = [], s = 0; s < i.length; s++) {\n var r = i[s],\n c = o[r.id];\n c && (c.refs--, n.push(c));\n }\n\n t && l(a(t, e), e);\n\n for (var h = 0; h < n.length; h++) {\n var p = n[h];\n\n if (0 === p.refs) {\n for (var d = 0; d < p.parts.length; d++) {\n p.parts[d]();\n }\n\n delete o[p.id];\n }\n }\n };\n };\n }, function (t, e, i) {\n \"use strict\";\n\n var n = this && this.__assign || function () {\n return (n = Object.assign || function (t) {\n for (var e, i = 1, n = arguments.length; i < n; i++) {\n for (var o in e = arguments[i]) {\n Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);\n }\n }\n\n return t;\n }).apply(this, arguments);\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n var o = i(0),\n s = i(1),\n r = i(2);\n s.Litepicker.prototype.show = function (t) {\n void 0 === t && (t = null), this.emit(\"before:show\", t);\n var e = t || this.options.element;\n\n if (this.triggerElement = e, !this.isShowning()) {\n if (this.options.inlineMode) return this.ui.style.position = \"relative\", this.ui.style.display = \"inline-block\", this.ui.style.top = null, this.ui.style.left = null, this.ui.style.bottom = null, void (this.ui.style.right = null);\n this.scrollToDate(t), this.render(), this.ui.style.position = \"absolute\", this.ui.style.display = \"block\", this.ui.style.zIndex = this.options.zIndex;\n var i = this.findPosition(e);\n this.ui.style.top = i.top + \"px\", this.ui.style.left = i.left + \"px\", this.ui.style.right = null, this.ui.style.bottom = null, this.emit(\"show\", t);\n }\n }, s.Litepicker.prototype.hide = function () {\n this.isShowning() && (this.datePicked.length = 0, this.updateInput(), this.options.inlineMode ? this.render() : (this.ui.style.display = \"none\", this.emit(\"hide\")));\n }, s.Litepicker.prototype.getDate = function () {\n return this.getStartDate();\n }, s.Litepicker.prototype.getStartDate = function () {\n return this.options.startDate ? this.options.startDate.clone() : null;\n }, s.Litepicker.prototype.getEndDate = function () {\n return this.options.endDate ? this.options.endDate.clone() : null;\n }, s.Litepicker.prototype.setDate = function (t, e) {\n void 0 === e && (e = !1);\n var i = new o.DateTime(t, this.options.format, this.options.lang);\n r.dateIsLocked(i, this.options, [i]) && !e ? this.emit(\"error:date\", i) : (this.setStartDate(t), this.options.inlineMode && this.render(), this.emit(\"selected\", this.getDate()));\n }, s.Litepicker.prototype.setStartDate = function (t) {\n t && (this.options.startDate = new o.DateTime(t, this.options.format, this.options.lang), this.updateInput());\n }, s.Litepicker.prototype.setEndDate = function (t) {\n t && (this.options.endDate = new o.DateTime(t, this.options.format, this.options.lang), this.options.startDate.getTime() > this.options.endDate.getTime() && (this.options.endDate = this.options.startDate.clone(), this.options.startDate = new o.DateTime(t, this.options.format, this.options.lang)), this.updateInput());\n }, s.Litepicker.prototype.setDateRange = function (t, e, i) {\n void 0 === i && (i = !1), this.triggerElement = void 0;\n var n = new o.DateTime(t, this.options.format, this.options.lang),\n s = new o.DateTime(e, this.options.format, this.options.lang);\n (this.options.disallowLockDaysInRange ? r.rangeIsLocked([n, s], this.options) : r.dateIsLocked(n, this.options, [n, s]) || r.dateIsLocked(s, this.options, [n, s])) && !i ? this.emit(\"error:range\", [n, s]) : (this.setStartDate(n), this.setEndDate(s), this.options.inlineMode && this.render(), this.updateInput(), this.emit(\"selected\", this.getStartDate(), this.getEndDate()));\n }, s.Litepicker.prototype.gotoDate = function (t, e) {\n void 0 === e && (e = 0);\n var i = new o.DateTime(t);\n i.setDate(1), this.calendars[e] = i.clone(), this.render();\n }, s.Litepicker.prototype.setLockDays = function (t) {\n this.options.lockDays = o.DateTime.convertArray(t, this.options.lockDaysFormat), this.render();\n }, s.Litepicker.prototype.setHighlightedDays = function (t) {\n this.options.highlightedDays = o.DateTime.convertArray(t, this.options.highlightedDaysFormat), this.render();\n }, s.Litepicker.prototype.setOptions = function (t) {\n delete t.element, delete t.elementEnd, delete t.parentEl, t.startDate && (t.startDate = new o.DateTime(t.startDate, this.options.format, this.options.lang)), t.endDate && (t.endDate = new o.DateTime(t.endDate, this.options.format, this.options.lang));\n var e = n(n({}, this.options.dropdowns), t.dropdowns),\n i = n(n({}, this.options.buttonText), t.buttonText),\n s = n(n({}, this.options.tooltipText), t.tooltipText);\n this.options = n(n({}, this.options), t), this.options.dropdowns = n({}, e), this.options.buttonText = n({}, i), this.options.tooltipText = n({}, s), !this.options.singleMode || this.options.startDate instanceof o.DateTime || (this.options.startDate = null, this.options.endDate = null), this.options.singleMode || this.options.startDate instanceof o.DateTime && this.options.endDate instanceof o.DateTime || (this.options.startDate = null, this.options.endDate = null);\n\n for (var r = 0; r < this.options.numberOfMonths; r += 1) {\n var a = this.options.startDate ? this.options.startDate.clone() : new o.DateTime();\n a.setDate(1), a.setMonth(a.getMonth() + r), this.calendars[r] = a;\n }\n\n this.options.lockDays.length && (this.options.lockDays = o.DateTime.convertArray(this.options.lockDays, this.options.lockDaysFormat)), this.options.highlightedDays.length && (this.options.highlightedDays = o.DateTime.convertArray(this.options.highlightedDays, this.options.highlightedDaysFormat)), this.render(), this.options.inlineMode && this.show(), this.updateInput();\n }, s.Litepicker.prototype.clearSelection = function () {\n this.options.startDate = null, this.options.endDate = null, this.datePicked.length = 0, this.updateInput(), this.isShowning() && this.render(), this.emit(\"clear:selection\");\n }, s.Litepicker.prototype.destroy = function () {\n this.ui && this.ui.parentNode && (this.ui.parentNode.removeChild(this.ui), this.ui = null), this.emit(\"destroy\");\n };\n }]);\n});","/**\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 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 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 = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\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 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 if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\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 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 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 Gp[iteratorSymbol] = function() {\n return this;\n };\n\n 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, 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 Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","function _get(target, property, receiver) { 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(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _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 } }); 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; } 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 { Date.prototype.toString.call(Reflect.construct(Date, [], 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 _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); return Constructor; }\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) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\" && Symbol.iterator in Object(iter)) 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\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap v5.0.2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory());\n})(this, function () {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var _KEY_TO_DIRECTION;\n\n var NODE_TEXT = 3;\n var SelectorEngine = {\n find: function find(selector) {\n var _ref5;\n\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement;\n return (_ref5 = []).concat.apply(_ref5, _toConsumableArray(Element.prototype.querySelectorAll.call(element, selector)));\n },\n findOne: function findOne(selector) {\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement;\n return Element.prototype.querySelector.call(element, selector);\n },\n children: function children(element, selector) {\n var _ref6;\n\n return (_ref6 = []).concat.apply(_ref6, _toConsumableArray(element.children)).filter(function (child) {\n return child.matches(selector);\n });\n },\n parents: function parents(element, selector) {\n var parents = [];\n var ancestor = element.parentNode;\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor);\n }\n\n ancestor = ancestor.parentNode;\n }\n\n return parents;\n },\n prev: function prev(element, selector) {\n var previous = element.previousElementSibling;\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n\n previous = previous.previousElementSibling;\n }\n\n return [];\n },\n next: function next(element, selector) {\n var next = element.nextElementSibling;\n\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n\n next = next.nextElementSibling;\n }\n\n return [];\n }\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\".concat(obj);\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var getUID = function getUID(prefix) {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = \"#\".concat(hrefAttr.split('#')[1]);\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getSelectorFromElement = function getSelectorFromElement(element) {\n var selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement$1 = function isElement$1(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0];\n }\n\n return typeof obj.nodeType !== 'undefined';\n };\n\n var getElement = function getElement(obj) {\n if (isElement$1(obj)) {\n // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj;\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return SelectorEngine.findOne(obj);\n }\n\n return null;\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement$1(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\"\".concat(componentName.toUpperCase(), \": Option \\\"\").concat(property, \"\\\" provided type \\\"\").concat(valueType, \"\\\" but expected type \\\"\").concat(expectedTypes, \"\\\".\"));\n }\n });\n };\n\n var isVisible = function isVisible(element) {\n if (!isElement$1(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n };\n\n var isDisabled = function isDisabled(element) {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n\n if (element.classList.contains('disabled')) {\n return true;\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n };\n\n var findShadowRoot = function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n };\n\n var noop = function noop() {};\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var DOMContentLoadedCallbacks = [];\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', function () {\n DOMContentLoadedCallbacks.forEach(function (callback) {\n return callback();\n });\n });\n }\n\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n };\n\n var isRTL = function isRTL() {\n return document.documentElement.dir === 'rtl';\n };\n\n var defineJQueryPlugin = function defineJQueryPlugin(plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var name = plugin.NAME;\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n var execute = function execute(callback) {\n if (typeof callback === 'function') {\n callback();\n }\n };\n\n var executeAfterTransition = function executeAfterTransition(callback, transitionElement) {\n var waitForTransition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n var durationPadding = 5;\n var emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n var called = false;\n\n var handler = function handler(_ref7) {\n var target = _ref7.target;\n\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n };\n /**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n\n\n var getNextActiveElement = function getNextActiveElement(list, activeElement, shouldGetNext, isCycleAllowed) {\n var index = list.indexOf(activeElement); // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0];\n }\n\n var listLength = list.length;\n index += shouldGetNext ? 1 : -1;\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))];\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\n var stripNameRegex = /\\..*/;\n var stripUidRegex = /::\\d+$/;\n var eventRegistry = {}; // Events storage\n\n var uidEvent = 1;\n var customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n };\n var customEventsRegex = /^(mouseenter|mouseleave)/i;\n var nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n /**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\n function getUidEvent(element, uid) {\n return uid && \"\".concat(uid, \"::\").concat(uidEvent++) || element.uidEvent || uidEvent++;\n }\n\n function getEvent(element) {\n var uid = getUidEvent(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n }\n\n function bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element;\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n\n return fn.apply(element, [event]);\n };\n }\n\n function bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n var domElements = element.querySelectorAll(selector);\n\n for (var target = event.target; target && target !== this; target = target.parentNode) {\n for (var i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target;\n\n if (handler.oneOff) {\n // eslint-disable-next-line unicorn/consistent-destructuring\n EventHandler.off(element, event.type, selector, fn);\n }\n\n return fn.apply(target, [event]);\n }\n }\n } // To please ESLint\n\n\n return null;\n };\n }\n\n function findHandler(events, handler) {\n var delegationSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var uidEventList = Object.keys(events);\n\n for (var i = 0, len = uidEventList.length; i < len; i++) {\n var event = events[uidEventList[i]];\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event;\n }\n }\n\n return null;\n }\n\n function normalizeParams(originalTypeEvent, handler, delegationFn) {\n var delegation = typeof handler === 'string';\n var originalHandler = delegation ? delegationFn : handler;\n var typeEvent = getTypeEvent(originalTypeEvent);\n var isNative = nativeEvents.has(typeEvent);\n\n if (!isNative) {\n typeEvent = originalTypeEvent;\n }\n\n return [delegation, originalHandler, typeEvent];\n }\n\n function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n if (!handler) {\n handler = delegationFn;\n delegationFn = null;\n } // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n\n\n if (customEventsRegex.test(originalTypeEvent)) {\n var wrapFn = function wrapFn(fn) {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n\n if (delegationFn) {\n delegationFn = wrapFn(delegationFn);\n } else {\n handler = wrapFn(handler);\n }\n }\n\n var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn),\n _normalizeParams2 = _slicedToArray(_normalizeParams, 3),\n delegation = _normalizeParams2[0],\n originalHandler = _normalizeParams2[1],\n typeEvent = _normalizeParams2[2];\n\n var events = getEvent(element);\n var handlers = events[typeEvent] || (events[typeEvent] = {});\n var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff;\n return;\n }\n\n var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));\n var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);\n fn.delegationSelector = delegation ? handler : null;\n fn.originalHandler = originalHandler;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, delegation);\n }\n\n function removeHandler(element, events, typeEvent, handler, delegationSelector) {\n var fn = findHandler(events[typeEvent], handler, delegationSelector);\n\n if (!fn) {\n return;\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n }\n\n function removeNamespacedHandlers(element, events, typeEvent, namespace) {\n var storeElementEvent = events[typeEvent] || {};\n Object.keys(storeElementEvent).forEach(function (handlerKey) {\n if (handlerKey.includes(namespace)) {\n var event = storeElementEvent[handlerKey];\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\n }\n });\n }\n\n function getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n }\n\n var EventHandler = {\n on: function on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false);\n },\n one: function one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true);\n },\n off: function off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n var _normalizeParams3 = normalizeParams(originalTypeEvent, handler, delegationFn),\n _normalizeParams4 = _slicedToArray(_normalizeParams3, 3),\n delegation = _normalizeParams4[0],\n originalHandler = _normalizeParams4[1],\n typeEvent = _normalizeParams4[2];\n\n var inNamespace = typeEvent !== originalTypeEvent;\n var events = getEvent(element);\n var isNamespace = originalTypeEvent.startsWith('.');\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return;\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);\n return;\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(function (elementEvent) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n });\n }\n\n var storeElementEvent = events[typeEvent] || {};\n Object.keys(storeElementEvent).forEach(function (keyHandlers) {\n var handlerKey = keyHandlers.replace(stripUidRegex, '');\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n var event = storeElementEvent[keyHandlers];\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\n }\n });\n },\n trigger: function trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n\n var $ = getjQuery();\n var typeEvent = getTypeEvent(event);\n var inNamespace = event !== typeEvent;\n var isNative = nativeEvents.has(typeEvent);\n var jQueryEvent;\n var bubbles = true;\n var nativeDispatch = true;\n var defaultPrevented = false;\n var evt = null;\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents');\n evt.initEvent(typeEvent, bubbles, true);\n } else {\n evt = new CustomEvent(event, {\n bubbles: bubbles,\n cancelable: true\n });\n } // merge custom information in our event\n\n\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(function (key) {\n Object.defineProperty(evt, key, {\n get: function get() {\n return args[key];\n }\n });\n });\n }\n\n if (defaultPrevented) {\n evt.preventDefault();\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault();\n }\n\n return evt;\n }\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var elementMap = new Map();\n var Data = {\n set: function set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n\n var instanceMap = elementMap.get(element); // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(\"Bootstrap doesn't allow more than one instance per element. Bound instance: \".concat(Array.from(instanceMap.keys())[0], \".\"));\n return;\n }\n\n instanceMap.set(key, instance);\n },\n get: function get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n\n return null;\n },\n remove: function remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n\n var instanceMap = elementMap.get(element);\n instanceMap[\"delete\"](key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap[\"delete\"](element);\n }\n }\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var VERSION = '5.0.2';\n\n var BaseComponent = /*#__PURE__*/function () {\n function BaseComponent(element) {\n _classCallCheck(this, BaseComponent);\n\n element = getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n _createClass(BaseComponent, [{\n key: \"dispose\",\n value: function dispose() {\n var _this = this;\n\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n Object.getOwnPropertyNames(this).forEach(function (propertyName) {\n _this[propertyName] = null;\n });\n }\n }, {\n key: \"_queueCallback\",\n value: function _queueCallback(callback, element) {\n var isAnimated = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n executeAfterTransition(callback, element, isAnimated);\n }\n /** Static */\n\n }], [{\n key: \"getInstance\",\n value: function getInstance(element) {\n return Data.get(element, this.DATA_KEY);\n }\n }, {\n key: \"getOrCreateInstance\",\n value: function getOrCreateInstance(element) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.getInstance(element) || new this(element, _typeof(config) === 'object' ? config : null);\n }\n }, {\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return \"bs.\".concat(this.NAME);\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return \".\".concat(this.DATA_KEY);\n }\n }]);\n\n return BaseComponent;\n }();\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME$c = 'alert';\n var DATA_KEY$b = 'bs.alert';\n var EVENT_KEY$b = \".\".concat(DATA_KEY$b);\n var DATA_API_KEY$8 = '.data-api';\n var SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]';\n var EVENT_CLOSE = \"close\".concat(EVENT_KEY$b);\n var EVENT_CLOSED = \"closed\".concat(EVENT_KEY$b);\n var EVENT_CLICK_DATA_API$7 = \"click\".concat(EVENT_KEY$b).concat(DATA_API_KEY$8);\n var CLASS_NAME_ALERT = 'alert';\n var CLASS_NAME_FADE$6 = 'fade';\n var CLASS_NAME_SHOW$9 = 'show';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Alert = /*#__PURE__*/function (_BaseComponent) {\n _inherits(Alert, _BaseComponent);\n\n var _super = _createSuper(Alert);\n\n function Alert() {\n _classCallCheck(this, Alert);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Alert, [{\n key: \"close\",\n // Public\n value: function close(element) {\n var rootElement = element ? this._getRootElement(element) : this._element;\n\n var customEvent = this._triggerCloseEvent(rootElement);\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return;\n }\n\n this._removeElement(rootElement);\n } // Private\n\n }, {\n key: \"_getRootElement\",\n value: function _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(\".\".concat(CLASS_NAME_ALERT));\n }\n }, {\n key: \"_triggerCloseEvent\",\n value: function _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE);\n }\n }, {\n key: \"_removeElement\",\n value: function _removeElement(element) {\n var _this2 = this;\n\n element.classList.remove(CLASS_NAME_SHOW$9);\n var isAnimated = element.classList.contains(CLASS_NAME_FADE$6);\n\n this._queueCallback(function () {\n return _this2._destroyElement(element);\n }, element, isAnimated);\n }\n }, {\n key: \"_destroyElement\",\n value: function _destroyElement(element) {\n element.remove();\n EventHandler.trigger(element, EVENT_CLOSED);\n } // Static\n\n }], [{\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Alert.getOrCreateInstance(this);\n\n if (config === 'close') {\n data[config](this);\n }\n });\n }\n }, {\n key: \"handleDismiss\",\n value: function handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault();\n }\n\n alertInstance.close(this);\n };\n }\n }, {\n key: \"NAME\",\n // Getters\n get: function get() {\n return NAME$c;\n }\n }]);\n\n return Alert;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$7, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Alert);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$b = 'button';\n var DATA_KEY$a = 'bs.button';\n var EVENT_KEY$a = \".\".concat(DATA_KEY$a);\n var DATA_API_KEY$7 = '.data-api';\n var CLASS_NAME_ACTIVE$3 = 'active';\n var SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\n var EVENT_CLICK_DATA_API$6 = \"click\".concat(EVENT_KEY$a).concat(DATA_API_KEY$7);\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Button = /*#__PURE__*/function (_BaseComponent2) {\n _inherits(Button, _BaseComponent2);\n\n var _super2 = _createSuper(Button);\n\n function Button() {\n _classCallCheck(this, Button);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Button, [{\n key: \"toggle\",\n // Public\n value: function toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n } // Static\n\n }], [{\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Button.getOrCreateInstance(this);\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n }, {\n key: \"NAME\",\n // Getters\n get: function get() {\n return NAME$b;\n }\n }]);\n\n return Button;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, function (event) {\n event.preventDefault();\n var button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n var data = Button.getOrCreateInstance(button);\n data.toggle();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Button);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n function normalizeData(val) {\n if (val === 'true') {\n return true;\n }\n\n if (val === 'false') {\n return false;\n }\n\n if (val === Number(val).toString()) {\n return Number(val);\n }\n\n if (val === '' || val === 'null') {\n return null;\n }\n\n return val;\n }\n\n function normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, function (chr) {\n return \"-\".concat(chr.toLowerCase());\n });\n }\n\n var Manipulator = {\n setDataAttribute: function setDataAttribute(element, key, value) {\n element.setAttribute(\"data-bs-\".concat(normalizeDataKey(key)), value);\n },\n removeDataAttribute: function removeDataAttribute(element, key) {\n element.removeAttribute(\"data-bs-\".concat(normalizeDataKey(key)));\n },\n getDataAttributes: function getDataAttributes(element) {\n if (!element) {\n return {};\n }\n\n var attributes = {};\n Object.keys(element.dataset).filter(function (key) {\n return key.startsWith('bs');\n }).forEach(function (key) {\n var pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n });\n return attributes;\n },\n getDataAttribute: function getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(\"data-bs-\".concat(normalizeDataKey(key))));\n },\n offset: function offset(element) {\n var rect = element.getBoundingClientRect();\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n };\n },\n position: function position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n };\n }\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$a = 'carousel';\n var DATA_KEY$9 = 'bs.carousel';\n var EVENT_KEY$9 = \".\".concat(DATA_KEY$9);\n var DATA_API_KEY$6 = '.data-api';\n var ARROW_LEFT_KEY = 'ArrowLeft';\n var ARROW_RIGHT_KEY = 'ArrowRight';\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n var SWIPE_THRESHOLD = 40;\n var Default$9 = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n };\n var DefaultType$9 = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n };\n var ORDER_NEXT = 'next';\n var ORDER_PREV = 'prev';\n var DIRECTION_LEFT = 'left';\n var DIRECTION_RIGHT = 'right';\n var KEY_TO_DIRECTION = (_KEY_TO_DIRECTION = {}, _defineProperty(_KEY_TO_DIRECTION, ARROW_LEFT_KEY, DIRECTION_RIGHT), _defineProperty(_KEY_TO_DIRECTION, ARROW_RIGHT_KEY, DIRECTION_LEFT), _KEY_TO_DIRECTION);\n var EVENT_SLIDE = \"slide\".concat(EVENT_KEY$9);\n var EVENT_SLID = \"slid\".concat(EVENT_KEY$9);\n var EVENT_KEYDOWN = \"keydown\".concat(EVENT_KEY$9);\n var EVENT_MOUSEENTER = \"mouseenter\".concat(EVENT_KEY$9);\n var EVENT_MOUSELEAVE = \"mouseleave\".concat(EVENT_KEY$9);\n var EVENT_TOUCHSTART = \"touchstart\".concat(EVENT_KEY$9);\n var EVENT_TOUCHMOVE = \"touchmove\".concat(EVENT_KEY$9);\n var EVENT_TOUCHEND = \"touchend\".concat(EVENT_KEY$9);\n var EVENT_POINTERDOWN = \"pointerdown\".concat(EVENT_KEY$9);\n var EVENT_POINTERUP = \"pointerup\".concat(EVENT_KEY$9);\n var EVENT_DRAG_START = \"dragstart\".concat(EVENT_KEY$9);\n var EVENT_LOAD_DATA_API$2 = \"load\".concat(EVENT_KEY$9).concat(DATA_API_KEY$6);\n var EVENT_CLICK_DATA_API$5 = \"click\".concat(EVENT_KEY$9).concat(DATA_API_KEY$6);\n var CLASS_NAME_CAROUSEL = 'carousel';\n var CLASS_NAME_ACTIVE$2 = 'active';\n var CLASS_NAME_SLIDE = 'slide';\n var CLASS_NAME_END = 'carousel-item-end';\n var CLASS_NAME_START = 'carousel-item-start';\n var CLASS_NAME_NEXT = 'carousel-item-next';\n var CLASS_NAME_PREV = 'carousel-item-prev';\n var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n var SELECTOR_ACTIVE$1 = '.active';\n var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n var SELECTOR_ITEM = '.carousel-item';\n var SELECTOR_ITEM_IMG = '.carousel-item img';\n var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n var SELECTOR_INDICATORS = '.carousel-indicators';\n var SELECTOR_INDICATOR = '[data-bs-target]';\n var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\n var SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\n var POINTER_TYPE_TOUCH = 'touch';\n var POINTER_TYPE_PEN = 'pen';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Carousel = /*#__PURE__*/function (_BaseComponent3) {\n _inherits(Carousel, _BaseComponent3);\n\n var _super3 = _createSuper(Carousel);\n\n function Carousel(element, config) {\n var _this3;\n\n _classCallCheck(this, Carousel);\n\n _this3 = _super3.call(this, element);\n _this3._items = null;\n _this3._interval = null;\n _this3._activeElement = null;\n _this3._isPaused = false;\n _this3._isSliding = false;\n _this3.touchTimeout = null;\n _this3.touchStartX = 0;\n _this3.touchDeltaX = 0;\n _this3._config = _this3._getConfig(config);\n _this3._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, _this3._element);\n _this3._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n _this3._pointerEvent = Boolean(window.PointerEvent);\n\n _this3._addEventListeners();\n\n return _this3;\n } // Getters\n\n\n _createClass(Carousel, [{\n key: \"next\",\n // Public\n value: function next() {\n this._slide(ORDER_NEXT);\n }\n }, {\n key: \"nextWhenVisible\",\n value: function nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n }, {\n key: \"prev\",\n value: function prev() {\n this._slide(ORDER_PREV);\n }\n }, {\n key: \"pause\",\n value: function pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n\n clearInterval(this._interval);\n this._interval = null;\n }\n }, {\n key: \"cycle\",\n value: function cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval();\n\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n }\n }, {\n key: \"to\",\n value: function to(index) {\n var _this4 = this;\n\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n var activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, function () {\n return _this4.to(index);\n });\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n var order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n\n this._slide(order, this._items[index]);\n } // Private\n\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$9), Manipulator.getDataAttributes(this._element)), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME$a, config, DefaultType$9);\n return config;\n }\n }, {\n key: \"_handleSwipe\",\n value: function _handleSwipe() {\n var absDeltax = Math.abs(this.touchDeltaX);\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltax / this.touchDeltaX;\n this.touchDeltaX = 0;\n\n if (!direction) {\n return;\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT);\n }\n }, {\n key: \"_addEventListeners\",\n value: function _addEventListeners() {\n var _this5 = this;\n\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, function (event) {\n return _this5._keydown(event);\n });\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) {\n return _this5.pause(event);\n });\n EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) {\n return _this5.cycle(event);\n });\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners();\n }\n }\n }, {\n key: \"_addTouchEventListeners\",\n value: function _addTouchEventListeners() {\n var _this6 = this;\n\n var start = function start(event) {\n if (_this6._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n _this6.touchStartX = event.clientX;\n } else if (!_this6._pointerEvent) {\n _this6.touchStartX = event.touches[0].clientX;\n }\n };\n\n var move = function move(event) {\n // ensure swiping with one touch and not pinching\n _this6.touchDeltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - _this6.touchStartX;\n };\n\n var end = function end(event) {\n if (_this6._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n _this6.touchDeltaX = event.clientX - _this6.touchStartX;\n }\n\n _this6._handleSwipe();\n\n if (_this6._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n _this6.pause();\n\n if (_this6.touchTimeout) {\n clearTimeout(_this6.touchTimeout);\n }\n\n _this6.touchTimeout = setTimeout(function (event) {\n return _this6.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this6._config.interval);\n }\n };\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {\n EventHandler.on(itemImg, EVENT_DRAG_START, function (e) {\n return e.preventDefault();\n });\n });\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) {\n return start(event);\n });\n EventHandler.on(this._element, EVENT_POINTERUP, function (event) {\n return end(event);\n });\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) {\n return start(event);\n });\n EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) {\n return move(event);\n });\n EventHandler.on(this._element, EVENT_TOUCHEND, function (event) {\n return end(event);\n });\n }\n }\n }, {\n key: \"_keydown\",\n value: function _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n var direction = KEY_TO_DIRECTION[event.key];\n\n if (direction) {\n event.preventDefault();\n\n this._slide(direction);\n }\n }\n }, {\n key: \"_getItemIndex\",\n value: function _getItemIndex(element) {\n this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];\n return this._items.indexOf(element);\n }\n }, {\n key: \"_getItemByOrder\",\n value: function _getItemByOrder(order, activeElement) {\n var isNext = order === ORDER_NEXT;\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap);\n }\n }, {\n key: \"_triggerSlideEvent\",\n value: function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n\n var fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element));\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n }\n }, {\n key: \"_setActiveIndicatorElement\",\n value: function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n var activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n var indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement);\n\n for (var i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE$2);\n indicators[i].setAttribute('aria-current', 'true');\n break;\n }\n }\n }\n }\n }, {\n key: \"_updateInterval\",\n value: function _updateInterval() {\n var element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n if (!element) {\n return;\n }\n\n var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = elementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n }\n }, {\n key: \"_slide\",\n value: function _slide(directionOrOrder, element) {\n var _this7 = this;\n\n var order = this._directionToOrder(directionOrOrder);\n\n var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n var activeElementIndex = this._getItemIndex(activeElement);\n\n var nextElement = element || this._getItemByOrder(order, activeElement);\n\n var nextElementIndex = this._getItemIndex(nextElement);\n\n var isCycling = Boolean(this._interval);\n var isNext = order === ORDER_NEXT;\n var directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n var orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n\n var eventDirectionName = this._orderToDirection(order);\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$2)) {\n this._isSliding = false;\n return;\n }\n\n if (this._isSliding) {\n return;\n }\n\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n if (slideEvent.defaultPrevented) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n\n this._isSliding = true;\n\n if (isCycling) {\n this.pause();\n }\n\n this._setActiveIndicatorElement(nextElement);\n\n this._activeElement = nextElement;\n\n var triggerSlidEvent = function triggerSlidEvent() {\n EventHandler.trigger(_this7._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n };\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n\n var completeCallBack = function completeCallBack() {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n _this7._isSliding = false;\n setTimeout(triggerSlidEvent, 0);\n };\n\n this._queueCallback(completeCallBack, activeElement, true);\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n this._isSliding = false;\n triggerSlidEvent();\n }\n\n if (isCycling) {\n this.cycle();\n }\n }\n }, {\n key: \"_directionToOrder\",\n value: function _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction;\n }\n\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n }, {\n key: \"_orderToDirection\",\n value: function _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order;\n }\n\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n } // Static\n\n }], [{\n key: \"carouselInterface\",\n value: function carouselInterface(element, config) {\n var data = Carousel.getOrCreateInstance(element, config);\n var _config = data._config;\n\n if (_typeof(config) === 'object') {\n _config = _objectSpread(_objectSpread({}, _config), config);\n }\n\n var action = typeof config === 'string' ? config : _config.slide;\n\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(action, \"\\\"\"));\n }\n\n data[action]();\n } else if (_config.interval && _config.ride) {\n data.pause();\n data.cycle();\n }\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config);\n });\n }\n }, {\n key: \"dataApiClickHandler\",\n value: function dataApiClickHandler(event) {\n var target = getElementFromSelector(this);\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n var config = _objectSpread(_objectSpread({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));\n\n var slideIndex = this.getAttribute('data-bs-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel.carouselInterface(target, config);\n\n if (slideIndex) {\n Carousel.getInstance(target).to(slideIndex);\n }\n\n event.preventDefault();\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$9;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$a;\n }\n }]);\n\n return Carousel;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);\n EventHandler.on(window, EVENT_LOAD_DATA_API$2, function () {\n var carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n\n for (var i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]));\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Carousel);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$9 = 'collapse';\n var DATA_KEY$8 = 'bs.collapse';\n var EVENT_KEY$8 = \".\".concat(DATA_KEY$8);\n var DATA_API_KEY$5 = '.data-api';\n var Default$8 = {\n toggle: true,\n parent: ''\n };\n var DefaultType$8 = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n var EVENT_SHOW$5 = \"show\".concat(EVENT_KEY$8);\n var EVENT_SHOWN$5 = \"shown\".concat(EVENT_KEY$8);\n var EVENT_HIDE$5 = \"hide\".concat(EVENT_KEY$8);\n var EVENT_HIDDEN$5 = \"hidden\".concat(EVENT_KEY$8);\n var EVENT_CLICK_DATA_API$4 = \"click\".concat(EVENT_KEY$8).concat(DATA_API_KEY$5);\n var CLASS_NAME_SHOW$8 = 'show';\n var CLASS_NAME_COLLAPSE = 'collapse';\n var CLASS_NAME_COLLAPSING = 'collapsing';\n var CLASS_NAME_COLLAPSED = 'collapsed';\n var WIDTH = 'width';\n var HEIGHT = 'height';\n var SELECTOR_ACTIVES = '.show, .collapsing';\n var SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Collapse = /*#__PURE__*/function (_BaseComponent4) {\n _inherits(Collapse, _BaseComponent4);\n\n var _super4 = _createSuper(Collapse);\n\n function Collapse(element, config) {\n var _this8;\n\n _classCallCheck(this, Collapse);\n\n _this8 = _super4.call(this, element);\n _this8._isTransitioning = false;\n _this8._config = _this8._getConfig(config);\n _this8._triggerArray = SelectorEngine.find(\"\".concat(SELECTOR_DATA_TOGGLE$4, \"[href=\\\"#\").concat(_this8._element.id, \"\\\"],\") + \"\".concat(SELECTOR_DATA_TOGGLE$4, \"[data-bs-target=\\\"#\").concat(_this8._element.id, \"\\\"]\"));\n var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = getSelectorFromElement(elem);\n var filterElement = SelectorEngine.find(selector).filter(function (foundElem) {\n return foundElem === _this8._element;\n });\n\n if (selector !== null && filterElement.length) {\n _this8._selector = selector;\n\n _this8._triggerArray.push(elem);\n }\n }\n\n _this8._parent = _this8._config.parent ? _this8._getParent() : null;\n\n if (!_this8._config.parent) {\n _this8._addAriaAndCollapsedClass(_this8._element, _this8._triggerArray);\n }\n\n if (_this8._config.toggle) {\n _this8.toggle();\n }\n\n return _this8;\n } // Getters\n\n\n _createClass(Collapse, [{\n key: \"toggle\",\n // Public\n value: function toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW$8)) {\n this.hide();\n } else {\n this.show();\n }\n }\n }, {\n key: \"show\",\n value: function show() {\n var _this9 = this;\n\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW$8)) {\n return;\n }\n\n var actives;\n var activesData;\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {\n if (typeof _this9._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === _this9._config.parent;\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE);\n });\n\n if (actives.length === 0) {\n actives = null;\n }\n }\n\n var container = SelectorEngine.findOne(this._selector);\n\n if (actives) {\n var tempActiveData = actives.find(function (elem) {\n return container !== elem;\n });\n activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null;\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n var startEvent = EventHandler.trigger(this._element, EVENT_SHOW$5);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n if (actives) {\n actives.forEach(function (elemActive) {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide');\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY$8, null);\n }\n });\n }\n\n var dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(function (element) {\n element.classList.remove(CLASS_NAME_COLLAPSED);\n element.setAttribute('aria-expanded', true);\n });\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n _this9._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n _this9._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$8);\n\n _this9._element.style[dimension] = '';\n\n _this9.setTransitioning(false);\n\n EventHandler.trigger(_this9._element, EVENT_SHOWN$5);\n };\n\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\".concat(capitalizedDimension);\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = \"\".concat(this._element[scrollSize], \"px\");\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this10 = this;\n\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW$8)) {\n return;\n }\n\n var startEvent = EventHandler.trigger(this._element, EVENT_HIDE$5);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n var dimension = this._getDimension();\n\n this._element.style[dimension] = \"\".concat(this._element.getBoundingClientRect()[dimension], \"px\");\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$8);\n\n var triggerArrayLength = this._triggerArray.length;\n\n if (triggerArrayLength > 0) {\n for (var i = 0; i < triggerArrayLength; i++) {\n var trigger = this._triggerArray[i];\n var elem = getElementFromSelector(trigger);\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW$8)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED);\n trigger.setAttribute('aria-expanded', false);\n }\n }\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n _this10.setTransitioning(false);\n\n _this10._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n _this10._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler.trigger(_this10._element, EVENT_HIDDEN$5);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n }, {\n key: \"setTransitioning\",\n value: function setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning;\n } // Private\n\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread({}, Default$8), config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n typeCheckConfig(NAME$9, config, DefaultType$8);\n return config;\n }\n }, {\n key: \"_getDimension\",\n value: function _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;\n }\n }, {\n key: \"_getParent\",\n value: function _getParent() {\n var _this11 = this;\n\n var parent = this._config.parent;\n parent = getElement(parent);\n var selector = \"\".concat(SELECTOR_DATA_TOGGLE$4, \"[data-bs-parent=\\\"\").concat(parent, \"\\\"]\");\n SelectorEngine.find(selector, parent).forEach(function (element) {\n var selected = getElementFromSelector(element);\n\n _this11._addAriaAndCollapsedClass(selected, [element]);\n });\n return parent;\n }\n }, {\n key: \"_addAriaAndCollapsedClass\",\n value: function _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return;\n }\n\n var isOpen = element.classList.contains(CLASS_NAME_SHOW$8);\n triggerArray.forEach(function (elem) {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED);\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED);\n }\n\n elem.setAttribute('aria-expanded', isOpen);\n });\n } // Static\n\n }], [{\n key: \"collapseInterface\",\n value: function collapseInterface(element, config) {\n var data = Collapse.getInstance(element);\n\n var _config = _objectSpread(_objectSpread(_objectSpread({}, Default$8), Manipulator.getDataAttributes(element)), _typeof(config) === 'object' && config ? config : {});\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n if (!data) {\n data = new Collapse(element, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n }\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config);\n });\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$8;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$9;\n }\n }]);\n\n return Collapse;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n var triggerData = Manipulator.getDataAttributes(this);\n var selector = getSelectorFromElement(this);\n var selectorElements = SelectorEngine.find(selector);\n selectorElements.forEach(function (element) {\n var data = Collapse.getInstance(element);\n var config;\n\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent;\n data._parent = data._getParent();\n }\n\n config = 'toggle';\n } else {\n config = triggerData;\n }\n\n Collapse.collapseInterface(element, config);\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Collapse);\n var top = 'top';\n var bottom = 'bottom';\n var right = 'right';\n var left = 'left';\n var auto = 'auto';\n var basePlacements = [top, bottom, right, left];\n var start = 'start';\n var end = 'end';\n var clippingParents = 'clippingParents';\n var viewport = 'viewport';\n var popper = 'popper';\n var reference = 'reference';\n var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n }, []);\n var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n }, []); // modifiers that need to read the DOM\n\n var beforeRead = 'beforeRead';\n var read = 'read';\n var afterRead = 'afterRead'; // pure-logic modifiers\n\n var beforeMain = 'beforeMain';\n var main = 'main';\n var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\n var beforeWrite = 'beforeWrite';\n var write = 'write';\n var afterWrite = 'afterWrite';\n var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];\n\n function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n }\n\n function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n }\n\n function isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n }\n\n function isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n }\n\n function isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n } // and applies them to the HTMLElements such as popper and arrow\n\n\n function applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n }\n\n function effect$2(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n } // eslint-disable-next-line import/no-unused-modules\n\n\n var applyStyles$1 = {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect$2,\n requires: ['computeStyles']\n };\n\n function getBasePlacement(placement) {\n return placement.split('-')[0];\n }\n\n function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n y: rect.top\n };\n } // means it doesn't take into account transforms.\n\n\n function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n }\n\n function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n }\n\n function getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n }\n\n function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n }\n\n function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n }\n\n function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n }\n\n function getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n } // `.offsetParent` reports `null` for fixed elements, while absolute elements\n // return the containing block\n\n\n function getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle$1(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle$1(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n } // Gets the closest ancestor positioned element. Handles some edge cases,\n // such as table ancestors and cross browser bugs.\n\n\n function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n }\n\n function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n }\n\n var max = Math.max;\n var min = Math.min;\n var round = Math.round;\n\n function within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n }\n\n function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n }\n\n function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n }\n\n function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n }\n\n var toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n };\n\n function arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n }\n\n function effect$1(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n } // eslint-disable-next-line import/no-unused-modules\n\n\n var arrow$1 = {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect$1,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n };\n var unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n }; // Round the offsets to the nearest suitable subpixel based on the DPR.\n // Zooming can change the DPR, but it seems to report a value that will\n // cleanly divide the values into the appropriate subpixels.\n\n function roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(round(x * dpr) / dpr) || 0,\n y: round(round(y * dpr) / dpr) || 0\n };\n }\n\n function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle$1(offsetParent).position !== 'static') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top) {\n sideY = bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left) {\n sideX = right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n }\n\n function computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n } // eslint-disable-next-line import/no-unused-modules\n\n\n var computeStyles$1 = {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n };\n var passive = {\n passive: true\n };\n\n function effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n } // eslint-disable-next-line import/no-unused-modules\n\n\n var eventListeners = {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n };\n var hash$1 = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n\n function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash$1[matched];\n });\n }\n\n var hash = {\n start: 'end',\n end: 'start'\n };\n\n function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n }\n\n function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n }\n\n function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n }\n\n function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n } // of the `` and `` rect bounds if horizontally scrollable\n\n\n function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle$1(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n }\n\n function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle$1(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n }\n\n function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n }\n /*\n given a DOM element, return the list of all scroll parents, up the list of ancesors\n until we get to the top window object. This list is what we attach scroll listeners\n to, because if any of these parent elements scroll, we'll need to re-calculate the\n reference element's position.\n */\n\n\n function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n }\n\n function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n }\n\n function getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n }\n\n function getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n } // A \"clipping parent\" is an overflowable container with the characteristic of\n // clipping (or hiding) overflowing elements with a position different from\n // `initial`\n\n\n function getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle$1(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n } // Gets the maximum area that the element is visible in due to any number of\n // clipping parents\n\n\n function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n }\n\n function getVariation(placement) {\n return placement.split('-')[1];\n }\n\n function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n }\n }\n\n return offsets;\n }\n\n function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var referenceElement = state.elements.reference;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(referenceElement);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n }\n\n function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements$1.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements$1;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n }\n\n function getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n }\n\n function flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n } // eslint-disable-next-line import/no-unused-modules\n\n\n var flip$1 = {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n };\n\n function getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n }\n\n function isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n }\n\n function hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n } // eslint-disable-next-line import/no-unused-modules\n\n\n var hide$1 = {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n };\n\n function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n }\n\n function offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n } // eslint-disable-next-line import/no-unused-modules\n\n\n var offset$1 = {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n };\n\n function popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name; // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n } // eslint-disable-next-line import/no-unused-modules\n\n\n var popperOffsets$1 = {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n };\n\n function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n }\n\n function preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis || checkAltAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min$1 = popperOffsets[mainAxis] + overflow[mainSide];\n var max$1 = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n if (checkMainAxis) {\n var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(tether ? min(_min, tetherMin) : _min, _offset, tether ? max(_max, tetherMax) : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n }\n\n state.modifiersData[name] = data;\n } // eslint-disable-next-line import/no-unused-modules\n\n\n var preventOverflow$1 = {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n };\n\n function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n\n function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n } // Composite means it takes into account transforms as well as layout.\n\n\n function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement);\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n }\n\n function order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n }\n\n function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n }\n\n function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n }\n\n function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n }\n\n var DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n };\n\n function areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n }\n\n function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(options) {\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n }\n\n var createPopper$2 = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\n var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];\n var createPopper$1 = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers$1\n }); // eslint-disable-next-line import/no-unused-modules\n\n var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];\n var createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n }); // eslint-disable-next-line import/no-unused-modules\n\n var Popper = /*#__PURE__*/Object.freeze({\n __proto__: null,\n popperGenerator: popperGenerator,\n detectOverflow: detectOverflow,\n createPopperBase: createPopper$2,\n createPopper: createPopper,\n createPopperLite: createPopper$1,\n top: top,\n bottom: bottom,\n right: right,\n left: left,\n auto: auto,\n basePlacements: basePlacements,\n start: start,\n end: end,\n clippingParents: clippingParents,\n viewport: viewport,\n popper: popper,\n reference: reference,\n variationPlacements: variationPlacements,\n placements: placements,\n beforeRead: beforeRead,\n read: read,\n afterRead: afterRead,\n beforeMain: beforeMain,\n main: main,\n afterMain: afterMain,\n beforeWrite: beforeWrite,\n write: write,\n afterWrite: afterWrite,\n modifierPhases: modifierPhases,\n applyStyles: applyStyles$1,\n arrow: arrow$1,\n computeStyles: computeStyles$1,\n eventListeners: eventListeners,\n flip: flip$1,\n hide: hide$1,\n offset: offset$1,\n popperOffsets: popperOffsets$1,\n preventOverflow: preventOverflow$1\n });\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$8 = 'dropdown';\n var DATA_KEY$7 = 'bs.dropdown';\n var EVENT_KEY$7 = \".\".concat(DATA_KEY$7);\n var DATA_API_KEY$4 = '.data-api';\n var ESCAPE_KEY$2 = 'Escape';\n var SPACE_KEY = 'Space';\n var TAB_KEY = 'Tab';\n var ARROW_UP_KEY = 'ArrowUp';\n var ARROW_DOWN_KEY = 'ArrowDown';\n var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\n var REGEXP_KEYDOWN = new RegExp(\"\".concat(ARROW_UP_KEY, \"|\").concat(ARROW_DOWN_KEY, \"|\").concat(ESCAPE_KEY$2));\n var EVENT_HIDE$4 = \"hide\".concat(EVENT_KEY$7);\n var EVENT_HIDDEN$4 = \"hidden\".concat(EVENT_KEY$7);\n var EVENT_SHOW$4 = \"show\".concat(EVENT_KEY$7);\n var EVENT_SHOWN$4 = \"shown\".concat(EVENT_KEY$7);\n var EVENT_CLICK = \"click\".concat(EVENT_KEY$7);\n var EVENT_CLICK_DATA_API$3 = \"click\".concat(EVENT_KEY$7).concat(DATA_API_KEY$4);\n var EVENT_KEYDOWN_DATA_API = \"keydown\".concat(EVENT_KEY$7).concat(DATA_API_KEY$4);\n var EVENT_KEYUP_DATA_API = \"keyup\".concat(EVENT_KEY$7).concat(DATA_API_KEY$4);\n var CLASS_NAME_SHOW$7 = 'show';\n var CLASS_NAME_DROPUP = 'dropup';\n var CLASS_NAME_DROPEND = 'dropend';\n var CLASS_NAME_DROPSTART = 'dropstart';\n var CLASS_NAME_NAVBAR = 'navbar';\n var SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]';\n var SELECTOR_MENU = '.dropdown-menu';\n var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n var PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\n var PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\n var PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\n var PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\n var PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\n var PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\n var Default$7 = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n autoClose: true\n };\n var DefaultType$7 = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n autoClose: '(boolean|string)'\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Dropdown = /*#__PURE__*/function (_BaseComponent5) {\n _inherits(Dropdown, _BaseComponent5);\n\n var _super5 = _createSuper(Dropdown);\n\n function Dropdown(element, config) {\n var _this12;\n\n _classCallCheck(this, Dropdown);\n\n _this12 = _super5.call(this, element);\n _this12._popper = null;\n _this12._config = _this12._getConfig(config);\n _this12._menu = _this12._getMenuElement();\n _this12._inNavbar = _this12._detectNavbar();\n\n _this12._addEventListeners();\n\n return _this12;\n } // Getters\n\n\n _createClass(Dropdown, [{\n key: \"toggle\",\n // Public\n value: function toggle() {\n if (isDisabled(this._element)) {\n return;\n }\n\n var isActive = this._element.classList.contains(CLASS_NAME_SHOW$7);\n\n if (isActive) {\n this.hide();\n return;\n }\n\n this.show();\n }\n }, {\n key: \"show\",\n value: function show() {\n if (isDisabled(this._element) || this._menu.classList.contains(CLASS_NAME_SHOW$7)) {\n return;\n }\n\n var parent = Dropdown.getParentFromElement(this._element);\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n } // Totally disable Popper for Dropdowns in Navbar\n\n\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none');\n } else {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n var referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (isElement$1(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (_typeof(this._config.reference) === 'object') {\n referenceElement = this._config.reference;\n }\n\n var popperConfig = this._getPopperConfig();\n\n var isDisplayStatic = popperConfig.modifiers.find(function (modifier) {\n return modifier.name === 'applyStyles' && modifier.enabled === false;\n });\n this._popper = createPopper(referenceElement, this._menu, popperConfig);\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static');\n }\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {\n var _ref8;\n\n (_ref8 = []).concat.apply(_ref8, _toConsumableArray(document.body.children)).forEach(function (elem) {\n return EventHandler.on(elem, 'mouseover', noop);\n });\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.toggle(CLASS_NAME_SHOW$7);\n\n this._element.classList.toggle(CLASS_NAME_SHOW$7);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n if (isDisabled(this._element) || !this._menu.classList.contains(CLASS_NAME_SHOW$7)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n\n this._completeHide(relatedTarget);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n\n _get(_getPrototypeOf(Dropdown.prototype), \"dispose\", this).call(this);\n }\n }, {\n key: \"update\",\n value: function update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n\n }, {\n key: \"_addEventListeners\",\n value: function _addEventListeners() {\n var _this13 = this;\n\n EventHandler.on(this._element, EVENT_CLICK, function (event) {\n event.preventDefault();\n\n _this13.toggle();\n });\n }\n }, {\n key: \"_completeHide\",\n value: function _completeHide(relatedTarget) {\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n var _ref9;\n\n (_ref9 = []).concat.apply(_ref9, _toConsumableArray(document.body.children)).forEach(function (elem) {\n return EventHandler.off(elem, 'mouseover', noop);\n });\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW$7);\n\n this._element.classList.remove(CLASS_NAME_SHOW$7);\n\n this._element.setAttribute('aria-expanded', 'false');\n\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget);\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, this.constructor.Default), Manipulator.getDataAttributes(this._element)), config);\n typeCheckConfig(NAME$8, config, this.constructor.DefaultType);\n\n if (_typeof(config.reference) === 'object' && !isElement$1(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(\"\".concat(NAME$8.toUpperCase(), \": Option \\\"reference\\\" provided type \\\"object\\\" without a required \\\"getBoundingClientRect\\\" method.\"));\n }\n\n return config;\n }\n }, {\n key: \"_getMenuElement\",\n value: function _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0];\n }\n }, {\n key: \"_getPlacement\",\n value: function _getPlacement() {\n var parentDropdown = this._element.parentNode;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n } // We need to trim the value because custom properties can also include spaces\n\n\n var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n }, {\n key: \"_detectNavbar\",\n value: function _detectNavbar() {\n return this._element.closest(\".\".concat(CLASS_NAME_NAVBAR)) !== null;\n }\n }, {\n key: \"_getOffset\",\n value: function _getOffset() {\n var _this14 = this;\n\n var offset = this._config.offset;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(function (val) {\n return Number.parseInt(val, 10);\n });\n }\n\n if (typeof offset === 'function') {\n return function (popperData) {\n return offset(popperData, _this14._element);\n };\n }\n\n return offset;\n }\n }, {\n key: \"_getPopperConfig\",\n value: function _getPopperConfig() {\n var defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return _objectSpread(_objectSpread({}, defaultBsPopperConfig), typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);\n }\n }, {\n key: \"_selectMenuItem\",\n value: function _selectMenuItem(_ref10) {\n var key = _ref10.key,\n target = _ref10.target;\n var items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);\n\n if (!items.length) {\n return;\n } // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus();\n } // Static\n\n }], [{\n key: \"dropdownInterface\",\n value: function dropdownInterface(element, config) {\n var data = Dropdown.getOrCreateInstance(element, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n }\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config);\n });\n }\n }, {\n key: \"clearMenus\",\n value: function clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {\n return;\n }\n\n var toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);\n\n for (var i = 0, len = toggles.length; i < len; i++) {\n var context = Dropdown.getInstance(toggles[i]);\n\n if (!context || context._config.autoClose === false) {\n continue;\n }\n\n if (!context._element.classList.contains(CLASS_NAME_SHOW$7)) {\n continue;\n }\n\n var relatedTarget = {\n relatedTarget: context._element\n };\n\n if (event) {\n var composedPath = event.composedPath();\n var isMenuTarget = composedPath.includes(context._menu);\n\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n\n\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n }\n\n context._completeHide(relatedTarget);\n }\n }\n }, {\n key: \"getParentFromElement\",\n value: function getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode;\n }\n }, {\n key: \"dataApiKeydownHandler\",\n value: function dataApiKeydownHandler(event) {\n var _this15 = this;\n\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY$2 && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {\n return;\n }\n\n var isActive = this.classList.contains(CLASS_NAME_SHOW$7);\n\n if (!isActive && event.key === ESCAPE_KEY$2) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (isDisabled(this)) {\n return;\n }\n\n var getToggleButton = function getToggleButton() {\n return _this15.matches(SELECTOR_DATA_TOGGLE$3) ? _this15 : SelectorEngine.prev(_this15, SELECTOR_DATA_TOGGLE$3)[0];\n };\n\n if (event.key === ESCAPE_KEY$2) {\n getToggleButton().focus();\n Dropdown.clearMenus();\n return;\n }\n\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\n if (!isActive) {\n getToggleButton().click();\n }\n\n Dropdown.getInstance(getToggleButton())._selectMenuItem(event);\n\n return;\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus();\n }\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$7;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$7;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$8;\n }\n }]);\n\n return Dropdown;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\n EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\n EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\n EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\n EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.dropdownInterface(this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Dropdown);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n var SELECTOR_STICKY_CONTENT = '.sticky-top';\n\n var ScrollBarHelper = /*#__PURE__*/function () {\n function ScrollBarHelper() {\n _classCallCheck(this, ScrollBarHelper);\n\n this._element = document.body;\n }\n\n _createClass(ScrollBarHelper, [{\n key: \"getWidth\",\n value: function getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n var documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var width = this.getWidth();\n\n this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width\n\n\n this._setElementAttributes(this._element, 'paddingRight', function (calculatedValue) {\n return calculatedValue + width;\n }); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n\n\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', function (calculatedValue) {\n return calculatedValue + width;\n });\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', function (calculatedValue) {\n return calculatedValue - width;\n });\n }\n }, {\n key: \"_disableOverFlow\",\n value: function _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n\n this._element.style.overflow = 'hidden';\n }\n }, {\n key: \"_setElementAttributes\",\n value: function _setElementAttributes(selector, styleProp, callback) {\n var _this16 = this;\n\n var scrollbarWidth = this.getWidth();\n\n var manipulationCallBack = function manipulationCallBack(element) {\n if (element !== _this16._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n\n _this16._saveInitialAttribute(element, styleProp);\n\n var calculatedValue = window.getComputedStyle(element)[styleProp];\n element.style[styleProp] = \"\".concat(callback(Number.parseFloat(calculatedValue)), \"px\");\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._resetElementAttributes(this._element, 'overflow');\n\n this._resetElementAttributes(this._element, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\n }\n }, {\n key: \"_saveInitialAttribute\",\n value: function _saveInitialAttribute(element, styleProp) {\n var actualValue = element.style[styleProp];\n\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProp, actualValue);\n }\n }\n }, {\n key: \"_resetElementAttributes\",\n value: function _resetElementAttributes(selector, styleProp) {\n var manipulationCallBack = function manipulationCallBack(element) {\n var value = Manipulator.getDataAttribute(element, styleProp);\n\n if (typeof value === 'undefined') {\n element.style.removeProperty(styleProp);\n } else {\n Manipulator.removeDataAttribute(element, styleProp);\n element.style[styleProp] = value;\n }\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n }, {\n key: \"_applyManipulationCallback\",\n value: function _applyManipulationCallback(selector, callBack) {\n if (isElement$1(selector)) {\n callBack(selector);\n } else {\n SelectorEngine.find(selector, this._element).forEach(callBack);\n }\n }\n }, {\n key: \"isOverflowing\",\n value: function isOverflowing() {\n return this.getWidth() > 0;\n }\n }]);\n\n return ScrollBarHelper;\n }();\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n var Default$6 = {\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n isAnimated: false,\n rootElement: 'body',\n // give the choice to place backdrop under different elements\n clickCallback: null\n };\n var DefaultType$6 = {\n isVisible: 'boolean',\n isAnimated: 'boolean',\n rootElement: '(element|string)',\n clickCallback: '(function|null)'\n };\n var NAME$7 = 'backdrop';\n var CLASS_NAME_BACKDROP = 'modal-backdrop';\n var CLASS_NAME_FADE$5 = 'fade';\n var CLASS_NAME_SHOW$6 = 'show';\n var EVENT_MOUSEDOWN = \"mousedown.bs.\".concat(NAME$7);\n\n var Backdrop = /*#__PURE__*/function () {\n function Backdrop(config) {\n _classCallCheck(this, Backdrop);\n\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n _createClass(Backdrop, [{\n key: \"show\",\n value: function show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n if (this._config.isAnimated) {\n reflow(this._getElement());\n }\n\n this._getElement().classList.add(CLASS_NAME_SHOW$6);\n\n this._emulateAnimation(function () {\n execute(callback);\n });\n }\n }, {\n key: \"hide\",\n value: function hide(callback) {\n var _this17 = this;\n\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW$6);\n\n this._emulateAnimation(function () {\n _this17.dispose();\n\n execute(callback);\n });\n } // Private\n\n }, {\n key: \"_getElement\",\n value: function _getElement() {\n if (!this._element) {\n var backdrop = document.createElement('div');\n backdrop.className = CLASS_NAME_BACKDROP;\n\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$5);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread({}, Default$6), _typeof(config) === 'object' ? config : {}); // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n\n config.rootElement = getElement(config.rootElement);\n typeCheckConfig(NAME$7, config, DefaultType$6);\n return config;\n }\n }, {\n key: \"_append\",\n value: function _append() {\n var _this18 = this;\n\n if (this._isAppended) {\n return;\n }\n\n this._config.rootElement.appendChild(this._getElement());\n\n EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, function () {\n execute(_this18._config.clickCallback);\n });\n this._isAppended = true;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n\n this._element.remove();\n\n this._isAppended = false;\n }\n }, {\n key: \"_emulateAnimation\",\n value: function _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n }]);\n\n return Backdrop;\n }();\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME$6 = 'modal';\n var DATA_KEY$6 = 'bs.modal';\n var EVENT_KEY$6 = \".\".concat(DATA_KEY$6);\n var DATA_API_KEY$3 = '.data-api';\n var ESCAPE_KEY$1 = 'Escape';\n var Default$5 = {\n backdrop: true,\n keyboard: true,\n focus: true\n };\n var DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n };\n var EVENT_HIDE$3 = \"hide\".concat(EVENT_KEY$6);\n var EVENT_HIDE_PREVENTED = \"hidePrevented\".concat(EVENT_KEY$6);\n var EVENT_HIDDEN$3 = \"hidden\".concat(EVENT_KEY$6);\n var EVENT_SHOW$3 = \"show\".concat(EVENT_KEY$6);\n var EVENT_SHOWN$3 = \"shown\".concat(EVENT_KEY$6);\n var EVENT_FOCUSIN$2 = \"focusin\".concat(EVENT_KEY$6);\n var EVENT_RESIZE = \"resize\".concat(EVENT_KEY$6);\n var EVENT_CLICK_DISMISS$2 = \"click.dismiss\".concat(EVENT_KEY$6);\n var EVENT_KEYDOWN_DISMISS$1 = \"keydown.dismiss\".concat(EVENT_KEY$6);\n var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\".concat(EVENT_KEY$6);\n var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\".concat(EVENT_KEY$6);\n var EVENT_CLICK_DATA_API$2 = \"click\".concat(EVENT_KEY$6).concat(DATA_API_KEY$3);\n var CLASS_NAME_OPEN = 'modal-open';\n var CLASS_NAME_FADE$4 = 'fade';\n var CLASS_NAME_SHOW$5 = 'show';\n var CLASS_NAME_STATIC = 'modal-static';\n var SELECTOR_DIALOG = '.modal-dialog';\n var SELECTOR_MODAL_BODY = '.modal-body';\n var SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\n var SELECTOR_DATA_DISMISS$2 = '[data-bs-dismiss=\"modal\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Modal = /*#__PURE__*/function (_BaseComponent6) {\n _inherits(Modal, _BaseComponent6);\n\n var _super6 = _createSuper(Modal);\n\n function Modal(element, config) {\n var _this19;\n\n _classCallCheck(this, Modal);\n\n _this19 = _super6.call(this, element);\n _this19._config = _this19._getConfig(config);\n _this19._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, _this19._element);\n _this19._backdrop = _this19._initializeBackDrop();\n _this19._isShown = false;\n _this19._ignoreBackdropClick = false;\n _this19._isTransitioning = false;\n _this19._scrollBar = new ScrollBarHelper();\n return _this19;\n } // Getters\n\n\n _createClass(Modal, [{\n key: \"toggle\",\n // Public\n value: function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n }, {\n key: \"show\",\n value: function show(relatedTarget) {\n var _this20 = this;\n\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget: relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n if (this._isAnimated()) {\n this._isTransitioning = true;\n }\n\n this._scrollBar.hide();\n\n document.body.classList.add(CLASS_NAME_OPEN);\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, SELECTOR_DATA_DISMISS$2, function (event) {\n return _this20.hide(event);\n });\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {\n EventHandler.one(_this20._element, EVENT_MOUSEUP_DISMISS, function (event) {\n if (event.target === _this20._element) {\n _this20._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this20._showElement(relatedTarget);\n });\n }\n }, {\n key: \"hide\",\n value: function hide(event) {\n var _this21 = this;\n\n if (event && ['A', 'AREA'].includes(event.target.tagName)) {\n event.preventDefault();\n }\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n\n var isAnimated = this._isAnimated();\n\n if (isAnimated) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler.off(document, EVENT_FOCUSIN$2);\n\n this._element.classList.remove(CLASS_NAME_SHOW$5);\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS$2);\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\n\n this._queueCallback(function () {\n return _this21._hideModal();\n }, this._element, isAnimated);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n [window, this._dialog].forEach(function (htmlElement) {\n return EventHandler.off(htmlElement, EVENT_KEY$6);\n });\n\n this._backdrop.dispose();\n\n _get(_getPrototypeOf(Modal.prototype), \"dispose\", this).call(this);\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n\n\n EventHandler.off(document, EVENT_FOCUSIN$2);\n }\n }, {\n key: \"handleUpdate\",\n value: function handleUpdate() {\n this._adjustDialog();\n } // Private\n\n }, {\n key: \"_initializeBackDrop\",\n value: function _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value\n isAnimated: this._isAnimated()\n });\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$5), Manipulator.getDataAttributes(this._element)), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME$6, config, DefaultType$5);\n return config;\n }\n }, {\n key: \"_showElement\",\n value: function _showElement(relatedTarget) {\n var _this22 = this;\n\n var isAnimated = this._isAnimated();\n\n var modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n if (isAnimated) {\n reflow(this._element);\n }\n\n this._element.classList.add(CLASS_NAME_SHOW$5);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n var transitionComplete = function transitionComplete() {\n if (_this22._config.focus) {\n _this22._element.focus();\n }\n\n _this22._isTransitioning = false;\n EventHandler.trigger(_this22._element, EVENT_SHOWN$3, {\n relatedTarget: relatedTarget\n });\n };\n\n this._queueCallback(transitionComplete, this._dialog, isAnimated);\n }\n }, {\n key: \"_enforceFocus\",\n value: function _enforceFocus() {\n var _this23 = this;\n\n EventHandler.off(document, EVENT_FOCUSIN$2); // guard against infinite focus loop\n\n EventHandler.on(document, EVENT_FOCUSIN$2, function (event) {\n if (document !== event.target && _this23._element !== event.target && !_this23._element.contains(event.target)) {\n _this23._element.focus();\n }\n });\n }\n }, {\n key: \"_setEscapeEvent\",\n value: function _setEscapeEvent() {\n var _this24 = this;\n\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, function (event) {\n if (_this24._config.keyboard && event.key === ESCAPE_KEY$1) {\n event.preventDefault();\n\n _this24.hide();\n } else if (!_this24._config.keyboard && event.key === ESCAPE_KEY$1) {\n _this24._triggerBackdropTransition();\n }\n });\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS$1);\n }\n }\n }, {\n key: \"_setResizeEvent\",\n value: function _setResizeEvent() {\n var _this25 = this;\n\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, function () {\n return _this25._adjustDialog();\n });\n } else {\n EventHandler.off(window, EVENT_RESIZE);\n }\n }\n }, {\n key: \"_hideModal\",\n value: function _hideModal() {\n var _this26 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._backdrop.hide(function () {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n _this26._resetAdjustments();\n\n _this26._scrollBar.reset();\n\n EventHandler.trigger(_this26._element, EVENT_HIDDEN$3);\n });\n }\n }, {\n key: \"_showBackdrop\",\n value: function _showBackdrop(callback) {\n var _this27 = this;\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, function (event) {\n if (_this27._ignoreBackdropClick) {\n _this27._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (_this27._config.backdrop === true) {\n _this27.hide();\n } else if (_this27._config.backdrop === 'static') {\n _this27._triggerBackdropTransition();\n }\n });\n\n this._backdrop.show(callback);\n }\n }, {\n key: \"_isAnimated\",\n value: function _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$4);\n }\n }, {\n key: \"_triggerBackdropTransition\",\n value: function _triggerBackdropTransition() {\n var _this28 = this;\n\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n var _this$_element = this._element,\n classList = _this$_element.classList,\n scrollHeight = _this$_element.scrollHeight,\n style = _this$_element.style;\n var isModalOverflowing = scrollHeight > document.documentElement.clientHeight; // return if the following background transition hasn't yet completed\n\n if (!isModalOverflowing && style.overflowY === 'hidden' || classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n\n if (!isModalOverflowing) {\n style.overflowY = 'hidden';\n }\n\n classList.add(CLASS_NAME_STATIC);\n\n this._queueCallback(function () {\n classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n _this28._queueCallback(function () {\n style.overflowY = '';\n }, _this28._dialog);\n }\n }, this._dialog);\n\n this._element.focus();\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n }, {\n key: \"_adjustDialog\",\n value: function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n var scrollbarWidth = this._scrollBar.getWidth();\n\n var isBodyOverflowing = scrollbarWidth > 0;\n\n if (!isBodyOverflowing && isModalOverflowing && !isRTL() || isBodyOverflowing && !isModalOverflowing && isRTL()) {\n this._element.style.paddingLeft = \"\".concat(scrollbarWidth, \"px\");\n }\n\n if (isBodyOverflowing && !isModalOverflowing && !isRTL() || !isBodyOverflowing && isModalOverflowing && isRTL()) {\n this._element.style.paddingRight = \"\".concat(scrollbarWidth, \"px\");\n }\n }\n }, {\n key: \"_resetAdjustments\",\n value: function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n } // Static\n\n }], [{\n key: \"jQueryInterface\",\n value: function jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = Modal.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config](relatedTarget);\n });\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$5;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$6;\n }\n }]);\n\n return Modal;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n var _this29 = this;\n\n var target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n EventHandler.one(target, EVENT_SHOW$3, function (showEvent) {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$3, function () {\n if (isVisible(_this29)) {\n _this29.focus();\n }\n });\n });\n var data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Modal);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$5 = 'offcanvas';\n var DATA_KEY$5 = 'bs.offcanvas';\n var EVENT_KEY$5 = \".\".concat(DATA_KEY$5);\n var DATA_API_KEY$2 = '.data-api';\n var EVENT_LOAD_DATA_API$1 = \"load\".concat(EVENT_KEY$5).concat(DATA_API_KEY$2);\n var ESCAPE_KEY = 'Escape';\n var Default$4 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n };\n var DefaultType$4 = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n };\n var CLASS_NAME_SHOW$4 = 'show';\n var OPEN_SELECTOR = '.offcanvas.show';\n var EVENT_SHOW$2 = \"show\".concat(EVENT_KEY$5);\n var EVENT_SHOWN$2 = \"shown\".concat(EVENT_KEY$5);\n var EVENT_HIDE$2 = \"hide\".concat(EVENT_KEY$5);\n var EVENT_HIDDEN$2 = \"hidden\".concat(EVENT_KEY$5);\n var EVENT_FOCUSIN$1 = \"focusin\".concat(EVENT_KEY$5);\n var EVENT_CLICK_DATA_API$1 = \"click\".concat(EVENT_KEY$5).concat(DATA_API_KEY$2);\n var EVENT_CLICK_DISMISS$1 = \"click.dismiss\".concat(EVENT_KEY$5);\n var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\".concat(EVENT_KEY$5);\n var SELECTOR_DATA_DISMISS$1 = '[data-bs-dismiss=\"offcanvas\"]';\n var SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Offcanvas = /*#__PURE__*/function (_BaseComponent7) {\n _inherits(Offcanvas, _BaseComponent7);\n\n var _super7 = _createSuper(Offcanvas);\n\n function Offcanvas(element, config) {\n var _this30;\n\n _classCallCheck(this, Offcanvas);\n\n _this30 = _super7.call(this, element);\n _this30._config = _this30._getConfig(config);\n _this30._isShown = false;\n _this30._backdrop = _this30._initializeBackDrop();\n\n _this30._addEventListeners();\n\n return _this30;\n } // Getters\n\n\n _createClass(Offcanvas, [{\n key: \"toggle\",\n // Public\n value: function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n }, {\n key: \"show\",\n value: function show(relatedTarget) {\n var _this31 = this;\n\n if (this._isShown) {\n return;\n }\n\n var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, {\n relatedTarget: relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n this._element.style.visibility = 'visible';\n\n this._backdrop.show();\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n\n this._enforceFocusOnElement(this._element);\n }\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.classList.add(CLASS_NAME_SHOW$4);\n\n var completeCallBack = function completeCallBack() {\n EventHandler.trigger(_this31._element, EVENT_SHOWN$2, {\n relatedTarget: relatedTarget\n });\n };\n\n this._queueCallback(completeCallBack, this._element, true);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this32 = this;\n\n if (!this._isShown) {\n return;\n }\n\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n EventHandler.off(document, EVENT_FOCUSIN$1);\n\n this._element.blur();\n\n this._isShown = false;\n\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n\n this._backdrop.hide();\n\n var completeCallback = function completeCallback() {\n _this32._element.setAttribute('aria-hidden', true);\n\n _this32._element.removeAttribute('aria-modal');\n\n _this32._element.removeAttribute('role');\n\n _this32._element.style.visibility = 'hidden';\n\n if (!_this32._config.scroll) {\n new ScrollBarHelper().reset();\n }\n\n EventHandler.trigger(_this32._element, EVENT_HIDDEN$2);\n };\n\n this._queueCallback(completeCallback, this._element, true);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._backdrop.dispose();\n\n _get(_getPrototypeOf(Offcanvas.prototype), \"dispose\", this).call(this);\n\n EventHandler.off(document, EVENT_FOCUSIN$1);\n } // Private\n\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$4), Manipulator.getDataAttributes(this._element)), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME$5, config, DefaultType$4);\n return config;\n }\n }, {\n key: \"_initializeBackDrop\",\n value: function _initializeBackDrop() {\n var _this33 = this;\n\n return new Backdrop({\n isVisible: this._config.backdrop,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: function clickCallback() {\n return _this33.hide();\n }\n });\n }\n }, {\n key: \"_enforceFocusOnElement\",\n value: function _enforceFocusOnElement(element) {\n EventHandler.off(document, EVENT_FOCUSIN$1); // guard against infinite focus loop\n\n EventHandler.on(document, EVENT_FOCUSIN$1, function (event) {\n if (document !== event.target && element !== event.target && !element.contains(event.target)) {\n element.focus();\n }\n });\n element.focus();\n }\n }, {\n key: \"_addEventListeners\",\n value: function _addEventListeners() {\n var _this34 = this;\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () {\n return _this34.hide();\n });\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {\n if (_this34._config.keyboard && event.key === ESCAPE_KEY) {\n _this34.hide();\n }\n });\n } // Static\n\n }], [{\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Offcanvas.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config](this);\n });\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$5;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$4;\n }\n }]);\n\n return Offcanvas;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n var _this35 = this;\n\n var target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$2, function () {\n // focus on trigger when it is closed\n if (isVisible(_this35)) {\n _this35.focus();\n }\n }); // avoid conflict when clicking a toggler of an offcanvas, while another is open\n\n var allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n\n if (allReadyOpen && allReadyOpen !== target) {\n Offcanvas.getInstance(allReadyOpen).hide();\n }\n\n var data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n });\n EventHandler.on(window, EVENT_LOAD_DATA_API$1, function () {\n return SelectorEngine.find(OPEN_SELECTOR).forEach(function (el) {\n return Offcanvas.getOrCreateInstance(el).show();\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n defineJQueryPlugin(Offcanvas);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i;\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\n var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase();\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));\n }\n\n return true;\n }\n\n var regExp = allowedAttributeList.filter(function (attrRegex) {\n return attrRegex instanceof RegExp;\n }); // Check if a regular expression validates the attribute.\n\n for (var i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true;\n }\n }\n\n return false;\n };\n\n var DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n };\n\n function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n var _ref11;\n\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml);\n }\n\n var domParser = new window.DOMParser();\n var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n var allowlistKeys = Object.keys(allowList);\n\n var elements = (_ref11 = []).concat.apply(_ref11, _toConsumableArray(createdDocument.body.querySelectorAll('*')));\n\n var _loop2 = function _loop2(i, len) {\n var _ref12;\n\n var el = elements[i];\n var elName = el.nodeName.toLowerCase();\n\n if (!allowlistKeys.includes(elName)) {\n el.remove();\n return \"continue\";\n }\n\n var attributeList = (_ref12 = []).concat.apply(_ref12, _toConsumableArray(el.attributes));\n\n var allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []);\n attributeList.forEach(function (attr) {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n });\n };\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var _ret2 = _loop2(i, len);\n\n if (_ret2 === \"continue\") continue;\n }\n\n return createdDocument.body.innerHTML;\n }\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME$4 = 'tooltip';\n var DATA_KEY$4 = 'bs.tooltip';\n var EVENT_KEY$4 = \".\".concat(DATA_KEY$4);\n var CLASS_PREFIX$1 = 'bs-tooltip';\n var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\".concat(CLASS_PREFIX$1, \"\\\\S+\"), 'g');\n var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\n var DefaultType$3 = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n };\n var AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n };\n var Default$3 = {\n animation: true,\n template: '
' + '
' + '
' + '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n };\n var Event$2 = {\n HIDE: \"hide\".concat(EVENT_KEY$4),\n HIDDEN: \"hidden\".concat(EVENT_KEY$4),\n SHOW: \"show\".concat(EVENT_KEY$4),\n SHOWN: \"shown\".concat(EVENT_KEY$4),\n INSERTED: \"inserted\".concat(EVENT_KEY$4),\n CLICK: \"click\".concat(EVENT_KEY$4),\n FOCUSIN: \"focusin\".concat(EVENT_KEY$4),\n FOCUSOUT: \"focusout\".concat(EVENT_KEY$4),\n MOUSEENTER: \"mouseenter\".concat(EVENT_KEY$4),\n MOUSELEAVE: \"mouseleave\".concat(EVENT_KEY$4)\n };\n var CLASS_NAME_FADE$3 = 'fade';\n var CLASS_NAME_MODAL = 'modal';\n var CLASS_NAME_SHOW$3 = 'show';\n var HOVER_STATE_SHOW = 'show';\n var HOVER_STATE_OUT = 'out';\n var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n var TRIGGER_HOVER = 'hover';\n var TRIGGER_FOCUS = 'focus';\n var TRIGGER_CLICK = 'click';\n var TRIGGER_MANUAL = 'manual';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Tooltip = /*#__PURE__*/function (_BaseComponent8) {\n _inherits(Tooltip, _BaseComponent8);\n\n var _super8 = _createSuper(Tooltip);\n\n function Tooltip(element, config) {\n var _this36;\n\n _classCallCheck(this, Tooltip);\n\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n\n _this36 = _super8.call(this, element); // private\n\n _this36._isEnabled = true;\n _this36._timeout = 0;\n _this36._hoverState = '';\n _this36._activeTrigger = {};\n _this36._popper = null; // Protected\n\n _this36._config = _this36._getConfig(config);\n _this36.tip = null;\n\n _this36._setListeners();\n\n return _this36;\n } // Getters\n\n\n _createClass(Tooltip, [{\n key: \"enable\",\n // Public\n value: function enable() {\n this._isEnabled = true;\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this._isEnabled = false;\n }\n }, {\n key: \"toggleEnabled\",\n value: function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n }, {\n key: \"toggle\",\n value: function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n var context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger.click = !context._activeTrigger.click;\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$3)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(\".\".concat(CLASS_NAME_MODAL)), 'hide.bs.modal', this._hideModalHandler);\n\n if (this.tip) {\n this.tip.remove();\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n _get(_getPrototypeOf(Tooltip.prototype), \"dispose\", this).call(this);\n }\n }, {\n key: \"show\",\n value: function show() {\n var _this37 = this;\n\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n if (!(this.isWithContent() && this._isEnabled)) {\n return;\n }\n\n var showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW);\n var shadowRoot = findShadowRoot(this._element);\n var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n var tip = this.getTipElement();\n var tipId = getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n\n this._element.setAttribute('aria-describedby', tipId);\n\n this.setContent();\n\n if (this._config.animation) {\n tip.classList.add(CLASS_NAME_FADE$3);\n }\n\n var placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;\n\n var attachment = this._getAttachment(placement);\n\n this._addAttachmentClass(attachment);\n\n var container = this._config.container;\n Data.set(tip, this.constructor.DATA_KEY, this);\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip);\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED);\n }\n\n if (this._popper) {\n this._popper.update();\n } else {\n this._popper = createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n\n tip.classList.add(CLASS_NAME_SHOW$3);\n var customClass = typeof this._config.customClass === 'function' ? this._config.customClass() : this._config.customClass;\n\n if (customClass) {\n var _tip$classList;\n\n (_tip$classList = tip.classList).add.apply(_tip$classList, _toConsumableArray(customClass.split(' ')));\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement) {\n var _ref13;\n\n (_ref13 = []).concat.apply(_ref13, _toConsumableArray(document.body.children)).forEach(function (element) {\n EventHandler.on(element, 'mouseover', noop);\n });\n }\n\n var complete = function complete() {\n var prevHoverState = _this37._hoverState;\n _this37._hoverState = null;\n EventHandler.trigger(_this37._element, _this37.constructor.Event.SHOWN);\n\n if (prevHoverState === HOVER_STATE_OUT) {\n _this37._leave(null, _this37);\n }\n };\n\n var isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$3);\n\n this._queueCallback(complete, this.tip, isAnimated);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this38 = this;\n\n if (!this._popper) {\n return;\n }\n\n var tip = this.getTipElement();\n\n var complete = function complete() {\n if (_this38._isWithActiveTrigger()) {\n return;\n }\n\n if (_this38._hoverState !== HOVER_STATE_SHOW) {\n tip.remove();\n }\n\n _this38._cleanTipClass();\n\n _this38._element.removeAttribute('aria-describedby');\n\n EventHandler.trigger(_this38._element, _this38.constructor.Event.HIDDEN);\n\n if (_this38._popper) {\n _this38._popper.destroy();\n\n _this38._popper = null;\n }\n };\n\n var hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n tip.classList.remove(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n var _ref14;\n\n (_ref14 = []).concat.apply(_ref14, _toConsumableArray(document.body.children)).forEach(function (element) {\n return EventHandler.off(element, 'mouseover', noop);\n });\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n var isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$3);\n\n this._queueCallback(complete, this.tip, isAnimated);\n\n this._hoverState = '';\n }\n }, {\n key: \"update\",\n value: function update() {\n if (this._popper !== null) {\n this._popper.update();\n }\n } // Protected\n\n }, {\n key: \"isWithContent\",\n value: function isWithContent() {\n return Boolean(this.getTitle());\n }\n }, {\n key: \"getTipElement\",\n value: function getTipElement() {\n if (this.tip) {\n return this.tip;\n }\n\n var element = document.createElement('div');\n element.innerHTML = this._config.template;\n this.tip = element.children[0];\n return this.tip;\n }\n }, {\n key: \"setContent\",\n value: function setContent() {\n var tip = this.getTipElement();\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());\n tip.classList.remove(CLASS_NAME_FADE$3, CLASS_NAME_SHOW$3);\n }\n }, {\n key: \"setElementContent\",\n value: function setElementContent(element, content) {\n if (element === null) {\n return;\n }\n\n if (isElement$1(content)) {\n content = getElement(content); // content is a DOM node or a jQuery\n\n if (this._config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = '';\n element.appendChild(content);\n }\n } else {\n element.textContent = content.textContent;\n }\n\n return;\n }\n\n if (this._config.html) {\n if (this._config.sanitize) {\n content = sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn);\n }\n\n element.innerHTML = content;\n } else {\n element.textContent = content;\n }\n }\n }, {\n key: \"getTitle\",\n value: function getTitle() {\n var title = this._element.getAttribute('data-bs-original-title');\n\n if (!title) {\n title = typeof this._config.title === 'function' ? this._config.title.call(this._element) : this._config.title;\n }\n\n return title;\n }\n }, {\n key: \"updateAttachment\",\n value: function updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end';\n }\n\n if (attachment === 'left') {\n return 'start';\n }\n\n return attachment;\n } // Private\n\n }, {\n key: \"_initializeOnDelegatedTarget\",\n value: function _initializeOnDelegatedTarget(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || Data.get(event.delegateTarget, dataKey);\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig());\n Data.set(event.delegateTarget, dataKey, context);\n }\n\n return context;\n }\n }, {\n key: \"_getOffset\",\n value: function _getOffset() {\n var _this39 = this;\n\n var offset = this._config.offset;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(function (val) {\n return Number.parseInt(val, 10);\n });\n }\n\n if (typeof offset === 'function') {\n return function (popperData) {\n return offset(popperData, _this39._element);\n };\n }\n\n return offset;\n }\n }, {\n key: \"_getPopperConfig\",\n value: function _getPopperConfig(attachment) {\n var _this40 = this;\n\n var defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: \".\".concat(this.constructor.NAME, \"-arrow\")\n }\n }, {\n name: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: function fn(data) {\n return _this40._handlePopperPlacementChange(data);\n }\n }],\n onFirstUpdate: function onFirstUpdate(data) {\n if (data.options.placement !== data.placement) {\n _this40._handlePopperPlacementChange(data);\n }\n }\n };\n return _objectSpread(_objectSpread({}, defaultBsPopperConfig), typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);\n }\n }, {\n key: \"_addAttachmentClass\",\n value: function _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(\"\".concat(CLASS_PREFIX$1, \"-\").concat(this.updateAttachment(attachment)));\n }\n }, {\n key: \"_getAttachment\",\n value: function _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n }\n }, {\n key: \"_setListeners\",\n value: function _setListeners() {\n var _this41 = this;\n\n var triggers = this._config.trigger.split(' ');\n\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n EventHandler.on(_this41._element, _this41.constructor.Event.CLICK, _this41._config.selector, function (event) {\n return _this41.toggle(event);\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n var eventIn = trigger === TRIGGER_HOVER ? _this41.constructor.Event.MOUSEENTER : _this41.constructor.Event.FOCUSIN;\n var eventOut = trigger === TRIGGER_HOVER ? _this41.constructor.Event.MOUSELEAVE : _this41.constructor.Event.FOCUSOUT;\n EventHandler.on(_this41._element, eventIn, _this41._config.selector, function (event) {\n return _this41._enter(event);\n });\n EventHandler.on(_this41._element, eventOut, _this41._config.selector, function (event) {\n return _this41._leave(event);\n });\n }\n });\n\n this._hideModalHandler = function () {\n if (_this41._element) {\n _this41.hide();\n }\n };\n\n EventHandler.on(this._element.closest(\".\".concat(CLASS_NAME_MODAL)), 'hide.bs.modal', this._hideModalHandler);\n\n if (this._config.selector) {\n this._config = _objectSpread(_objectSpread({}, this._config), {}, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n }\n }, {\n key: \"_fixTitle\",\n value: function _fixTitle() {\n var title = this._element.getAttribute('title');\n\n var originalTitleType = _typeof(this._element.getAttribute('data-bs-original-title'));\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '');\n\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title);\n }\n\n this._element.setAttribute('title', '');\n }\n }\n }, {\n key: \"_enter\",\n value: function _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW$3) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_SHOW;\n\n if (!context._config.delay || !context._config.delay.show) {\n context.show();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show();\n }\n }, context._config.delay.show);\n }\n }, {\n key: \"_leave\",\n value: function _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_OUT;\n\n if (!context._config.delay || !context._config.delay.hide) {\n context.hide();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide();\n }\n }, context._config.delay.hide);\n }\n }, {\n key: \"_isWithActiveTrigger\",\n value: function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n var dataAttributes = Manipulator.getDataAttributes(this._element);\n Object.keys(dataAttributes).forEach(function (dataAttr) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr];\n }\n });\n config = _objectSpread(_objectSpread(_objectSpread({}, this.constructor.Default), dataAttributes), _typeof(config) === 'object' && config ? config : {});\n config.container = config.container === false ? document.body : getElement(config.container);\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);\n }\n\n return config;\n }\n }, {\n key: \"_getDelegateConfig\",\n value: function _getDelegateConfig() {\n var config = {};\n\n if (this._config) {\n for (var key in this._config) {\n if (this.constructor.Default[key] !== this._config[key]) {\n config[key] = this._config[key];\n }\n }\n }\n\n return config;\n }\n }, {\n key: \"_cleanTipClass\",\n value: function _cleanTipClass() {\n var tip = this.getTipElement();\n var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1);\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(function (token) {\n return token.trim();\n }).forEach(function (tClass) {\n return tip.classList.remove(tClass);\n });\n }\n }\n }, {\n key: \"_handlePopperPlacementChange\",\n value: function _handlePopperPlacementChange(popperData) {\n var state = popperData.state;\n\n if (!state) {\n return;\n }\n\n this.tip = state.elements.popper;\n\n this._cleanTipClass();\n\n this._addAttachmentClass(this._getAttachment(state.placement));\n } // Static\n\n }], [{\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Tooltip.getOrCreateInstance(this, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n }\n });\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$3;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$4;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$2;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$3;\n }\n }]);\n\n return Tooltip;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\n\n defineJQueryPlugin(Tooltip);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$3 = 'popover';\n var DATA_KEY$3 = 'bs.popover';\n var EVENT_KEY$3 = \".\".concat(DATA_KEY$3);\n var CLASS_PREFIX = 'bs-popover';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\".concat(CLASS_PREFIX, \"\\\\S+\"), 'g');\n\n var Default$2 = _objectSpread(_objectSpread({}, Tooltip.Default), {}, {\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\n template: '
' + '
' + '

' + '
' + '
'\n });\n\n var DefaultType$2 = _objectSpread(_objectSpread({}, Tooltip.DefaultType), {}, {\n content: '(string|element|function)'\n });\n\n var Event$1 = {\n HIDE: \"hide\".concat(EVENT_KEY$3),\n HIDDEN: \"hidden\".concat(EVENT_KEY$3),\n SHOW: \"show\".concat(EVENT_KEY$3),\n SHOWN: \"shown\".concat(EVENT_KEY$3),\n INSERTED: \"inserted\".concat(EVENT_KEY$3),\n CLICK: \"click\".concat(EVENT_KEY$3),\n FOCUSIN: \"focusin\".concat(EVENT_KEY$3),\n FOCUSOUT: \"focusout\".concat(EVENT_KEY$3),\n MOUSEENTER: \"mouseenter\".concat(EVENT_KEY$3),\n MOUSELEAVE: \"mouseleave\".concat(EVENT_KEY$3)\n };\n var CLASS_NAME_FADE$2 = 'fade';\n var CLASS_NAME_SHOW$2 = 'show';\n var SELECTOR_TITLE = '.popover-header';\n var SELECTOR_CONTENT = '.popover-body';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Popover = /*#__PURE__*/function (_Tooltip) {\n _inherits(Popover, _Tooltip);\n\n var _super9 = _createSuper(Popover);\n\n function Popover() {\n _classCallCheck(this, Popover);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(Popover, [{\n key: \"isWithContent\",\n // Overrides\n value: function isWithContent() {\n return this.getTitle() || this._getContent();\n }\n }, {\n key: \"getTipElement\",\n value: function getTipElement() {\n if (this.tip) {\n return this.tip;\n }\n\n this.tip = _get(_getPrototypeOf(Popover.prototype), \"getTipElement\", this).call(this);\n\n if (!this.getTitle()) {\n SelectorEngine.findOne(SELECTOR_TITLE, this.tip).remove();\n }\n\n if (!this._getContent()) {\n SelectorEngine.findOne(SELECTOR_CONTENT, this.tip).remove();\n }\n\n return this.tip;\n }\n }, {\n key: \"setContent\",\n value: function setContent() {\n var tip = this.getTipElement(); // we use append for html objects to maintain js events\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle());\n\n var content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this._element);\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content);\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n } // Private\n\n }, {\n key: \"_addAttachmentClass\",\n value: function _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(\"\".concat(CLASS_PREFIX, \"-\").concat(this.updateAttachment(attachment)));\n }\n }, {\n key: \"_getContent\",\n value: function _getContent() {\n return this._element.getAttribute('data-bs-content') || this._config.content;\n }\n }, {\n key: \"_cleanTipClass\",\n value: function _cleanTipClass() {\n var tip = this.getTipElement();\n var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(function (token) {\n return token.trim();\n }).forEach(function (tClass) {\n return tip.classList.remove(tClass);\n });\n }\n } // Static\n\n }], [{\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Popover.getOrCreateInstance(this, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n }\n });\n }\n }, {\n key: \"Default\",\n // Getters\n get: function get() {\n return Default$2;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$3;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$1;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$2;\n }\n }]);\n\n return Popover;\n }(Tooltip);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\n\n defineJQueryPlugin(Popover);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$2 = 'scrollspy';\n var DATA_KEY$2 = 'bs.scrollspy';\n var EVENT_KEY$2 = \".\".concat(DATA_KEY$2);\n var DATA_API_KEY$1 = '.data-api';\n var Default$1 = {\n offset: 10,\n method: 'auto',\n target: ''\n };\n var DefaultType$1 = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n };\n var EVENT_ACTIVATE = \"activate\".concat(EVENT_KEY$2);\n var EVENT_SCROLL = \"scroll\".concat(EVENT_KEY$2);\n var EVENT_LOAD_DATA_API = \"load\".concat(EVENT_KEY$2).concat(DATA_API_KEY$1);\n var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n var CLASS_NAME_ACTIVE$1 = 'active';\n var SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\n var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\n var SELECTOR_NAV_LINKS = '.nav-link';\n var SELECTOR_NAV_ITEMS = '.nav-item';\n var SELECTOR_LIST_ITEMS = '.list-group-item';\n var SELECTOR_DROPDOWN$1 = '.dropdown';\n var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\n var METHOD_OFFSET = 'offset';\n var METHOD_POSITION = 'position';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var ScrollSpy = /*#__PURE__*/function (_BaseComponent9) {\n _inherits(ScrollSpy, _BaseComponent9);\n\n var _super10 = _createSuper(ScrollSpy);\n\n function ScrollSpy(element, config) {\n var _this42;\n\n _classCallCheck(this, ScrollSpy);\n\n _this42 = _super10.call(this, element);\n _this42._scrollElement = _this42._element.tagName === 'BODY' ? window : _this42._element;\n _this42._config = _this42._getConfig(config);\n _this42._selector = \"\".concat(_this42._config.target, \" \").concat(SELECTOR_NAV_LINKS, \", \").concat(_this42._config.target, \" \").concat(SELECTOR_LIST_ITEMS, \", \").concat(_this42._config.target, \" .\").concat(CLASS_NAME_DROPDOWN_ITEM);\n _this42._offsets = [];\n _this42._targets = [];\n _this42._activeTarget = null;\n _this42._scrollHeight = 0;\n EventHandler.on(_this42._scrollElement, EVENT_SCROLL, function () {\n return _this42._process();\n });\n\n _this42.refresh();\n\n _this42._process();\n\n return _this42;\n } // Getters\n\n\n _createClass(ScrollSpy, [{\n key: \"refresh\",\n // Public\n value: function refresh() {\n var _this43 = this;\n\n var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n var targets = SelectorEngine.find(this._selector);\n targets.map(function (element) {\n var targetSelector = getSelectorFromElement(element);\n var target = targetSelector ? SelectorEngine.findOne(targetSelector) : null;\n\n if (target) {\n var targetBCR = target.getBoundingClientRect();\n\n if (targetBCR.width || targetBCR.height) {\n return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];\n }\n }\n\n return null;\n }).filter(function (item) {\n return item;\n }).sort(function (a, b) {\n return a[0] - b[0];\n }).forEach(function (item) {\n _this43._offsets.push(item[0]);\n\n _this43._targets.push(item[1]);\n });\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n EventHandler.off(this._scrollElement, EVENT_KEY$2);\n\n _get(_getPrototypeOf(ScrollSpy.prototype), \"dispose\", this).call(this);\n } // Private\n\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$1), Manipulator.getDataAttributes(this._element)), _typeof(config) === 'object' && config ? config : {});\n\n if (typeof config.target !== 'string' && isElement$1(config.target)) {\n var id = config.target.id;\n\n if (!id) {\n id = getUID(NAME$2);\n config.target.id = id;\n }\n\n config.target = \"#\".concat(id);\n }\n\n typeCheckConfig(NAME$2, config, DefaultType$1);\n return config;\n }\n }, {\n key: \"_getScrollTop\",\n value: function _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n }\n }, {\n key: \"_getScrollHeight\",\n value: function _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n }\n }, {\n key: \"_getOffsetHeight\",\n value: function _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n }\n }, {\n key: \"_process\",\n value: function _process() {\n var scrollTop = this._getScrollTop() + this._config.offset;\n\n var scrollHeight = this._getScrollHeight();\n\n var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this._targets[this._targets.length - 1];\n\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n\n return;\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n\n this._clear();\n\n return;\n }\n\n for (var i = this._offsets.length; i--;) {\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n }\n }, {\n key: \"_activate\",\n value: function _activate(target) {\n this._activeTarget = target;\n\n this._clear();\n\n var queries = this._selector.split(',').map(function (selector) {\n return \"\".concat(selector, \"[data-bs-target=\\\"\").concat(target, \"\\\"],\").concat(selector, \"[href=\\\"\").concat(target, \"\\\"]\");\n });\n\n var link = SelectorEngine.findOne(queries.join(','));\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, link.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1);\n link.classList.add(CLASS_NAME_ACTIVE$1);\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE$1);\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP$1).forEach(function (listGroup) {\n // Set triggered links parents as active\n // With both