{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/event_listener.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/dispatcher.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/action_descriptor.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/action.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/binding.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/mutation-observers/dist/element_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/mutation-observers/dist/attribute_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/mutation-observers/dist/string_map_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/multimap/dist/set_operations.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/multimap/dist/multimap.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/multimap/dist/indexed_multimap.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/mutation-observers/dist/token_list_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/mutation-observers/dist/value_list_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/binding_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/value_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/context.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/inheritable_statics.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/blessing.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/module.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/definition.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/class_map.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/string_helpers.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/data_map.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/guide.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/selectors.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/target_set.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/scope.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/scope_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/router.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/schema.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/application.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/class_properties.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/target_properties.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/value_properties.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/core/dist/controller.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/ssr-window/ssr-window.esm.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/dom7/dom7.esm.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/utils/dom.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/utils/get-support.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/utils/get-device.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/utils/get-browser.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/utils/utils.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/modules/resize/resize.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/modules/observer/observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/events/onResize.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/events/onClick.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/events/onScroll.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/events/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/defaults.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/core-class.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/modular.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/events-emitter.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/update/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/update/updateSize.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/translate/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/transition/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/slide/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/loop/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/manipulation/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/classes/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/images/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/images/loadImage.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/virtual/virtual.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/keyboard/keyboard.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/navigation/navigation.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/pagination/pagination.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/scrollbar/scrollbar.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/parallax/parallax.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/zoom/zoom.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/lazy/lazy.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/controller/controller.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/a11y/a11y.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/history/history.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/hash-navigation/hash-navigation.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/effect-fade/effect-fade.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/effect-cube/effect-cube.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/effect-flip/effect-flip.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/esm/components/thumbs/thumbs.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/swiper/swiper-bundle.esm.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@babel/runtime/regenerator/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./app/javascript/images/wood-swatches/dark-brown-wood.png","webpack:///./app/javascript/images/about-image.jpg","webpack:///./app/javascript/images/about-image-2.jpg","webpack:///./app/javascript/images/big-slider-image.jpg","webpack:///./app/javascript/images/cafe.jpg","webpack:///./app/javascript/images/chairs.svg","webpack:///./app/javascript/images/close.svg","webpack:///./app/javascript/images/enlarge.svg","webpack:///./app/javascript/images/facebook-social.svg","webpack:///./app/javascript/images/favicon.svg","webpack:///./app/javascript/images/footer-logo.svg","webpack:///./app/javascript/images/hero.jpg","webpack:///./app/javascript/images/instagram-social.svg","webpack:///./app/javascript/images/left-arrow.svg","webpack:///./app/javascript/images/linkedin-social.svg","webpack:///./app/javascript/images/lm-og-logo.png","webpack:///./app/javascript/images/logo-dark.svg","webpack:///./app/javascript/images/logo-light.svg","webpack:///./app/javascript/images/marker.svg","webpack:///./app/javascript/images/new-colored-logo.svg","webpack:///./app/javascript/images/new-favicon.svg","webpack:///./app/javascript/images/new-white-logo.svg","webpack:///./app/javascript/images/open-graph-image.jpg","webpack:///./app/javascript/images/preview-image.jpg","webpack:///./app/javascript/images/service-image.jpg","webpack:///./app/javascript/images/sofa-image.jpg","webpack:///./app/javascript/images/stone-stairs.jpg","webpack:///./app/javascript/images/stopwatch.svg","webpack:///./app/javascript/images/twitter-social.svg","webpack:///./app/javascript/images/wood.svg","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/event_listener.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/action.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/binding.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/context.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/definition.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/module.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/data_map.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/selectors.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/target_set.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/scope.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/router.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/schema.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/application.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/target_properties.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/node_modules/@stimulus/core/dist/src/controller.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/turbolinks/dist/turbolinks.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-reveal/dist/stimulus-reveal.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/beforeAfterSlider_controller.js","webpack:///./app/javascript/controllers/headerNav_controller.js","webpack:///./app/javascript/controllers/hello_controller.js","webpack:///./app/javascript/controllers/projectGallerySlider_controller.js","webpack:///./app/javascript/controllers/projectSlider_controller.js","webpack:///./app/javascript/controllers/serviceSlider_controller.js","webpack:///./app/javascript/controllers/swatchSlider_controller.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/lightgallery.js/lib/js/lightgallery.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/lightgallery.js/lib/js/lg-utils.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/alpine-turbo-drive-adapter/dist/alpine-turbo-drive-adapter.esm.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/alpinejs/dist/alpine.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/regenerator-runtime/runtime.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./app/javascript/images sync ^\\.\\/.*$","webpack:///./app/javascript/images/wood-swatches/dark-brown-wood.jpg","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/stimulus-lightbox/dist-web/index.js","webpack:///./app/javascript/controllers/index.js","webpack:////home/deploy/lm-interior-wraps/shared/node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./app/javascript/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","EventListener","eventTarget","eventName","eventOptions","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","cacheKey","createEventListener","set","parts","keys","push","join","descriptorPattern","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","match","eventTargetName","window","document","split","options","replace","test","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","StringMapObserver","stringMap","knownAttributeNames","refreshAttribute","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","fetch","del","size","prune","_extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","b","setPrototypeOf","__proto__","__","constructor","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","slice","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","attributeValue","invokeChangedCallbackForValue","valueDescriptors","name_1","undefined","defaultValue","data","Context","controllerConstructor","bindingObserver","dispatcher","valueObserver","initialize","parentElement","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","isArray","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","apply","getOwnStaticObjectPairs","getPrototypeOf","reverse","__spreadArrays","il","arguments","k","a","j","jl","bless","properties","shadowConstructor","extend","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","_newTarget","Reflect","construct","Module","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","ClassMap","getDataKey","getAttributeName","getAttributeNameForKey","capitalize","charAt","toUpperCase","dasherize","_char2","DataMap","setAttribute","removeAttribute","Guide","logger","warnedKeysByObject","warn","warnedKeys","attributeValueContainsToken","TargetSet","targetName","find","targetNames","findTarget","findLegacyTarget","findAll","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","guide","Scope","classes","closest","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","Application","documentElement","console","router","readyState","register","load","head","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","ClassPropertiesBlessing","classDefinition","TargetPropertiesBlessing","targetDefinition","_typeof","obj","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","read","readers","write","writers","propertiesForValueDefinitionPair","_char","defaultValuesByType","valueDescriptorForTokenAndType","typeConstant","Boolean","Number","String","parseValueTypeConstant","number","string","array","JSON","parse","parseFloat","writeJSON","stringify","Controller","blessings","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","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","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","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","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","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","to","nextSource","keysArray","nextIndex","len","nextKey","desc","bindModuleMethods","subKey","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","_temp","support","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","calcBrowser","swiper","resize","resizeHandler","destroyed","initialized","emit","orientationChangeHandler","init","destroy","_extends","source","Observer","attach","WebkitMutationObserver","observerUpdate","characterData","observers","params","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","onTouchStart","touchEventsData","touches","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","preventDefault","formElements","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","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","_defineProperties","prototypes","modular","useParams","instanceParams","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","update","clientWidth","clientHeight","parseInt","isNaN","swiperSize","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","slidesForMargin","slideEl","slideIndex","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","floor","ceil","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","_slide$","paddingTop","paddingBottom","_boxSizing","_slide$2","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","byController","x","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","indexAsNumber","isFinite","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","onTouchMove","onClick","move","end","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","_points$i","wasLocked","lastSlidePosition","addClasses","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","browser","moduleParamName","swiperParams","defaults","passedParams","swipers","containerEl","newParams","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","protoProps","staticProps","_proto","getSlideClasses","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","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","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","enable","disable","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","_swiper$navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","_swiper$navigation2","Pagination","pagination","current","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","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","onEnterKey","a11y","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","click","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","urlOverride","pathArray","URL","part","setHistory","slugify","includes","currentState","state","HashNavigation","onHashCange","newHash","setHash","watchState","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onVisibilityChange","visibilityState","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","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","initial","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","components","hideOnClick","toEdge","fromEdge","isHidden","_swiper$navigation3","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","touchStart","touchEnd","doubleTap","slideChange","checkInView","loadOnTransitionStart","scroll","scrollbarDragMove","notificationClass","afterInit","paginationUpdate","disableOnInteraction","beforeTransitionStart","sliderFirstMove","beforeDestroy","webpackPolyfill","extendStatics","blessControllerConstructor","getFormattedKey","getSelectorForTargetNames","tail","filterElements","defineTargetProperties","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","matchesSelector","mozMatchesSelector","oMatchesSelector","getData","setData","csrfParam","csrfToken","meta","CSRFProtection","xhr","setRequestHeader","refreshCSRFTokens","input","fire","initCustomEvent","Event","defaultPrevented","stopEverything","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","script","ajax","response","responseText","getResponseHeader","status","success","statusText","beforeSend","XMLHttpRequest","OPENED","send","dataType","accept","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","toArray","serializeElement","additionalParam","inputs","disabled","option","selected","checked","encodeURIComponent","form","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","factory","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","charCodeAt","md5blk_array","md51","tmp","lo","hi","substring","rhex","hex","toUtf8","str","unescape","hexToBinaryString","bytes","fromCharCode","SparkMD5","reset","ArrayBuffer","clamp","num","targetArray","sourceArray","byteLength","begin","Uint8Array","appendBinary","contents","_buff","_length","_hash","ret","buff","_finish","getState","setState","hashBinary","first","second","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","classCallCheck","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","root","eventInit","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","upload","messages","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","focus","submitForm","ActiveStorage","Turbolinks","supported","visit","clearCache","setProgressBarDelay","copyObject","defer","throttle","u","uuid","Location","absoluteURL","requestURL","anchor","wrap","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","valueOf","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","notifyApplicationBeforeRequestStart","setProgress","requestStarted","abort","lengthComputable","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","ontimeout","onabort","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","show","visible","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","trickleInterval","setInterval","clearInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","findMetaElementByName","_e","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","clone","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","async","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","replaceChild","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","_t7","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","pageXOffset","pageYOffset","scrollPositionChanged","SnapshotCache","snapshots","put","Visit","performScroll","_t8","adapter","timingMetrics","recordTimingMetric","request","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","_t9","clickBubbled","clickCaptured","view","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","nodeIsVisitable","currentScript","isOpen","_initCloseKeypressListener","_initToggleKeypressListener","isTransitioning","_init","_n","_doInitTransition","_initAwayListener","awayHandler","dataset","transitionEndHandler","_didEndTransition","_transitionSetup","_doStartTransition","hidden","_doCompleteTransition","useTransitionClasses","_transitionClasses","transitionType","_transitionDefaults","transformOrigin","transitionProperty","transitionTimingFunction","before","opacityCache","transformCache","transformOriginCache","webpackContext","req","webpackContextResolve","code","log","containerTarget","prevButtonTarget","nextButtonTarget","1024","burgerButtonTarget","navBarTarget","logoTarget","mainNavTarget","closeButtonTarget","navLogoTarget","outputTarget","imageSlider","imageContainerTarget","contentSlider","contentContainerTarget","swatchCount","swatchContainerTarget","swatchStart","selectionSlider","468","768","1030","1280","previewSlider","previewImageContainerTarget","crossfade","_lgUtils","_lgUtils2","utils","lgData","uid","lgModules","cssEasing","easing","startClass","backdropDuration","hideBarsDelay","useLeft","ariaLabelledby","ariaDescribedby","closable","escKey","keyPress","slideEndAnimatoin","hideControlOnEnd","getCaptionFromTitleOrAlt","appendSubHtmlTo","subHtmlSelectorRelative","preload","showAfterLoad","selectWithin","nextHtml","prevHtml","iframeMaxWidth","download","counter","appendCounterTo","swipeThreshold","enableSwipe","enableDrag","dynamic","dynamicEl","galleryId","supportLegacyBrowser","Plugin","lGalleryOn","lgBusy","hideBartimeout","isTouch","___slide","outer","build","structure","arrow","closeGallery","initialHideBarTimeout","template","list","subHtmlCont","insertAdjacentHTML","setVendor","setTop","doCss","inner","prevScrollTop","wH","lGallery","isVideo","html5","youtube","vimeo","dailymotion","vk","addHtml","currentEle","subHtml","fL","loadContent","rec","_img","_src","_poster","_srcset","_sizes","_html","_alt","_hasPoster","getResponsiveSrc","srcItms","rsWidth","rsSrc","__src","wWidth","poster","alt","responsive","iframe","_isVideo","videoClass","picturefill","_speed","fromTouch","fromThumb","_prevIndex","_time","downloadUrl","arrowDisable","touchPrev","touchNext","goToNextSlide","goToPrevSlide","xValue","yValue","touchMove","startCoords","endCoords","manageSwipeClass","isDraging","mousedown","lguid","err","lightGallery","wrapper","RegExp","customEvent","Listener","_id","composed","Bridge","_classCallCheck","Alpine","version","required","requiredArray","currentArray","isValidVersion","mutateDom","_el$getAttribute","configureEventHandlers","flushAndStopDeferringMutations","_el$getAttribute2","deferMutations","_el$getAttribute3","_x_lookup","_x_currentIfEl","sub","NodeList","global","_createClass","_slicedToArray","_arrayWithHoles","_arr","_d","_s","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","asyncGeneratorStep","gen","_throw","arg","info","_asyncToGenerator","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","minLen","arr2","_defineProperty","ownKeys","enumerableOnly","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","isTesting","checkedAttrLooseCompare","valueA","valueB","warnIfMalformedTemplate","directive","childElementCount","camelCase","subject","walk","firstElementChild","debounce","func","wait","later","expression","tryCatch","cb","_ref","saferEval","dataContext","additionalHelperVariables","saferEvalNoReturn","AsyncFunction","mark","_callee","_context","methodReference","xAttrRE","isXAttr","replaceAtAndColonWithStandardSyntax","getXAttrs","component","directives","parseHtmlAttribute","spreadDirective","spreadObject","$data","entries","_ref3","_ref4","directiveOrder","typeA","typeB","sortDirectives","_ref5","normalizedName","typeMatch","valueMatch","modifiers","startsWith","convertClassStringToArray","filterFn","transitionIn","forceSkip","__x_transition","showAttr","settingBothSidesOfTransition","transitionHelperIn","transitionClassesIn","transitionOut","transitionHelperOut","transitionClassesOut","showCallback","transitionHelper","modifierValue","hideCallback","fallback","rawValue","isNumeric","hook1","hook2","styleValues","noModifiers","transitionOpacity","transitionScale","stages","during","cleanup","ensureStringExpression","evaluateReturnExpression","transitionClasses","classesDuring","classesStart","classesEnd","originalClasses","__x_original_classes","_el$classList3","_el$classList4","_el$classList5","_el$classList6","finish","nextFrame","animationDuration","called","handleForDirective","templateEl","initialUpdate","extraVars","iteratorNames","parseForExpression","ifAttribute","evaluateItemsAndReturnEmptyIfXIfIsPresentAndFalseOnElement","currentEl","item","iterationScopeVariables","scopeVariables","collection","getIterationScopeVariables","currentKey","bindKeyAttribute","generateKeyForIteration","__x_for_key","tmpNextEl","lookAheadForMatchingKeyedElementAndMoveItIfFound","__x_for","updateElements","addElementInLoopAfterCurrentEl","initializeElements","nextElementFromOldLoop","_loop","nextElementFromOldLoopImmutable","nextSibling","removeAnyLeftOverElementsFromPreviousUpdate","forIteratorRE","inMatch","iteratorMatch","handleAttributeBindingDirective","attrType","ignoreFocusedForValueBinding","isSameNode","arrayWrappedValue","updateSelect","_originalClasses","newClasses","isBooleanAttr","setIfChanged","handleTextDirective","output","handleHtmlDirective","handleShowDirective","__x_is_shown","removeProperty","showDirectiveLastElement","executeAndClearRemainingShowDirectiveStack","showDirectiveStack","handleIfDirective","expressionResult","elementHasAlreadyBeenAdded","__x_inserted_me","registerListener","_handler2","listenerTarget","runListenerHandler","isKeyEvent","isListeningForASpecificKeyThatHasntBeenPressed","nextModifier","evaluateCommandExpression","keyModifiers","debounceIndex","keyToModifier","selectedSystemKeyModifiers","generateModelAssignmentFunction","currentValue","newValue","safeParseNumber","multiple","selectedOptions","ObjectDefineProperty","_isExtensible","isExtensible","_getOwnPropertyDescriptor","_preventExtensions","preventExtensions","_Array$prototype","ArrayConcat","isUndefined","isFunction","proxyToValueMap","registerProxy","proxy","unwrap","replicaOrAny","wrapValue","membrane","valueIsObservable","getProxy","lockShadowTarget","shadowTarget","originalTarget","wrapDescriptor","ReactiveProxyHandler","valueObserved","valueMutated","argArray","newTarget","shadowIsExtensible","targetIsExtensible","shadowDescriptor","originalDescriptor","unwrapDescriptor","wrapReadOnlyValue","getReadOnlyProxy","ReadOnlyHandler","createShadowTarget","ObjectDotPrototype","defaultValueIsObservable","defaultValueObserved","defaultValueMutated","defaultValueDistortion","getValue","unwrapProxy","_start","ReactiveMembrane","valueDistortion","objectGraph","unwrappedValue","distorted","getReactiveState","readOnly","reactive","distortedValue","reactiveState","reactiveHandler","readOnlyHandler","Component","componentForClone","dataAttr","dataExpression","initExpression","dataExtras","canonicalComponentElementReference","magicProperties","_ref6","_ref7","unobservedData","getUnobservedData","initReturnedCallback","_this$wrapDataInObser","wrapDataInObservable","$refs","getRefsProxy","nextTickStack","$nextTick","watchers","$watch","_ref8","_ref9","onBeforeComponentInitializeds","pauseReactivity","listenForNewElementsToInitialize","onComponentInitializeds","observable","unwrappedData","copy","updateDom","mutationCallback","fullDotNotationKey","dotNotationParts","comparisonData","initializeComponentCallback","__x","rootEl","_this3","walkAndSkipNestedComponents","initializeElement","executeAndClearNextTickStack","shouldRegisterListeners","registerListeners","resolveBoundAttributes","_this4","updateElement","_this5","promiseChain","promise","finishElement","_this6","_ref10","listenerExpression","rightSideOfExpression","registerModelListener","_this7","_ref11","$dispatch","getDispatchFunction","_this8","targetNode","closestParentComponent","xAttr","rawData","pauseMutationObserver","_callee2","_this9","_context2","discoverComponents","initializeComponent","discoverUninitializedComponents","listenForNewUninitializedComponentsAtRunTime","rootEls","_this10","newEl","addMagicProperty","onComponentInitialized","onBeforeComponentInitialized","deferLoadingAlpine","define","originalModule","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","__webpack_amd_options__","_objectSpread","_defineProperty2","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","_class","_Controller","_inherits","defaultOptions","optionsValue","require","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","Lightbox","RevealController"],"mappings":"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","file":"js/application-bb10a70ca3b533dbcd40.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 = 60);\n","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings[\"delete\"](binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: false,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: false,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n Dispatcher.prototype.cacheKey = function (eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\" + (eventOptions[key] ? \"\" : \"!\") + key);\n });\n return parts.join(\":\");\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 768 9 98\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nexport function parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n var _a;\n\n return Object.assign(options, (_a = {}, _a[token.replace(/^!/, \"\")] = !/^!/.test(token), _a));\n }, {});\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseActionDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: false,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"input\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function get() {\n return this.action.index;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function get() {\n return this.action.eventTarget;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventOptions\", {\n get: function get() {\n return this.action.eventOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function get() {\n return this.action.eventName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: false,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function get() {\n return this.action.methodName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements[\"delete\"](element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function get() {\n return this.elementObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function get() {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: false,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function get() {\n return this.elementObserver.started;\n },\n enumerable: false,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","var StringMapObserver =\n/** @class */\nfunction () {\n function StringMapObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n StringMapObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true\n });\n this.refresh();\n }\n };\n\n StringMapObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n StringMapObserver.prototype.refresh = function () {\n if (this.started) {\n for (var _i = 0, _a = this.knownAttributeNames; _i < _a.length; _i++) {\n var attributeName = _a[_i];\n this.refreshAttribute(attributeName);\n }\n }\n }; // Mutation record processing\n\n\n StringMapObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n StringMapObserver.prototype.processMutation = function (mutation) {\n var attributeName = mutation.attributeName;\n\n if (attributeName) {\n this.refreshAttribute(attributeName);\n }\n }; // State tracking\n\n\n StringMapObserver.prototype.refreshAttribute = function (attributeName) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n\n var value = this.element.getAttribute(attributeName);\n\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key);\n }\n\n if (value == null) {\n this.stringMap[\"delete\"](attributeName);\n this.stringMapKeyRemoved(key, attributeName);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n };\n\n StringMapObserver.prototype.stringMapKeyAdded = function (key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n };\n\n StringMapObserver.prototype.stringMapValueChanged = function (value, key) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key);\n }\n };\n\n StringMapObserver.prototype.stringMapKeyRemoved = function (key, attributeName) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName);\n }\n };\n\n Object.defineProperty(StringMapObserver.prototype, \"knownAttributeNames\", {\n get: function get() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"currentAttributeNames\", {\n get: function get() {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"recordedAttributeNames\", {\n get: function get() {\n return Array.from(this.stringMap.keys());\n },\n enumerable: false,\n configurable: true\n });\n return StringMapObserver;\n}();\n\nexport { StringMapObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key)[\"delete\"](value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map[\"delete\"](key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: false,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype[\"delete\"] = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function get() {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: false,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype[\"delete\"] = function (key, value) {\n _super.prototype[\"delete\"].call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function get() {\n return this.attributeObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function get() {\n return this.attributeObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.attributeObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement[\"delete\"](token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function get() {\n return this.tokenListObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function get() {\n return this.tokenListObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.tokenListObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element)[\"delete\"](token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function get() {\n return this.schema.actionAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function get() {\n return this.context.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: false,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction[\"delete\"](action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { StringMapObserver } from \"@stimulus/mutation-observers\";\n\nvar ValueObserver =\n/** @class */\nfunction () {\n function ValueObserver(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n\n ValueObserver.prototype.start = function () {\n this.stringMapObserver.start();\n };\n\n ValueObserver.prototype.stop = function () {\n this.stringMapObserver.stop();\n };\n\n Object.defineProperty(ValueObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueObserver.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n }); // String map observer delegate\n\n ValueObserver.prototype.getStringMapKeyForAttribute = function (attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n };\n\n ValueObserver.prototype.stringMapValueChanged = function (attributeValue, name) {\n this.invokeChangedCallbackForValue(name);\n };\n\n ValueObserver.prototype.invokeChangedCallbacksForDefaultValues = function () {\n for (var _i = 0, _a = this.valueDescriptors; _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b.key,\n name_1 = _b.name,\n defaultValue = _b.defaultValue;\n\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallbackForValue(name_1);\n }\n }\n };\n\n ValueObserver.prototype.invokeChangedCallbackForValue = function (name) {\n var methodName = name + \"Changed\";\n var method = this.receiver[methodName];\n\n if (typeof method == \"function\") {\n var value = this.receiver[name];\n method.call(this.receiver, value);\n }\n };\n\n Object.defineProperty(ValueObserver.prototype, \"valueDescriptors\", {\n get: function get() {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n },\n enumerable: false,\n configurable: true\n });\n return ValueObserver;\n}();\n\nexport { ValueObserver };","import { BindingObserver } from \"./binding_observer\";\nimport { ValueObserver } from \"./value_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n this.valueObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.valueObserver.stop();\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function get() {\n return this.module.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function get() {\n return this.module.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function get() {\n return this.application.dispatcher;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function get() {\n return this.element.parentElement;\n },\n enumerable: false,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","export function readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\nexport function readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors.reverse();\n}\n\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { readInheritableStaticArrayValues } from \"./inheritable_statics\";\n/** @hidden */\n\nexport function bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\n\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\n\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n\n return blessedProperties;\n }, {});\n}\n\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var _a;\n\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n\n if (descriptor) {\n Object.assign(shadowProperties, (_a = {}, _a[key] = descriptor, _a));\n }\n\n return shadowProperties;\n }, {});\n}\n\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n\n return descriptor;\n }\n}\n\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return __spreadArrays(Object.getOwnPropertyNames(object), Object.getOwnPropertySymbols(object));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n var _newTarget = this && this instanceof extended ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(extended, _super);\n\n function extended() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return extended;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function get() {\n return this.definition.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function get() {\n return this.definition.controllerConstructor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function get() {\n return Array.from(this.connectedContexts);\n },\n enumerable: false,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts[\"delete\"](context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","import { bless } from \"./blessing\";\n/** @hidden */\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}","var ClassMap =\n/** @class */\nfunction () {\n function ClassMap(scope) {\n this.scope = scope;\n }\n\n ClassMap.prototype.has = function (name) {\n return this.data.has(this.getDataKey(name));\n };\n\n ClassMap.prototype.get = function (name) {\n return this.data.get(this.getDataKey(name));\n };\n\n ClassMap.prototype.getAttributeName = function (name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n };\n\n ClassMap.prototype.getDataKey = function (name) {\n return name + \"-class\";\n };\n\n Object.defineProperty(ClassMap.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n return ClassMap;\n}();\n\nexport { ClassMap };","export function camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, _char) {\n return _char.toUpperCase();\n });\n}\nexport function capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nexport function dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, _char2) {\n return \"-\" + _char2.toLowerCase();\n });\n}","import { dasherize } from \"./string_helpers\";\n\nvar DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n };\n\n DataMap.prototype.set = function (key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n };\n\n DataMap.prototype[\"delete\"] = function (key) {\n if (this.has(key)) {\n var name_1 = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name_1);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getAttributeNameForKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };","var Guide =\n/** @class */\nfunction () {\n function Guide(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n\n Guide.prototype.warn = function (object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n };\n\n return Guide;\n}();\n\nexport { Guide };","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function get() {\n return this.scope.schema;\n },\n enumerable: false,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var _this = this;\n\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n return targetNames.reduce(function (target, targetName) {\n return target || _this.findTarget(targetName) || _this.findLegacyTarget(targetName);\n }, undefined);\n };\n\n TargetSet.prototype.findAll = function () {\n var _this = this;\n\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n return targetNames.reduce(function (targets, targetName) {\n return __spreadArrays(targets, _this.findAllTargets(targetName), _this.findAllLegacyTargets(targetName));\n }, []);\n };\n\n TargetSet.prototype.findTarget = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAllTargets = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var attributeName = \"data-\" + this.identifier + \"-target\";\n return attributeValueContainsToken(attributeName, targetName);\n };\n\n TargetSet.prototype.findLegacyTarget = function (targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n };\n\n TargetSet.prototype.findAllLegacyTargets = function (targetName) {\n var _this = this;\n\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this.deprecate(element, targetName);\n });\n };\n\n TargetSet.prototype.getLegacySelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n TargetSet.prototype.deprecate = function (element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n this.guide.warn(element, \"target:\" + targetName, \"Please replace \" + attributeName + \"=\\\"\" + identifier + \".\" + targetName + \"\\\" with data-\" + identifier + \"-target=\\\"\" + targetName + \"\\\". \" + (\"The \" + attributeName + \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n\n return element;\n };\n\n Object.defineProperty(TargetSet.prototype, \"guide\", {\n get: function get() {\n return this.scope.guide;\n },\n enumerable: false,\n configurable: true\n });\n return TargetSet;\n}();\n\nexport { TargetSet };","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { ClassMap } from \"./class_map\";\nimport { DataMap } from \"./data_map\";\nimport { Guide } from \"./guide\";\nimport { attributeValueContainsToken } from \"./selectors\";\nimport { TargetSet } from \"./target_set\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, element, identifier, logger) {\n var _this = this;\n\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n\n this.containsElement = function (element) {\n return element.closest(_this.controllerSelector) === _this.element;\n };\n\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n };\n\n Scope.prototype.findAllElements = function (selector) {\n return __spreadArrays(this.element.matches(selector) ? [this.element] : [], this.queryElements(selector).filter(this.containsElement));\n };\n\n Scope.prototype.queryElements = function (selector) {\n return Array.from(this.element.querySelectorAll(selector));\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: false,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { Scope } from \"./scope\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function get() {\n return this.application.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"logger\", {\n get: function get() {\n return this.application.logger;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.createScopeForElementAndIdentifier = function (element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n };\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier[\"delete\"](scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier[\"delete\"](module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.logger = console;\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.dispatcher.start();\n this.router.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.dispatcher.stop();\n this.router.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : __spreadArrays([head], rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : __spreadArrays([head], rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: false,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\n\nexport function ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\n\nfunction propertiesForClassDefinition(key) {\n var _a;\n\n var name = key + \"Class\";\n return _a = {}, _a[name] = {\n get: function get() {\n var classes = this.classes;\n\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\" + attribute + \"\\\"\");\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function get() {\n return this.classes.has(key);\n }\n }, _a;\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\n\nexport function TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\n\nfunction propertiesForTargetDefinition(name) {\n var _a;\n\n return _a = {}, _a[name + \"Target\"] = {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function get() {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function get() {\n return this.targets.has(name);\n }\n }, _a;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { readInheritableStaticObjectPairs } from \"./inheritable_statics\";\nimport { camelize, capitalize, dasherize } from \"./string_helpers\";\n/** @hidden */\n\nexport function ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function get() {\n var _this = this;\n\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var _a;\n\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n\n var attributeName = _this.data.getAttributeNameForKey(valueDescriptor.key);\n\n return Object.assign(result, (_a = {}, _a[attributeName] = valueDescriptor, _a));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n/** @hidden */\n\nexport function propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _a;\n\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var type = definition.type,\n key = definition.key,\n name = definition.name;\n var read = readers[type],\n write = writers[type] || writers[\"default\"];\n return _a = {}, _a[name] = {\n get: function get() {\n var value = this.data.get(key);\n\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function set(value) {\n if (value === undefined) {\n this.data[\"delete\"](key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function get() {\n return this.data.has(key);\n }\n }, _a;\n}\n\nfunction parseValueDefinitionPair(_a) {\n var token = _a[0],\n typeConstant = _a[1];\n var type = parseValueTypeConstant(typeConstant);\n return valueDescriptorForTokenAndType(token, type);\n}\n\nfunction parseValueTypeConstant(typeConstant) {\n switch (typeConstant) {\n case Array:\n return \"array\";\n\n case Boolean:\n return \"boolean\";\n\n case Number:\n return \"number\";\n\n case Object:\n return \"object\";\n\n case String:\n return \"string\";\n }\n\n throw new Error(\"Unknown value type constant \\\"\" + typeConstant + \"\\\"\");\n}\n\nfunction valueDescriptorForTokenAndType(token, type) {\n var key = dasherize(token) + \"-value\";\n return {\n type: type,\n key: key,\n name: camelize(key),\n\n get defaultValue() {\n return defaultValuesByType[type];\n }\n\n };\n}\n\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n\n \"boolean\": false,\n number: 0,\n\n get object() {\n return {};\n },\n\n string: \"\"\n};\nvar readers = {\n array: function array(value) {\n var array = JSON.parse(value);\n\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n\n return array;\n },\n \"boolean\": function boolean(value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function number(value) {\n return parseFloat(value);\n },\n object: function object(value) {\n var object = JSON.parse(value);\n\n if (object === null || _typeof(object) != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n\n return object;\n },\n string: function string(value) {\n return value;\n }\n};\nvar writers = {\n \"default\": writeString,\n array: writeJSON,\n object: writeJSON\n};\n\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\n\nfunction writeString(value) {\n return \"\" + value;\n}","import { ClassPropertiesBlessing } from \"./class_properties\";\nimport { TargetPropertiesBlessing } from \"./target_properties\";\nimport { ValuePropertiesBlessing } from \"./value_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function get() {\n return this.context.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function get() {\n return this.scope.targets;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"classes\", {\n get: function get() {\n return this.scope.classes;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\n Controller.targets = [];\n Controller.values = {};\n return Controller;\n}();\n\nexport { Controller };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\n\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n\n if (src === void 0) {\n src = {};\n }\n\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\n\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\n};\n\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n/* eslint-disable no-proto */\n\n\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\n\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = Methods[methodName];\n});\nexport default $;","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 { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return _typeof(o) === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow(); // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends(_extends({}, Observer), {}, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function slideTo(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + _typeof(index) + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (_typeof(slidesIndexes) === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n return;\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$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 var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n nested: false,\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/* eslint no-param-reassign: \"off\" */\n\n\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el; // Swiper Instance\n\n var swiper = this;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (_typeof(moduleParams) !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (_typeof(params[moduleParamName]) === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Find el\n\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper; // Find Wrapper\n\n var $wrapperEl;\n\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n $wrapperEl.children = function (options) {\n return $el.children(options);\n };\n } else {\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n } // Extend Swiper\n\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n swiper.emit('_slideClass', slideEl, classNames);\n });\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.init = function init() {\n var swiper = this;\n if (swiper.initialized) return;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n 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 { getWindow } from 'ssr-window';\nimport { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n var window = getWindow();\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = window.getComputedStyle(slide[0], null);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n } else {\n var height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n\n var _boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (_boxSizing && _boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n var _slide$2 = slide[0],\n clientHeight = _slide$2.clientHeight,\n offsetHeight = _slide$2.offsetHeight;\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom + (offsetHeight - clientHeight);\n }\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({\n marginLeft: spaceBetween + \"px\"\n });else slides.filter(slidesForMargin).css({\n marginRight: spaceBetween + \"px\"\n });\n } else slides.filter(slidesForMargin).css({\n marginBottom: spaceBetween + \"px\"\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n } // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoints(breakpoints) {\n var window = getWindow(); // Get breakpoint for window width\n\n if (!breakpoints) return undefined;\n var breakpoint = false;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = window.innerHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","export default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device;\n var suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n\n if (rtl) {\n suffixes.push('rtl');\n }\n\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n\n if (device.android) {\n suffixes.push('android');\n }\n\n if (device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","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(_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\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 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 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 + 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] <= 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};","import { 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 swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n var swiper = this;\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 } from '../../utils/utils';\nvar Navigation = {\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n click: function click(swiper, e) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if (swiper.params.navigation.hideOnClick && !$(e.target).is($prevEl) && !$(e.target).is($nextEl)) {\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","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 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(\".\" + params.currentClass).text(params.formatFractionCurrent(current + 1));\n $el.find(\".\" + 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(\".\" + 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 $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\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 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(\".\" + params.bulletClass.replace(/ /g, '.'));\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 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', \".\" + params.bulletClass.replace(/ /g, '.'), 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 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', \".\" + params.bulletClass.replace(/ /g, '.'));\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 click: function click(swiper, e) {\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(e.target).hasClass(swiper.params.pagination.bulletClass)) {\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 } 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 scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\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\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\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 if (!swiper.params.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n var params = swiper.params.scrollbar;\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 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 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 $ 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 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) 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;\n offsetY = gesture.$slideEl.offset().top;\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) 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.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 if (inView) {\n swiper.lazy.load();\n $scrollElement.off('scroll', swiper.lazy.checkInViewOnLoad);\n } else if (!swiper.lazy.scrollHandlerAttached) {\n swiper.lazy.scrollHandlerAttached = true;\n $scrollElement.on('scroll', swiper.lazy.checkInViewOnLoad);\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 resize: function resize(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove: function scrollbarDragMove(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 } 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-role-description', 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 onEnterKey: function onEnterKey(e) {\n var swiper = this;\n var params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\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(\".\" + swiper.params.pagination.bulletClass.replace(/ /g, '.'))) {\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;\n swiper.a11y.addElId($wrapperEl, wrapperId);\n\n if (swiper.params.autoplay && swiper.params.autoplay.enabled) {\n live = 'off';\n } else {\n live = 'polite';\n }\n\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), 'group');\n swiper.slides.each(function (slideEl) {\n var $slideEl = $(slideEl);\n swiper.a11y.addElLabel($slideEl, $slideEl.index() + 1 + \" / \" + swiper.slides.length);\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.onEnterKey);\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.onEnterKey);\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', \".\" + swiper.params.pagination.bulletClass.replace(/ /g, '.'), swiper.a11y.onEnterKey);\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.onEnterKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\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', \".\" + swiper.params.pagination.bulletClass.replace(/ /g, '.'), swiper.a11y.onEnterKey);\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 containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends(_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 (!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 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: function transitionEnd(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: function transitionEnd(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 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends(_extends({}, Autoplay), {}, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { 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 if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;else newThumbsIndex = prevThumbsIndex;\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) {\n 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.4.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2020 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: December 9, 2020\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 = require(\"regenerator-runtime\");\n","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","export default __webpack_public_path__ + \"media/images/wood-swatches/dark-brown-wood-5b1b271fa58c4a0f6b4a15f3a1b22fa4.png\";","export default __webpack_public_path__ + \"media/images/about-image-4d53de243c522cded9f6a9bc86c24cf0.jpg\";","export default __webpack_public_path__ + \"media/images/about-image-2-1f48399ff5d9cdbac8578826618738ba.jpg\";","export default __webpack_public_path__ + \"media/images/big-slider-image-e77339fe62d309943b843d247c1dfb4a.jpg\";","export default __webpack_public_path__ + \"media/images/cafe-5fb33c72f745ea199c4b80b283f9149b.jpg\";","export default __webpack_public_path__ + \"media/images/chairs-f171498d72b35d705c9f93056a729962.svg\";","export default __webpack_public_path__ + \"media/images/close-3955c554ca8e759a8d3c6b1cfaad3d7e.svg\";","export default __webpack_public_path__ + \"media/images/enlarge-8037d035c749c5e0ce0db83825ef6388.svg\";","export default __webpack_public_path__ + \"media/images/facebook-social-cf1e7a9b214296750cec365d63b44750.svg\";","export default __webpack_public_path__ + \"media/images/favicon-b7ff90356a4d43861b46eb3183dbb0d3.svg\";","export default __webpack_public_path__ + \"media/images/footer-logo-3279d964b0c90df42eb31d90dc42c40c.svg\";","export default __webpack_public_path__ + \"media/images/hero-13d696180d0ac449fad18aad5c13c436.jpg\";","export default __webpack_public_path__ + \"media/images/instagram-social-28459038a429affa78ce3c4737018af1.svg\";","export default __webpack_public_path__ + \"media/images/left-arrow-8188ac0eade45caedb98735047060965.svg\";","export default __webpack_public_path__ + \"media/images/linkedin-social-605c8e93bf419a00573f310d156ce3bf.svg\";","export default __webpack_public_path__ + \"media/images/lm-og-logo-ff4133ac92667d2d8de7ce58085a4481.png\";","export default __webpack_public_path__ + \"media/images/logo-dark-8f0609eab8def3eda843bb71ee453174.svg\";","export default __webpack_public_path__ + \"media/images/logo-light-93994b46286e249ae2810d02b653d789.svg\";","export default __webpack_public_path__ + \"media/images/marker-7dbd3b2dafcfbe5184af93e5952ee3da.svg\";","export default __webpack_public_path__ + \"media/images/new-colored-logo-87deb7a540acda165f91e9b448586403.svg\";","export default __webpack_public_path__ + \"media/images/new-favicon-1f7f56de8ac7e4a2b6918b5df842b8dd.svg\";","export default __webpack_public_path__ + \"media/images/new-white-logo-f40a0d30cb862beb8a1469da0e4436c5.svg\";","export default __webpack_public_path__ + \"media/images/open-graph-image-82e3eeeb9e7b27eb58ce4d3b1adb7d24.jpg\";","export default __webpack_public_path__ + \"media/images/preview-image-39fa851038e19a4cb47ca3bba639b5b5.jpg\";","export default __webpack_public_path__ + \"media/images/service-image-df83cdb02b3e77f8fbe446005ee47b2f.jpg\";","export default __webpack_public_path__ + \"media/images/sofa-image-023c88ef9f21c6b6c9c731937bd2055e.jpg\";","export default __webpack_public_path__ + \"media/images/stone-stairs-5f3f220b816551f19a3466b406bd5513.jpg\";","export default __webpack_public_path__ + \"media/images/stopwatch-cef78f25109e0c37cdfb2fd8875b8a93.svg\";","export default __webpack_public_path__ + \"media/images/twitter-social-b3d31e87635b8ababcaf5278b71a4e76.svg\";","export default __webpack_public_path__ + \"media/images/wood-52dd83a0d10b254a308fb42457284979.svg\";","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, false);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, false);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings[\"delete\"](binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: true,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: true,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName;\n return this.fetchEventListener(eventTarget, eventName);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var eventListener = eventListenerMap.get(eventName);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName);\n eventListenerMap.set(eventName, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName) {\n var eventListener = new EventListener(eventTarget, eventName);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 76\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#(.+))?$/;\nexport function parseDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: true,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"change\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"change\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function get() {\n return this.action.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function get() {\n return this.action.eventTarget;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function get() {\n return this.action.eventName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return true;\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function get() {\n return this.action.methodName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements[\"delete\"](element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function get() {\n return this.elementObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function get() {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: true,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function get() {\n return this.elementObserver.started;\n },\n enumerable: true,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key)[\"delete\"](value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map[\"delete\"](key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: true,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype[\"delete\"] = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function get() {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: true,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype[\"delete\"] = function (key, value) {\n _super.prototype[\"delete\"].call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function get() {\n return this.attributeObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function get() {\n return this.attributeObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.attributeObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement[\"delete\"](token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function get() {\n return this.tokenListObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function get() {\n return this.tokenListObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.tokenListObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element)[\"delete\"](token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function get() {\n return this.schema.actionAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function get() {\n return this.context.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: true,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction[\"delete\"](action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { BindingObserver } from \"./binding_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function get() {\n return this.module.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function get() {\n return this.module.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function get() {\n return this.application.dispatcher;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function get() {\n return this.element.parentElement;\n },\n enumerable: true,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n/** @hidden */\n\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: blessControllerConstructor(definition.controllerConstructor)\n };\n}\n\nfunction blessControllerConstructor(controllerConstructor) {\n var constructor = extend(controllerConstructor);\n constructor.bless();\n return constructor;\n}\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function Controller() {\n var _newTarget = this && this instanceof Controller ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n Controller.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: Controller\n }\n });\n Reflect.setPrototypeOf(Controller, constructor);\n return Controller;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(Controller, _super);\n\n function Controller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return Controller;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function get() {\n return this.definition.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function get() {\n return this.definition.controllerConstructor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function get() {\n return Array.from(this.connectedContexts);\n },\n enumerable: true,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts[\"delete\"](context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","var DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n key = this.getFormattedKey(key);\n return this.element.getAttribute(key);\n };\n\n DataMap.prototype.set = function (key, value) {\n key = this.getFormattedKey(key);\n this.element.setAttribute(key, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n key = this.getFormattedKey(key);\n return this.element.hasAttribute(key);\n };\n\n DataMap.prototype[\"delete\"] = function (key) {\n if (this.has(key)) {\n key = this.getFormattedKey(key);\n this.element.removeAttribute(key);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getFormattedKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, _char) {\n return \"-\" + _char.toLowerCase();\n });\n}","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","import { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function get() {\n return this.scope.schema;\n },\n enumerable: true,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAll = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetNames = function (targetNames) {\n var _this = this;\n\n return targetNames.map(function (targetName) {\n return _this.getSelectorForTargetName(targetName);\n }).join(\", \");\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n return TargetSet;\n}();\n\nexport { TargetSet };","import { DataMap } from \"./data_map\";\nimport { TargetSet } from \"./target_set\";\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, identifier, element) {\n this.schema = schema;\n this.identifier = identifier;\n this.element = element;\n this.targets = new TargetSet(this);\n this.data = new DataMap(this);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.findAllElements(selector)[0];\n };\n\n Scope.prototype.findAllElements = function (selector) {\n var head = this.element.matches(selector) ? [this.element] : [];\n var tail = this.filterElements(Array.from(this.element.querySelectorAll(selector)));\n return head.concat(tail);\n };\n\n Scope.prototype.filterElements = function (elements) {\n var _this = this;\n\n return elements.filter(function (element) {\n return _this.containsElement(element);\n });\n };\n\n Scope.prototype.containsElement = function (element) {\n return element.closest(this.controllerSelector) === this.element;\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: true,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { Scope } from \"./scope\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = new Scope(this.schema, identifier, element);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function get() {\n return this.application.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier[\"delete\"](scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier[\"delete\"](module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.router.start();\n this.dispatcher.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.router.stop();\n this.dispatcher.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: true,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n console.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","/** @hidden */\nexport function defineTargetProperties(constructor) {\n var prototype = constructor.prototype;\n var targetNames = getTargetNamesForConstructor(constructor);\n targetNames.forEach(function (name) {\n var _a;\n\n return defineLinkedProperties(prototype, (_a = {}, _a[name + \"Target\"] = {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function get() {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function get() {\n return this.targets.has(name);\n }\n }, _a));\n });\n}\n\nfunction getTargetNamesForConstructor(constructor) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (targetNames, constructor) {\n getOwnTargetNamesForConstructor(constructor).forEach(function (name) {\n return targetNames.add(name);\n });\n return targetNames;\n }, new Set()));\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors;\n}\n\nfunction getOwnTargetNamesForConstructor(constructor) {\n var definition = constructor[\"targets\"];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction defineLinkedProperties(object, properties) {\n Object.keys(properties).forEach(function (name) {\n if (!(name in object)) {\n var descriptor = properties[name];\n Object.defineProperty(object, name, descriptor);\n }\n });\n}\n\nfunction capitalize(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}","import { defineTargetProperties } from \"./target_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Controller.bless = function () {\n defineTargetProperties(this);\n };\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function get() {\n return this.context.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function get() {\n return this.scope.targets;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: true,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.targets = [];\n return Controller;\n}();\n\nexport { Controller };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n CSRFProtection(xhr);\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm[\"delete\"](form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function () {\n var t = this;\n (function () {\n (function () {\n this.Turbolinks = {\n supported: function () {\n return null != window.history.pushState && null != window.requestAnimationFrame && null != window.addEventListener;\n }(),\n visit: function visit(t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function clearCache() {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function setProgressBarDelay(t) {\n return e.controller.setProgressBarDelay(t);\n }\n };\n }).call(this);\n }).call(t);\n var e = t.Turbolinks;\n (function () {\n (function () {\n var t,\n r,\n n,\n o = [].slice;\n e.copyObject = function (t) {\n var e, r, n;\n r = {};\n\n for (e in t) {\n n = t[e], r[e] = n;\n }\n\n return r;\n }, e.closest = function (e, r) {\n return t.call(e, r);\n }, t = function () {\n var t, e;\n return t = document.documentElement, null != (e = t.closest) ? e : function (t) {\n var e;\n\n for (e = this; e;) {\n if (e.nodeType === Node.ELEMENT_NODE && r.call(e, t)) return e;\n e = e.parentNode;\n }\n };\n }(), e.defer = function (t) {\n return setTimeout(t, 1);\n }, e.throttle = function (t) {\n var e;\n return e = null, function () {\n var r;\n return r = 1 <= arguments.length ? o.call(arguments, 0) : [], null != e ? e : e = requestAnimationFrame(function (n) {\n return function () {\n return e = null, t.apply(n, r);\n };\n }(this));\n };\n }, e.dispatch = function (t, e) {\n var r, o, i, s, a, u;\n return a = null != e ? e : {}, u = a.target, r = a.cancelable, o = a.data, i = document.createEvent(\"Events\"), i.initEvent(t, !0, r === !0), i.data = null != o ? o : {}, i.cancelable && !n && (s = i.preventDefault, i.preventDefault = function () {\n return this.defaultPrevented || Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n }\n }), s.call(this);\n }), (null != u ? u : document).dispatchEvent(i), i;\n }, n = function () {\n var t;\n return t = document.createEvent(\"Events\"), t.initEvent(\"test\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }(), e.match = function (t, e) {\n return r.call(t, e);\n }, r = function () {\n var t, e, r, n;\n return t = document.documentElement, null != (e = null != (r = null != (n = t.matchesSelector) ? n : t.webkitMatchesSelector) ? r : t.msMatchesSelector) ? e : t.mozMatchesSelector;\n }(), e.uuid = function () {\n var t, e, r;\n\n for (r = \"\", t = e = 1; 36 >= e; t = ++e) {\n r += 9 === t || 14 === t || 19 === t || 24 === t ? \"-\" : 15 === t ? \"4\" : 20 === t ? (Math.floor(4 * Math.random()) + 8).toString(16) : Math.floor(15 * Math.random()).toString(16);\n }\n\n return r;\n };\n }).call(this), function () {\n e.Location = function () {\n function t(t) {\n var e, r;\n null == t && (t = \"\"), r = document.createElement(\"a\"), r.href = t.toString(), this.absoluteURL = r.href, e = r.hash.length, 2 > e ? this.requestURL = this.absoluteURL : (this.requestURL = this.absoluteURL.slice(0, -e), this.anchor = r.hash.slice(1));\n }\n\n var e, r, n, o;\n return t.wrap = function (t) {\n return t instanceof this ? t : new this(t);\n }, t.prototype.getOrigin = function () {\n return this.absoluteURL.split(\"/\", 3).join(\"/\");\n }, t.prototype.getPath = function () {\n var t, e;\n return null != (t = null != (e = this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/)) ? e[1] : void 0) ? t : \"/\";\n }, t.prototype.getPathComponents = function () {\n return this.getPath().split(\"/\").slice(1);\n }, t.prototype.getLastPathComponent = function () {\n return this.getPathComponents().slice(-1)[0];\n }, t.prototype.getExtension = function () {\n var t, e;\n return null != (t = null != (e = this.getLastPathComponent().match(/\\.[^.]*$/)) ? e[0] : void 0) ? t : \"\";\n }, t.prototype.isHTML = function () {\n return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/);\n }, t.prototype.isPrefixedBy = function (t) {\n var e;\n return e = r(t), this.isEqualTo(t) || o(this.absoluteURL, e);\n }, t.prototype.isEqualTo = function (t) {\n return this.absoluteURL === (null != t ? t.absoluteURL : void 0);\n }, t.prototype.toCacheKey = function () {\n return this.requestURL;\n }, t.prototype.toJSON = function () {\n return this.absoluteURL;\n }, t.prototype.toString = function () {\n return this.absoluteURL;\n }, t.prototype.valueOf = function () {\n return this.absoluteURL;\n }, r = function r(t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function e(t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function o(t, e) {\n return t.slice(0, e.length) === e;\n }, n = function n(t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t, e) {\n return function () {\n return _t.apply(e, arguments);\n };\n };\n\n e.HttpRequest = function () {\n function r(r, n, o) {\n this.delegate = r, this.requestCanceled = t(this.requestCanceled, this), this.requestTimedOut = t(this.requestTimedOut, this), this.requestFailed = t(this.requestFailed, this), this.requestLoaded = t(this.requestLoaded, this), this.requestProgressed = t(this.requestProgressed, this), this.url = e.Location.wrap(n).requestURL, this.referrer = e.Location.wrap(o).absoluteURL, this.createXHR();\n }\n\n return r.NETWORK_FAILURE = 0, r.TIMEOUT_FAILURE = -1, r.timeout = 60, r.prototype.send = function () {\n var t;\n return this.xhr && !this.sent ? (this.notifyApplicationBeforeRequestStart(), this.setProgress(0), this.xhr.send(), this.sent = !0, \"function\" == typeof (t = this.delegate).requestStarted ? t.requestStarted() : void 0) : void 0;\n }, r.prototype.cancel = function () {\n return this.xhr && this.sent ? this.xhr.abort() : void 0;\n }, r.prototype.requestProgressed = function (t) {\n return t.lengthComputable ? this.setProgress(t.loaded / t.total) : void 0;\n }, r.prototype.requestLoaded = function () {\n return this.endRequest(function (t) {\n return function () {\n var e;\n return 200 <= (e = t.xhr.status) && 300 > e ? t.delegate.requestCompletedWithResponse(t.xhr.responseText, t.xhr.getResponseHeader(\"Turbolinks-Location\")) : (t.failed = !0, t.delegate.requestFailedWithStatusCode(t.xhr.status, t.xhr.responseText));\n };\n }(this));\n }, r.prototype.requestFailed = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE);\n };\n }(this));\n }, r.prototype.requestTimedOut = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE);\n };\n }(this));\n }, r.prototype.requestCanceled = function () {\n return this.endRequest();\n }, r.prototype.notifyApplicationBeforeRequestStart = function () {\n return e.dispatch(\"turbolinks:request-start\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.notifyApplicationAfterRequestEnd = function () {\n return e.dispatch(\"turbolinks:request-end\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.createXHR = function () {\n return this.xhr = new XMLHttpRequest(), this.xhr.open(\"GET\", this.url, !0), this.xhr.timeout = 1e3 * this.constructor.timeout, this.xhr.setRequestHeader(\"Accept\", \"text/html, application/xhtml+xml\"), this.xhr.setRequestHeader(\"Turbolinks-Referrer\", this.referrer), this.xhr.onprogress = this.requestProgressed, this.xhr.onload = this.requestLoaded, this.xhr.onerror = this.requestFailed, this.xhr.ontimeout = this.requestTimedOut, this.xhr.onabort = this.requestCanceled;\n }, r.prototype.endRequest = function (t) {\n return this.xhr ? (this.notifyApplicationAfterRequestEnd(), null != t && t.call(this), this.destroy()) : void 0;\n }, r.prototype.setProgress = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.delegate).requestProgressed ? e.requestProgressed(this.progress) : void 0;\n }, r.prototype.destroy = function () {\n var t;\n return this.setProgress(1), \"function\" == typeof (t = this.delegate).requestFinished && t.requestFinished(), this.delegate = null, this.xhr = null;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t2, e) {\n return function () {\n return _t2.apply(e, arguments);\n };\n };\n\n e.ProgressBar = function () {\n function e() {\n this.trickle = t(this.trickle, this), this.stylesheetElement = this.createStylesheetElement(), this.progressElement = this.createProgressElement();\n }\n\n var r;\n return r = 300, e.defaultCSS = \".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \" + r + \"ms ease-out, opacity \" + r / 2 + \"ms \" + r / 2 + \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\", e.prototype.show = function () {\n return this.visible ? void 0 : (this.visible = !0, this.installStylesheetElement(), this.installProgressElement(), this.startTrickling());\n }, e.prototype.hide = function () {\n return this.visible && !this.hiding ? (this.hiding = !0, this.fadeProgressElement(function (t) {\n return function () {\n return t.uninstallProgressElement(), t.stopTrickling(), t.visible = !1, t.hiding = !1;\n };\n }(this))) : void 0;\n }, e.prototype.setValue = function (t) {\n return this.value = t, this.refresh();\n }, e.prototype.installStylesheetElement = function () {\n return document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }, e.prototype.installProgressElement = function () {\n return this.progressElement.style.width = 0, this.progressElement.style.opacity = 1, document.documentElement.insertBefore(this.progressElement, document.body), this.refresh();\n }, e.prototype.fadeProgressElement = function (t) {\n return this.progressElement.style.opacity = 0, setTimeout(t, 1.5 * r);\n }, e.prototype.uninstallProgressElement = function () {\n return this.progressElement.parentNode ? document.documentElement.removeChild(this.progressElement) : void 0;\n }, e.prototype.startTrickling = function () {\n return null != this.trickleInterval ? this.trickleInterval : this.trickleInterval = setInterval(this.trickle, r);\n }, e.prototype.stopTrickling = function () {\n return clearInterval(this.trickleInterval), this.trickleInterval = null;\n }, e.prototype.trickle = function () {\n return this.setValue(this.value + Math.random() / 100);\n }, e.prototype.refresh = function () {\n return requestAnimationFrame(function (t) {\n return function () {\n return t.progressElement.style.width = 10 + 90 * t.value + \"%\";\n };\n }(this));\n }, e.prototype.createStylesheetElement = function () {\n var t;\n return t = document.createElement(\"style\"), t.type = \"text/css\", t.textContent = this.constructor.defaultCSS, t;\n }, e.prototype.createProgressElement = function () {\n var t;\n return t = document.createElement(\"div\"), t.className = \"turbolinks-progress-bar\", t;\n }, e;\n }();\n }.call(this), function () {\n var t = function t(_t3, e) {\n return function () {\n return _t3.apply(e, arguments);\n };\n };\n\n e.BrowserAdapter = function () {\n function r(r) {\n this.controller = r, this.showProgressBar = t(this.showProgressBar, this), this.progressBar = new e.ProgressBar();\n }\n\n var n, o, i;\n return i = e.HttpRequest, n = i.NETWORK_FAILURE, o = i.TIMEOUT_FAILURE, r.prototype.visitProposedToLocationWithAction = function (t, e) {\n return this.controller.startVisitToLocationWithAction(t, e);\n }, r.prototype.visitStarted = function (t) {\n return t.issueRequest(), t.changeHistory(), t.loadCachedSnapshot();\n }, r.prototype.visitRequestStarted = function (t) {\n return this.progressBar.setValue(0), t.hasCachedSnapshot() || \"restore\" !== t.action ? this.showProgressBarAfterDelay() : this.showProgressBar();\n }, r.prototype.visitRequestProgressed = function (t) {\n return this.progressBar.setValue(t.progress);\n }, r.prototype.visitRequestCompleted = function (t) {\n return t.loadResponse();\n }, r.prototype.visitRequestFailedWithStatusCode = function (t, e) {\n switch (e) {\n case n:\n case o:\n return this.reload();\n\n default:\n return t.loadResponse();\n }\n }, r.prototype.visitRequestFinished = function (t) {\n return this.hideProgressBar();\n }, r.prototype.visitCompleted = function (t) {\n return t.followRedirect();\n }, r.prototype.pageInvalidated = function () {\n return this.reload();\n }, r.prototype.showProgressBarAfterDelay = function () {\n return this.progressBarTimeout = setTimeout(this.showProgressBar, this.controller.progressBarDelay);\n }, r.prototype.showProgressBar = function () {\n return this.progressBar.show();\n }, r.prototype.hideProgressBar = function () {\n return this.progressBar.hide(), clearTimeout(this.progressBarTimeout);\n }, r.prototype.reload = function () {\n return window.location.reload();\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t4, e) {\n return function () {\n return _t4.apply(e, arguments);\n };\n };\n\n e.History = function () {\n function r(e) {\n this.delegate = e, this.onPageLoad = t(this.onPageLoad, this), this.onPopState = t(this.onPopState, this);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"popstate\", this.onPopState, !1), addEventListener(\"load\", this.onPageLoad, !1), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"popstate\", this.onPopState, !1), removeEventListener(\"load\", this.onPageLoad, !1), this.started = !1) : void 0;\n }, r.prototype.push = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"push\", t, r);\n }, r.prototype.replace = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"replace\", t, r);\n }, r.prototype.onPopState = function (t) {\n var r, n, o, i;\n return this.shouldHandlePopState() && (i = null != (n = t.state) ? n.turbolinks : void 0) ? (r = e.Location.wrap(window.location), o = i.restorationIdentifier, this.delegate.historyPoppedToLocationWithRestorationIdentifier(r, o)) : void 0;\n }, r.prototype.onPageLoad = function (t) {\n return e.defer(function (t) {\n return function () {\n return t.pageLoaded = !0;\n };\n }(this));\n }, r.prototype.shouldHandlePopState = function () {\n return this.pageIsLoaded();\n }, r.prototype.pageIsLoaded = function () {\n return this.pageLoaded || \"complete\" === document.readyState;\n }, r.prototype.update = function (t, e, r) {\n var n;\n return n = {\n turbolinks: {\n restorationIdentifier: r\n }\n }, history[t + \"State\"](n, null, e);\n }, r;\n }();\n }.call(this), function () {\n e.HeadDetails = function () {\n function t(t) {\n var e, r, n, s, a, u;\n\n for (this.elements = {}, n = 0, a = t.length; a > n; n++) {\n u = t[n], u.nodeType === Node.ELEMENT_NODE && (s = u.outerHTML, r = null != (e = this.elements)[s] ? e[s] : e[s] = {\n type: i(u),\n tracked: o(u),\n elements: []\n }, r.elements.push(u));\n }\n }\n\n var e, r, n, o, i;\n return t.fromHeadElement = function (t) {\n var e;\n return new this(null != (e = null != t ? t.childNodes : void 0) ? e : []);\n }, t.prototype.hasElementWithKey = function (t) {\n return t in this.elements;\n }, t.prototype.getTrackedElementSignature = function () {\n var t, e;\n return function () {\n var r, n;\n r = this.elements, n = [];\n\n for (t in r) {\n e = r[t].tracked, e && n.push(t);\n }\n\n return n;\n }.call(this).join(\"\");\n }, t.prototype.getScriptElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"script\", t);\n }, t.prototype.getStylesheetElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"stylesheet\", t);\n }, t.prototype.getElementsMatchingTypeNotInDetails = function (t, e) {\n var r, n, o, i, s, a;\n o = this.elements, s = [];\n\n for (n in o) {\n i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\n }\n\n return s;\n }, t.prototype.getProvisionalElements = function () {\n var t, e, r, n, o, i, s;\n r = [], n = this.elements;\n\n for (e in n) {\n o = n[e], s = o.type, i = o.tracked, t = o.elements, null != s || i ? t.length > 1 && r.push.apply(r, t.slice(1)) : r.push.apply(r, t);\n }\n\n return r;\n }, t.prototype.getMetaValue = function (t) {\n var e;\n return null != (e = this.findMetaElementByName(t)) ? e.getAttribute(\"content\") : void 0;\n }, t.prototype.findMetaElementByName = function (t) {\n var r, n, o, i;\n r = void 0, i = this.elements;\n\n for (o in i) {\n n = i[o].elements, e(n[0], t) && (r = n[0]);\n }\n\n return r;\n }, i = function i(t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function o(t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function r(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function n(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function e(t, _e) {\n var r;\n return r = t.tagName.toLowerCase(), \"meta\" === r && t.getAttribute(\"name\") === _e;\n }, t;\n }();\n }.call(this), function () {\n e.Snapshot = function () {\n function t(t, e) {\n this.headDetails = t, this.bodyElement = e;\n }\n\n return t.wrap = function (t) {\n return t instanceof this ? t : \"string\" == typeof t ? this.fromHTMLString(t) : this.fromHTMLElement(t);\n }, t.fromHTMLString = function (t) {\n var e;\n return e = document.createElement(\"html\"), e.innerHTML = t, this.fromHTMLElement(e);\n }, t.fromHTMLElement = function (t) {\n var r, n, o, i;\n return o = t.querySelector(\"head\"), r = null != (i = t.querySelector(\"body\")) ? i : document.createElement(\"body\"), n = e.HeadDetails.fromHeadElement(o), new this(n, r);\n }, t.prototype.clone = function () {\n return new this.constructor(this.headDetails, this.bodyElement.cloneNode(!0));\n }, t.prototype.getRootLocation = function () {\n var t, r;\n return r = null != (t = this.getSetting(\"root\")) ? t : \"/\", new e.Location(r);\n }, t.prototype.getCacheControlValue = function () {\n return this.getSetting(\"cache-control\");\n }, t.prototype.getElementForAnchor = function (t) {\n try {\n return this.bodyElement.querySelector(\"[id='\" + t + \"'], a[name='\" + t + \"']\");\n } catch (e) {}\n }, t.prototype.getPermanentElements = function () {\n return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementById = function (t) {\n return this.bodyElement.querySelector(\"#\" + t + \"[data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementsPresentInSnapshot = function (t) {\n var e, r, n, o, i;\n\n for (o = this.getPermanentElements(), i = [], r = 0, n = o.length; n > r; r++) {\n e = o[r], t.getPermanentElementById(e.id) && i.push(e);\n }\n\n return i;\n }, t.prototype.findFirstAutofocusableElement = function () {\n return this.bodyElement.querySelector(\"[autofocus]\");\n }, t.prototype.hasAnchor = function (t) {\n return null != this.getElementForAnchor(t);\n }, t.prototype.isPreviewable = function () {\n return \"no-preview\" !== this.getCacheControlValue();\n }, t.prototype.isCacheable = function () {\n return \"no-cache\" !== this.getCacheControlValue();\n }, t.prototype.isVisitable = function () {\n return \"reload\" !== this.getSetting(\"visit-control\");\n }, t.prototype.getSetting = function (t) {\n return this.headDetails.getMetaValue(\"turbolinks-\" + t);\n }, t;\n }();\n }.call(this), function () {\n var t = [].slice;\n\n e.Renderer = function () {\n function e() {}\n\n var r;\n return e.render = function () {\n var e, r, n, o;\n return n = arguments[0], r = arguments[1], e = 3 <= arguments.length ? t.call(arguments, 2) : [], o = function (t, e, r) {\n r.prototype = t.prototype;\n var n = new r(),\n o = t.apply(n, e);\n return Object(o) === o ? o : n;\n }(this, e, function () {}), o.delegate = n, o.render(r), o;\n }, e.prototype.renderView = function (t) {\n return this.delegate.viewWillRender(this.newBody), t(), this.delegate.viewRendered(this.newBody);\n }, e.prototype.invalidateView = function () {\n return this.delegate.viewInvalidated();\n }, e.prototype.createScriptElement = function (t) {\n var e;\n return \"false\" === t.getAttribute(\"data-turbolinks-eval\") ? t : (e = document.createElement(\"script\"), e.textContent = t.textContent, e.async = !1, r(e, t), e);\n }, r = function r(t, e) {\n var r, n, o, i, s, a, u;\n\n for (i = e.attributes, a = [], r = 0, n = i.length; n > r; r++) {\n s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n }\n\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function n(t, e) {\n function r() {\n this.constructor = t;\n }\n\n for (var n in e) {\n o.call(e, n) && (t[n] = e[n]);\n }\n\n return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n e.SnapshotRenderer = function (e) {\n function o(t, e, r) {\n this.currentSnapshot = t, this.newSnapshot = e, this.isPreview = r, this.currentHeadDetails = this.currentSnapshot.headDetails, this.newHeadDetails = this.newSnapshot.headDetails, this.currentBody = this.currentSnapshot.bodyElement, this.newBody = this.newSnapshot.bodyElement;\n }\n\n return n(o, e), o.prototype.render = function (t) {\n return this.shouldRender() ? (this.mergeHead(), this.renderView(function (e) {\n return function () {\n return e.replaceBody(), e.isPreview || e.focusFirstAutofocusableElement(), t();\n };\n }(this))) : this.invalidateView();\n }, o.prototype.mergeHead = function () {\n return this.copyNewHeadStylesheetElements(), this.copyNewHeadScriptElements(), this.removeCurrentHeadProvisionalElements(), this.copyNewHeadProvisionalElements();\n }, o.prototype.replaceBody = function () {\n var t;\n return t = this.relocateCurrentBodyPermanentElements(), this.activateNewBodyScriptElements(), this.assignNewBody(), this.replacePlaceholderElementsWithClonedPermanentElements(t);\n }, o.prototype.shouldRender = function () {\n return this.newSnapshot.isVisitable() && this.trackedElementsAreIdentical();\n }, o.prototype.trackedElementsAreIdentical = function () {\n return this.currentHeadDetails.getTrackedElementSignature() === this.newHeadDetails.getTrackedElementSignature();\n }, o.prototype.copyNewHeadStylesheetElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadStylesheetElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadScriptElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadScriptElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\n }\n\n return o;\n }, o.prototype.removeCurrentHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getCurrentHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.removeChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.relocateCurrentBodyPermanentElements = function () {\n var e, n, o, i, s, a, u;\n\n for (a = this.getCurrentBodyPermanentElements(), u = [], e = 0, n = a.length; n > e; e++) {\n i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\n }\n\n return u;\n }, o.prototype.replacePlaceholderElementsWithClonedPermanentElements = function (t) {\n var e, n, o, i, s, a, u;\n\n for (u = [], o = 0, i = t.length; i > o; o++) {\n a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\n }\n\n return u;\n }, o.prototype.activateNewBodyScriptElements = function () {\n var t, e, n, o, i, s;\n\n for (i = this.getNewBodyScriptElements(), s = [], e = 0, o = i.length; o > e; e++) {\n n = i[e], t = this.createScriptElement(n), s.push(r(n, t));\n }\n\n return s;\n }, o.prototype.assignNewBody = function () {\n return document.body = this.newBody;\n }, o.prototype.focusFirstAutofocusableElement = function () {\n var t;\n return null != (t = this.newSnapshot.findFirstAutofocusableElement()) ? t.focus() : void 0;\n }, o.prototype.getNewHeadStylesheetElements = function () {\n return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getNewHeadScriptElements = function () {\n return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getCurrentHeadProvisionalElements = function () {\n return this.currentHeadDetails.getProvisionalElements();\n }, o.prototype.getNewHeadProvisionalElements = function () {\n return this.newHeadDetails.getProvisionalElements();\n }, o.prototype.getCurrentBodyPermanentElements = function () {\n return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot);\n }, o.prototype.getNewBodyScriptElements = function () {\n return this.newBody.querySelectorAll(\"script\");\n }, o;\n }(e.Renderer), t = function t(_t5) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", _t5.id), {\n element: e,\n permanentElement: _t5\n };\n }, r = function r(t, e) {\n var r;\n return (r = t.parentNode) ? r.replaceChild(e, t) : void 0;\n };\n }.call(this), function () {\n var t = function t(_t6, e) {\n function n() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n r.call(e, o) && (_t6[o] = e[o]);\n }\n\n return n.prototype = e.prototype, _t6.prototype = new n(), _t6.__super__ = e.prototype, _t6;\n },\n r = {}.hasOwnProperty;\n\n e.ErrorRenderer = function (e) {\n function r(t) {\n var e;\n e = document.createElement(\"html\"), e.innerHTML = t, this.newHead = e.querySelector(\"head\"), this.newBody = e.querySelector(\"body\");\n }\n\n return t(r, e), r.prototype.render = function (t) {\n return this.renderView(function (e) {\n return function () {\n return e.replaceHeadAndBody(), e.activateBodyScriptElements(), t();\n };\n }(this));\n }, r.prototype.replaceHeadAndBody = function () {\n var t, e;\n return e = document.head, t = document.body, e.parentNode.replaceChild(this.newHead, e), t.parentNode.replaceChild(this.newBody, t);\n }, r.prototype.activateBodyScriptElements = function () {\n var t, e, r, n, o, i;\n\n for (n = this.getScriptElements(), i = [], e = 0, r = n.length; r > e; e++) {\n o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\n }\n\n return i;\n }, r.prototype.getScriptElements = function () {\n return document.documentElement.querySelectorAll(\"script\");\n }, r;\n }(e.Renderer);\n }.call(this), function () {\n e.View = function () {\n function t(t) {\n this.delegate = t, this.htmlElement = document.documentElement;\n }\n\n return t.prototype.getRootLocation = function () {\n return this.getSnapshot().getRootLocation();\n }, t.prototype.getElementForAnchor = function (t) {\n return this.getSnapshot().getElementForAnchor(t);\n }, t.prototype.getSnapshot = function () {\n return e.Snapshot.fromHTMLElement(this.htmlElement);\n }, t.prototype.render = function (t, e) {\n var r, n, o;\n return o = t.snapshot, r = t.error, n = t.isPreview, this.markAsPreview(n), null != o ? this.renderSnapshot(o, n, e) : this.renderError(r, e);\n }, t.prototype.markAsPreview = function (t) {\n return t ? this.htmlElement.setAttribute(\"data-turbolinks-preview\", \"\") : this.htmlElement.removeAttribute(\"data-turbolinks-preview\");\n }, t.prototype.renderSnapshot = function (t, r, n) {\n return e.SnapshotRenderer.render(this.delegate, n, this.getSnapshot(), e.Snapshot.wrap(t), r);\n }, t.prototype.renderError = function (t, r) {\n return e.ErrorRenderer.render(this.delegate, r, t);\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t7, e) {\n return function () {\n return _t7.apply(e, arguments);\n };\n };\n\n e.ScrollManager = function () {\n function r(r) {\n this.delegate = r, this.onScroll = t(this.onScroll, this), this.onScroll = e.throttle(this.onScroll);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"scroll\", this.onScroll, !1), this.onScroll(), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"scroll\", this.onScroll, !1), this.started = !1) : void 0;\n }, r.prototype.scrollToElement = function (t) {\n return t.scrollIntoView();\n }, r.prototype.scrollToPosition = function (t) {\n var e, r;\n return e = t.x, r = t.y, window.scrollTo(e, r);\n }, r.prototype.onScroll = function (t) {\n return this.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n }, r.prototype.updatePosition = function (t) {\n var e;\n return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0;\n }, r;\n }();\n }.call(this), function () {\n e.SnapshotCache = function () {\n function t(t) {\n this.size = t, this.keys = [], this.snapshots = {};\n }\n\n var r;\n return t.prototype.has = function (t) {\n var e;\n return e = r(t), e in this.snapshots;\n }, t.prototype.get = function (t) {\n var e;\n if (this.has(t)) return e = this.read(t), this.touch(t), e;\n }, t.prototype.put = function (t, e) {\n return this.write(t, e), this.touch(t), e;\n }, t.prototype.read = function (t) {\n var e;\n return e = r(t), this.snapshots[e];\n }, t.prototype.write = function (t, e) {\n var n;\n return n = r(t), this.snapshots[n] = e;\n }, t.prototype.touch = function (t) {\n var e, n;\n return n = r(t), e = this.keys.indexOf(n), e > -1 && this.keys.splice(e, 1), this.keys.unshift(n), this.trim();\n }, t.prototype.trim = function () {\n var t, e, r, n, o;\n\n for (n = this.keys.splice(this.size), o = [], t = 0, r = n.length; r > t; t++) {\n e = n[t], o.push(delete this.snapshots[e]);\n }\n\n return o;\n }, r = function r(t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t8, e) {\n return function () {\n return _t8.apply(e, arguments);\n };\n };\n\n e.Visit = function () {\n function r(r, n, o) {\n this.controller = r, this.action = o, this.performScroll = t(this.performScroll, this), this.identifier = e.uuid(), this.location = e.Location.wrap(n), this.adapter = this.controller.adapter, this.state = \"initialized\", this.timingMetrics = {};\n }\n\n var n;\n return r.prototype.start = function () {\n return \"initialized\" === this.state ? (this.recordTimingMetric(\"visitStart\"), this.state = \"started\", this.adapter.visitStarted(this)) : void 0;\n }, r.prototype.cancel = function () {\n var t;\n return \"started\" === this.state ? (null != (t = this.request) && t.cancel(), this.cancelRender(), this.state = \"canceled\") : void 0;\n }, r.prototype.complete = function () {\n var t;\n return \"started\" === this.state ? (this.recordTimingMetric(\"visitEnd\"), this.state = \"completed\", \"function\" == typeof (t = this.adapter).visitCompleted && t.visitCompleted(this), this.controller.visitCompleted(this)) : void 0;\n }, r.prototype.fail = function () {\n var t;\n return \"started\" === this.state ? (this.state = \"failed\", \"function\" == typeof (t = this.adapter).visitFailed ? t.visitFailed(this) : void 0) : void 0;\n }, r.prototype.changeHistory = function () {\n var t, e;\n return this.historyChanged ? void 0 : (t = this.location.isEqualTo(this.referrer) ? \"replace\" : this.action, e = n(t), this.controller[e](this.location, this.restorationIdentifier), this.historyChanged = !0);\n }, r.prototype.issueRequest = function () {\n return this.shouldIssueRequest() && null == this.request ? (this.progress = 0, this.request = new e.HttpRequest(this, this.location, this.referrer), this.request.send()) : void 0;\n }, r.prototype.getCachedSnapshot = function () {\n var t;\n return !(t = this.controller.getCachedSnapshotForLocation(this.location)) || null != this.location.anchor && !t.hasAnchor(this.location.anchor) || \"restore\" !== this.action && !t.isPreviewable() ? void 0 : t;\n }, r.prototype.hasCachedSnapshot = function () {\n return null != this.getCachedSnapshot();\n }, r.prototype.loadCachedSnapshot = function () {\n var t, e;\n return (e = this.getCachedSnapshot()) ? (t = this.shouldIssueRequest(), this.render(function () {\n var r;\n return this.cacheSnapshot(), this.controller.render({\n snapshot: e,\n isPreview: t\n }, this.performScroll), \"function\" == typeof (r = this.adapter).visitRendered && r.visitRendered(this), t ? void 0 : this.complete();\n })) : void 0;\n }, r.prototype.loadResponse = function () {\n return null != this.response ? this.render(function () {\n var t, e;\n return this.cacheSnapshot(), this.request.failed ? (this.controller.render({\n error: this.response\n }, this.performScroll), \"function\" == typeof (t = this.adapter).visitRendered && t.visitRendered(this), this.fail()) : (this.controller.render({\n snapshot: this.response\n }, this.performScroll), \"function\" == typeof (e = this.adapter).visitRendered && e.visitRendered(this), this.complete());\n }) : void 0;\n }, r.prototype.followRedirect = function () {\n return this.redirectedToLocation && !this.followedRedirect ? (this.location = this.redirectedToLocation, this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation, this.restorationIdentifier), this.followedRedirect = !0) : void 0;\n }, r.prototype.requestStarted = function () {\n var t;\n return this.recordTimingMetric(\"requestStart\"), \"function\" == typeof (t = this.adapter).visitRequestStarted ? t.visitRequestStarted(this) : void 0;\n }, r.prototype.requestProgressed = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.adapter).visitRequestProgressed ? e.visitRequestProgressed(this) : void 0;\n }, r.prototype.requestCompletedWithResponse = function (t, r) {\n return this.response = t, null != r && (this.redirectedToLocation = e.Location.wrap(r)), this.adapter.visitRequestCompleted(this);\n }, r.prototype.requestFailedWithStatusCode = function (t, e) {\n return this.response = e, this.adapter.visitRequestFailedWithStatusCode(this, t);\n }, r.prototype.requestFinished = function () {\n var t;\n return this.recordTimingMetric(\"requestEnd\"), \"function\" == typeof (t = this.adapter).visitRequestFinished ? t.visitRequestFinished(this) : void 0;\n }, r.prototype.performScroll = function () {\n return this.scrolled ? void 0 : (\"restore\" === this.action ? this.scrollToRestoredPosition() || this.scrollToTop() : this.scrollToAnchor() || this.scrollToTop(), this.scrolled = !0);\n }, r.prototype.scrollToRestoredPosition = function () {\n var t, e;\n return t = null != (e = this.restorationData) ? e.scrollPosition : void 0, null != t ? (this.controller.scrollToPosition(t), !0) : void 0;\n }, r.prototype.scrollToAnchor = function () {\n return null != this.location.anchor ? (this.controller.scrollToAnchor(this.location.anchor), !0) : void 0;\n }, r.prototype.scrollToTop = function () {\n return this.controller.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.recordTimingMetric = function (t) {\n var e;\n return null != (e = this.timingMetrics)[t] ? e[t] : e[t] = new Date().getTime();\n }, r.prototype.getTimingMetrics = function () {\n return e.copyObject(this.timingMetrics);\n }, n = function n(t) {\n switch (t) {\n case \"replace\":\n return \"replaceHistoryWithLocationAndRestorationIdentifier\";\n\n case \"advance\":\n case \"restore\":\n return \"pushHistoryWithLocationAndRestorationIdentifier\";\n }\n }, r.prototype.shouldIssueRequest = function () {\n return \"restore\" === this.action ? !this.hasCachedSnapshot() : !0;\n }, r.prototype.cacheSnapshot = function () {\n return this.snapshotCached ? void 0 : (this.controller.cacheSnapshot(), this.snapshotCached = !0);\n }, r.prototype.render = function (t) {\n return this.cancelRender(), this.frame = requestAnimationFrame(function (e) {\n return function () {\n return e.frame = null, t.call(e);\n };\n }(this));\n }, r.prototype.cancelRender = function () {\n return this.frame ? cancelAnimationFrame(this.frame) : void 0;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t9, e) {\n return function () {\n return _t9.apply(e, arguments);\n };\n };\n\n e.Controller = function () {\n function r() {\n this.clickBubbled = t(this.clickBubbled, this), this.clickCaptured = t(this.clickCaptured, this), this.pageLoaded = t(this.pageLoaded, this), this.history = new e.History(this), this.view = new e.View(this), this.scrollManager = new e.ScrollManager(this), this.restorationData = {}, this.clearCache(), this.setProgressBarDelay(500);\n }\n\n return r.prototype.start = function () {\n return e.supported && !this.started ? (addEventListener(\"click\", this.clickCaptured, !0), addEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.start(), this.startHistory(), this.started = !0, this.enabled = !0) : void 0;\n }, r.prototype.disable = function () {\n return this.enabled = !1;\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"click\", this.clickCaptured, !0), removeEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.stop(), this.stopHistory(), this.started = !1) : void 0;\n }, r.prototype.clearCache = function () {\n return this.cache = new e.SnapshotCache(10);\n }, r.prototype.visit = function (t, r) {\n var n, o;\n return null == r && (r = {}), t = e.Location.wrap(t), this.applicationAllowsVisitingLocation(t) ? this.locationIsVisitable(t) ? (n = null != (o = r.action) ? o : \"advance\", this.adapter.visitProposedToLocationWithAction(t, n)) : window.location = t : void 0;\n }, r.prototype.startVisitToLocationWithAction = function (t, r, n) {\n var o;\n return e.supported ? (o = this.getRestorationDataForIdentifier(n), this.startVisit(t, r, {\n restorationData: o\n })) : window.location = t;\n }, r.prototype.setProgressBarDelay = function (t) {\n return this.progressBarDelay = t;\n }, r.prototype.startHistory = function () {\n return this.location = e.Location.wrap(window.location), this.restorationIdentifier = e.uuid(), this.history.start(), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.stopHistory = function () {\n return this.history.stop();\n }, r.prototype.pushHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.push(this.location, this.restorationIdentifier);\n }, r.prototype.replaceHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.historyPoppedToLocationWithRestorationIdentifier = function (t, r) {\n var n;\n return this.restorationIdentifier = r, this.enabled ? (n = this.getRestorationDataForIdentifier(this.restorationIdentifier), this.startVisit(t, \"restore\", {\n restorationIdentifier: this.restorationIdentifier,\n restorationData: n,\n historyChanged: !0\n }), this.location = e.Location.wrap(t)) : this.adapter.pageInvalidated();\n }, r.prototype.getCachedSnapshotForLocation = function (t) {\n var e;\n return null != (e = this.cache.get(t)) ? e.clone() : void 0;\n }, r.prototype.shouldCacheSnapshot = function () {\n return this.view.getSnapshot().isCacheable();\n }, r.prototype.cacheSnapshot = function () {\n var t, r;\n return this.shouldCacheSnapshot() ? (this.notifyApplicationBeforeCachingSnapshot(), r = this.view.getSnapshot(), t = this.lastRenderedLocation, e.defer(function (e) {\n return function () {\n return e.cache.put(t, r.clone());\n };\n }(this))) : void 0;\n }, r.prototype.scrollToAnchor = function (t) {\n var e;\n return (e = this.view.getElementForAnchor(t)) ? this.scrollToElement(e) : this.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.scrollToElement = function (t) {\n return this.scrollManager.scrollToElement(t);\n }, r.prototype.scrollToPosition = function (t) {\n return this.scrollManager.scrollToPosition(t);\n }, r.prototype.scrollPositionChanged = function (t) {\n var e;\n return e = this.getCurrentRestorationData(), e.scrollPosition = t;\n }, r.prototype.render = function (t, e) {\n return this.view.render(t, e);\n }, r.prototype.viewInvalidated = function () {\n return this.adapter.pageInvalidated();\n }, r.prototype.viewWillRender = function (t) {\n return this.notifyApplicationBeforeRender(t);\n }, r.prototype.viewRendered = function () {\n return this.lastRenderedLocation = this.currentVisit.location, this.notifyApplicationAfterRender();\n }, r.prototype.pageLoaded = function () {\n return this.lastRenderedLocation = this.location, this.notifyApplicationAfterPageLoad();\n }, r.prototype.clickCaptured = function () {\n return removeEventListener(\"click\", this.clickBubbled, !1), addEventListener(\"click\", this.clickBubbled, !1);\n }, r.prototype.clickBubbled = function (t) {\n var e, r, n;\n return this.enabled && this.clickEventIsSignificant(t) && (r = this.getVisitableLinkForNode(t.target)) && (n = this.getVisitableLocationForLink(r)) && this.applicationAllowsFollowingLinkToLocation(r, n) ? (t.preventDefault(), e = this.getActionForLink(r), this.visit(n, {\n action: e\n })) : void 0;\n }, r.prototype.applicationAllowsFollowingLinkToLocation = function (t, e) {\n var r;\n return r = this.notifyApplicationAfterClickingLinkToLocation(t, e), !r.defaultPrevented;\n }, r.prototype.applicationAllowsVisitingLocation = function (t) {\n var e;\n return e = this.notifyApplicationBeforeVisitingLocation(t), !e.defaultPrevented;\n }, r.prototype.notifyApplicationAfterClickingLinkToLocation = function (t, r) {\n return e.dispatch(\"turbolinks:click\", {\n target: t,\n data: {\n url: r.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationBeforeVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:before-visit\", {\n data: {\n url: t.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationAfterVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:visit\", {\n data: {\n url: t.absoluteURL\n }\n });\n }, r.prototype.notifyApplicationBeforeCachingSnapshot = function () {\n return e.dispatch(\"turbolinks:before-cache\");\n }, r.prototype.notifyApplicationBeforeRender = function (t) {\n return e.dispatch(\"turbolinks:before-render\", {\n data: {\n newBody: t\n }\n });\n }, r.prototype.notifyApplicationAfterRender = function () {\n return e.dispatch(\"turbolinks:render\");\n }, r.prototype.notifyApplicationAfterPageLoad = function (t) {\n return null == t && (t = {}), e.dispatch(\"turbolinks:load\", {\n data: {\n url: this.location.absoluteURL,\n timing: t\n }\n });\n }, r.prototype.startVisit = function (t, e, r) {\n var n;\n return null != (n = this.currentVisit) && n.cancel(), this.currentVisit = this.createVisit(t, e, r), this.currentVisit.start(), this.notifyApplicationAfterVisitingLocation(t);\n }, r.prototype.createVisit = function (t, r, n) {\n var o, i, s, a, u;\n return i = null != n ? n : {}, a = i.restorationIdentifier, s = i.restorationData, o = i.historyChanged, u = new e.Visit(this, t, r), u.restorationIdentifier = null != a ? a : e.uuid(), u.restorationData = e.copyObject(s), u.historyChanged = o, u.referrer = this.location, u;\n }, r.prototype.visitCompleted = function (t) {\n return this.notifyApplicationAfterPageLoad(t.getTimingMetrics());\n }, r.prototype.clickEventIsSignificant = function (t) {\n return !(t.defaultPrevented || t.target.isContentEditable || t.which > 1 || t.altKey || t.ctrlKey || t.metaKey || t.shiftKey);\n }, r.prototype.getVisitableLinkForNode = function (t) {\n return this.nodeIsVisitable(t) ? e.closest(t, \"a[href]:not([target]):not([download])\") : void 0;\n }, r.prototype.getVisitableLocationForLink = function (t) {\n var r;\n return r = new e.Location(t.getAttribute(\"href\")), this.locationIsVisitable(r) ? r : void 0;\n }, r.prototype.getActionForLink = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-turbolinks-action\")) ? e : \"advance\";\n }, r.prototype.nodeIsVisitable = function (t) {\n var r;\n return (r = e.closest(t, \"[data-turbolinks]\")) ? \"false\" !== r.getAttribute(\"data-turbolinks\") : !0;\n }, r.prototype.locationIsVisitable = function (t) {\n return t.isPrefixedBy(this.view.getRootLocation()) && t.isHTML();\n }, r.prototype.getCurrentRestorationData = function () {\n return this.getRestorationDataForIdentifier(this.restorationIdentifier);\n }, r.prototype.getRestorationDataForIdentifier = function (t) {\n var e;\n return null != (e = this.restorationData)[t] ? e[t] : e[t] = {};\n }, r;\n }();\n }.call(this), function () {\n !function () {\n var t, e;\n if ((t = e = document.currentScript) && !e.hasAttribute(\"data-turbolinks-suppress-warning\")) for (; t = t.parentNode;) {\n if (t === document.body) return console.warn(\"You are loading Turbolinks from a