{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/@stimulus/core/dist/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/action.js","webpack:///./node_modules/@stimulus/core/dist/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/attribute_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/string_map_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/value_observer.js","webpack:///./node_modules/@stimulus/core/dist/context.js","webpack:///./node_modules/@stimulus/core/dist/inheritable_statics.js","webpack:///./node_modules/@stimulus/core/dist/blessing.js","webpack:///./node_modules/@stimulus/core/dist/module.js","webpack:///./node_modules/@stimulus/core/dist/definition.js","webpack:///./node_modules/@stimulus/core/dist/class_map.js","webpack:///./node_modules/@stimulus/core/dist/string_helpers.js","webpack:///./node_modules/@stimulus/core/dist/data_map.js","webpack:///./node_modules/@stimulus/core/dist/guide.js","webpack:///./node_modules/@stimulus/core/dist/selectors.js","webpack:///./node_modules/@stimulus/core/dist/target_set.js","webpack:///./node_modules/@stimulus/core/dist/scope.js","webpack:///./node_modules/@stimulus/core/dist/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/router.js","webpack:///./node_modules/@stimulus/core/dist/schema.js","webpack:///./node_modules/@stimulus/core/dist/application.js","webpack:///./node_modules/@stimulus/core/dist/class_properties.js","webpack:///./node_modules/@stimulus/core/dist/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/value_properties.js","webpack:///./node_modules/@stimulus/core/dist/controller.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/stimulus-use/dist/support/index.js","webpack:///./node_modules/stimulus-use/dist/stimulus-use.js","webpack:///./node_modules/stimulus-use/dist/use-dispatch/use-dispatch.js","webpack:///./app/javascript/images/favicon.png","webpack:///./app/javascript/images/banner.jpeg","webpack:///./app/javascript/images/footer.jpg","webpack:///./app/javascript/images/logo.svg","webpack:///./app/javascript/images/logo-email.png","webpack:///./app/javascript/images/logo-simple.svg","webpack:///./app/javascript/images/logos/mastercard.svg","webpack:///./app/javascript/images/logos/post.svg","webpack:///./app/javascript/images/logos/visa.svg","webpack:///./app/javascript/images/missing-product-image.svg","webpack:///./app/javascript/images/x.svg","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/src/secure-fields-2.0.0.min.js","webpack:///./node_modules/headroom.js/dist/headroom.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/stimulus-use/dist/use-click-outside/use-click-outside.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./app/javascript/images sync ^\\.\\/.*$","webpack:///./app/javascript/images/favicon.svg","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/cart_content_controller.js","webpack:///./app/javascript/controllers/cart_modal_controller.js","webpack:///./app/javascript/controllers/checkbox_toggle_controller.js","webpack:///./app/javascript/controllers/checkout_address_form_controller.js","webpack:///./app/javascript/controllers/checkout_payment_form_controller.js","webpack:///./app/javascript/controllers/content_box_controller.js","webpack:///./app/javascript/controllers/credit_card_expiration_field_controller.js","webpack:///./app/javascript/controllers/credit_card_fields_controller.js","webpack:///./app/javascript/controllers/header_burger_controller.js","webpack:///./app/javascript/controllers/header_navigation_controller.js","webpack:///./app/javascript/controllers/headroom_controller.js","webpack:///./app/javascript/controllers/infinite_scroll_controller.js","webpack:///./app/javascript/controllers/line_item_form_controller.js","webpack:///./app/javascript/controllers/modal_controller.js","webpack:///./app/javascript/controllers/nested_fields_controller.js","webpack:///./app/javascript/controllers/notification_controller.js","webpack:///./app/javascript/controllers/popper_controller.js","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/controllers/product_carousel_swiper_controller.js","webpack:///./app/javascript/controllers/product_item_controller.js","webpack:///./app/javascript/controllers/quantity_field_controller.js","webpack:///./app/javascript/controllers/reload_controller.js","webpack:///./app/javascript/controllers/summary_toggle_controller.js","webpack:///./app/javascript/controllers/tabs_controller.js","webpack:///./app/javascript/controllers/textarea_controller.js","webpack:///./app/javascript/controllers/variant_controller.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/tippy.js/dist/tippy.esm.js","webpack:///./app/javascript/controllers/tooltip_controller.js","webpack:///./node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./app/javascript/controllers/product_images_swiper_controller.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","_typeof","obj","iterator","constructor","deleteProps","keys","forEach","nextTick","callback","delay","now","Date","getTranslate","el","axis","matrix","curTransform","transformMatrix","curStyle","style","getComputedStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","split","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","getPropertyValue","toString","m41","parseFloat","m42","isObject","isNode","node","HTMLElement","nodeType","extend","to","arguments","noExtend","nextSource","keysArray","filter","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","bindModuleMethods","instance","subKey","classesToSelector","classes","trim","createElementIfNotDefined","$container","params","createElements","checkProps","auto","element","className","append","EventListener","eventTarget","eventName","eventOptions","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","delete","handleEvent","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","Array","from","sort","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","eventListener","stop","values","reduce","listeners","concat","fetchEventListenerForBinding","handleError","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","set","parts","descriptorPattern","parseEventTarget","eventTargetName","Action","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","match","options","test","eventNameSuffix","getAttribute","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","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","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","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","__extends","b","setPrototypeOf","__proto__","__","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","attributeValue","invokeChangedCallbackForValue","valueDescriptors","name_1","defaultValue","Context","controllerConstructor","bindingObserver","dispatcher","valueObserver","initialize","parentElement","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","isArray","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","apply","getOwnStaticObjectPairs","getPrototypeOf","reverse","__spreadArrays","il","k","j","jl","bless","properties","shadowConstructor","shadowProperties","getOwnKeys","shadowingDescriptor","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","camelize","char","toUpperCase","capitalize","charAt","dasherize","DataMap","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","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","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","v","op","TypeError","pop","Application","documentElement","router","readyState","register","load","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","ClassPropertiesBlessing","classDefinition","TargetPropertiesBlessing","targetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","read","readers","write","writers","default","propertiesForValueDefinitionPair","defaultValuesByType","valueDescriptorForTokenAndType","typeConstant","Boolean","Number","String","parseValueTypeConstant","boolean","number","string","array","JSON","parse","writeJSON","stringify","Controller","blessings","ssrDocument","activeElement","blur","nodeName","querySelector","getElementById","createEvent","initEvent","children","childNodes","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","Image","screen","matchMedia","requestAnimationFrame","cancelAnimationFrame","id","getWindow","win","_getPrototypeOf","_setPrototypeOf","_isNativeReflectConstruct","sham","Proxy","_construct","Parent","args","Class","Function","_wrapNativeSuper","_cache","fn","Wrapper","writable","Dom7","_Array","subClass","superClass","items","proto","self","ReferenceError","_assertThisInitialized","arrayFlat","arr","res","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","toggleClass","_len3","_key3","toggle","attr","attrs","attrName","removeAttr","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","newChild","tempDiv","firstChild","prepend","insertBefore","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","foundElements","found","removeChild","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","param","input","fire","preventDefault","initCustomEvent","Event","defaultPrevented","stopEverything","stopPropagation","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","ajax","response","responseText","getResponseHeader","floor","status","success","statusText","complete","beforeSend","XMLHttpRequest","OPENED","send","url","dataType","accept","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","toArray","serializeElement","additionalParam","inputs","disabled","option","selected","checked","encodeURIComponent","formElements","form","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","display","click","isRemote","handleRemote","button","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","composeEventName","eventPrefix","composedName","_ref","composed","originalEvent","isElementInViewport","rect","windowHeight","innerHeight","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","height","horInView","width","_excluded","_objectWithoutProperties","source","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","ownKeys","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","_classCallCheck","Constructor","defaultOptions","debug","_defineProperties","_createSuper","Derived","hasNativeReflectConstruct","valueOf","Super","NewTarget","_possibleConstructorReturn","_StimulusUse","_inherits","UseDispatch","protoProps","staticProps","_d","dispatch","_assertThisInitialize","targetElement","log","eventNameWithPrefix","enhanceController","StimulusUse","functionName","groupCollapsed","controllerId","groupEnd","details","eventDetails","customEvent","stimulusUseDebug","dataset","_Object$assign","controllerInitialize","controllerConnect","controllerDisconnect","useDispatch","factory","sparkMd5","createCommonjsModule","hex_chr","md5cycle","x","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","state","substring","parseInt","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","str","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","fromCharCode","concatenateArrayBuffers","first","second","byteLength","buffer","hexToBinaryString","bytes","substr","SparkMD5","reset","clamp","val","min","num","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","setState","destroy","hashBinary","classCallCheck","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","root","eventInit","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","notify","upload","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","focus","submitForm","ActiveStorage","define","D","z","F","q","w","B","A","h","G","TOKENIZE","PAY","REGISTER","C","H","I","random","K","M","N","L","J","placeholderElementId","fieldName","placeholder","ariaLabel","inputType","alive","O","localeCompare","paymentMethods","merchantId","transactionId","formId","countryCode","version","datatransPaymentConfig","fieldNames","instanceId","endpoint","frameborder","scrolling","hasChildNodes","lastChild","iframe","u","messageId","messageType","frames","postMessage","fieldReady","E","initResponse","submitResponse","validateResponse","cardInfoResponse","change","setStyle","initTokenize","initPay","initRegister","init","Q","S","R","exec","selectors","globalSelector","setPlaceholder","setAriaLabel","submit","parameters","browserDetails","browserUserAgent","browserJavaEnabled","javaEnabled","browserLanguage","language","browserColorDepth","colorDepth","browserScreenHeight","browserScreenWidth","browserTZ","getTimezoneOffset","validate","getCardInfo","encodeURI","process","isBrowser","createScroller","isDocument","scrollHeight","pageYOffset","elementScroller","trackScroll","rafId","isPassiveSupported","supported","passiveEventsSupported","scrolled","scroller","lastScrollY","update","round","direction","distance","abs","isOutOfBounds","bottom","toleranceExceeded","tolerance","handleScroll","passive","normalizeUpDown","down","up","Headroom","elem","initialised","frozen","cutsTheMustard","scrollTracker","unpin","onUnpin","pin","onPin","freeze","unfreeze","onTop","notTop","onNotTop","onBottom","notBottom","onNotBottom","shouldUnpin","shouldPin","every","cls","pinned","unpinned","initial","timeoutDuration","longerTimeoutBrowsers","debounce","called","scheduled","isFunction","functionToCheck","getStyleComputedProperty","ownerDocument","defaultView","getParentNode","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","subtract","modifier","getBordersSize","sideA","sideB","getSize","computedStyle","getWindowSizes","_extends","getClientRect","offsets","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","check","runModifiers","modifiers","ends","prop","cur","enabled","isDestroyed","arrowStyles","flipped","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","prefix","toCheck","willChange","disableEventListeners","removeOnDestroy","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","isNumeric","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","mergeWithPrevious","toValue","index2","Defaults","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","onLoad","modifierOptions","Popper","jquery","Utils","global","PopperUtils","onlyVisible","useClickOutside","onEvent","clickOutside","clickOutsideEvent","unobserve","browser","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","_temp","support","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","calcBrowser","swiper","resize","createObserver","destroyed","initialized","ResizeObserver","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","removeObserver","emit","orientationChangeHandler","resizeObserver","Observer","attach","WebkitMutationObserver","observerUpdate","characterData","observers","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","onTouchStart","touchEventsData","touches","animating","preventInteractionOnTransition","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","which","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","rtl","rtlTranslate","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","loop","translate","maxTranslate","minTranslate","diffX","diffY","sqrt","pow","touchAngle","isHorizontal","atan2","PI","cssMode","touchMoveStopPropagation","nested","loopFix","startTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","time","updateProgress","setTranslate","onTouchEnd","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","velocityEvent","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","run","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","dummyEventAttached","dummyEventListener","initialSlide","updateOnWindowResize","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","modular","useParams","instanceParams","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","getDirectionLabel","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","getSlideByIndex","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","byController","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","onTranslateToWrapperTransitionEnd","dir","indexAsNumber","normalizedTranslate","normalizedGird","normalizedGridNext","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","normalize","prevIndex","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","move","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","points","point","minRatio","_points$i","wasLocked","lastSlidePosition","addClasses","resultClasses","suffixes","item","removeClasses","images","loadImage","imageEl","srcset","checkForComplete","image","onReady","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","moduleParamName","desktop","swiperParams","defaults","passedParams","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","setProgress","current","getSlideClasses","slideEl","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","webpackPolyfill","paths","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","webpackContext","req","webpackContextResolve","code","quantity","overlayTarget","turbo_frame","headroom","close","dialogTarget","loadedValue","quantityTarget","notification","container","idValue","toggleInputFields","shippingTarget","toggleInputs","selected_row","getRow","rowTargets","row_id","scopeValue","handleMonth","monthTarget","yearTarget","handleYear","selectionStart","checkInputPattern","inputMatchesPattern","selectionEnd","pattern","character","setupSecureFields","submit_button","submit_button_placeholder","secureFields","SecureFields","initializeSecureFields","disableForm","expm","expirationMonthTarget","expy","expirationYearTarget","cardNumber","cvv","borderRadius","border","verticalAlign","WebkitAppearance","MozAppearance","Appearance","backgroundColor","fontSize","lineHeight","fontFamily","boxShadow","errorTarget","hasErrors","enableForm","modal","redirect","htmlToElement","bodyTarget","interval","setInterval","clearInterval","responseCode","_data","acs_code","card","template","config","getParents","addActiveClasses","closeSub","clickedNavigationId","currentTarget","headerNavigationId","currentNavigationId","subTargets","endsWith","navbarTarget","intersectionObserver","IntersectionObserver","processIntersectionEntries","rootMargin","paginationTarget","autoLoadValue","isIntersecting","loadMore","next_page","loadingIndicatorTarget","entriesTarget","insertAdjacentHTML","pagination","autoLoad","modalTarget","getTime","regexp","RegExp","group","nestedFieldsGroup","fields","hidden_field","field","buttonTarget","popover","popoverTarget","placementValue","hasPopoverTarget","Navigation","priceTarget","price","originalPrice","originalPriceTarget","urlTargets","imageUrlTarget","imageUrl","deliverabilityTarget","deliverability","stockLevel","outOfStockButtonTarget","addToCartButtonTarget","timer","ms","inputTarget","subTarget","dispatchUpdate","reload","textTargets","tabBodyTargets","tab","tabItemTargets","selectedItem","selectedIndex","Turbo","visit","includeScale","getWindowScroll","pageXOffset","isElement","isHTMLElement","isShadowRoot","ShadowRoot","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","scaleX","scaleY","isElementScaled","scroll","getLayoutRect","clientRect","listScrollParents","list","_element$ownerDocumen","visualViewport","updatedList","isTableElement","getTrueOffsetParent","currentNode","perspective","contain","getContainingBlock","basePlacements","viewport","variationPlacements","acc","modifierPhases","visited","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","pending","orderedModifiers","modifiersData","effectCleanupFns","setOptions","setOptionsAction","cleanupModifierEffects","contextElement","phase","orderModifiers","merged","existing","mergeByName","_ref3","_ref3$options","cleanupFn","noopFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","_options","onFirstUpdate","_options$scroll","_options$resize","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","adaptive","roundOffsets","dpr","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","heightProp","widthProp","commonStyles","initialStyles","margin","getOppositeVariationPlacement","rootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allowedPlacements","overflows","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","_loop","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","additive","minLen","maxLen","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","_state$modifiersData$","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","TOUCH_OPTIONS","TIPPY_DEFAULT_APPEND_TO","getValueAtIndexOrReturn","isType","invokeWithArgsOrReturn","normalizeToArray","pushIfUnique","arrayFrom","div","isMouseEvent","isReferenceElement","_tippy","getArrayOfElements","isNodeList","setTransitionDuration","els","setVisibilityState","getOwnerDocument","elementOrElements","updateTransitionEndListener","actualContains","currentInput","isTouch","lastMouseMoveTime","onDocumentTouchStart","performance","onDocumentMouseMove","onWindowBlur","isVisible","msCrypto","pluginProps","animateFill","followCursor","inlinePositioning","sticky","defaultProps","appendTo","aria","expanded","getReferenceClientRect","hideOnClick","ignoreAttributes","interactive","interactiveBorder","interactiveDebounce","moveTransition","onAfterUpdate","onBeforeUpdate","onDestroy","onHidden","onHide","onMount","onShow","onShown","onTrigger","onUntrigger","onClickOutside","plugins","popperOptions","render","showOnCreate","triggerTarget","allowHTML","animation","inertia","maxWidth","role","theme","zIndex","defaultKeys","getExtendedPassedProps","passedProps","plugin","_name","evaluateProps","out","valueAsString","getDataAttributeProps","dangerouslySetInnerHTML","createArrowElement","getChildren","boxChildren","backdrop","prevProps","nextProps","_getChildren","$$tippy","idCounter","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","lastTriggerEvent","currentTransitionEndListener","isVisibleFromClick","didHideDueToDocumentMouseDown","didTouchMove","ignoreOnFirstUpdate","debouncedOnMouseMove","onMouseMove","popperInstance","isMounted","isShown","clearDelayTimeouts","setProps","partialProps","invokeHook","removeListeners","addListeners","cleanupInteractiveMouseListeners","handleAriaExpandedAttribute","handleStyles","createPopperInstance","getNestedPopperTree","nestedPopper","setContent","show","isAlreadyVisible","isDisabled","isTouchAndTouchDisabled","getCurrentTarget","getIsDefaultRenderFn","visibility","addDocumentPress","_getDefaultTemplateCh2","getDefaultTemplateChildren","_instance$popperInsta2","_getDefaultTemplateCh3","_box","_content","handleAriaContentAttribute","onTransitionEnd","onTransitionedIn","isAlreadyHidden","removeDocumentPress","_getDefaultTemplateCh4","onTransitionedOut","unmount","hideWithInteractivity","destroyPopperInstance","_props$render","pluginsHooks","hasAriaExpanded","scheduleShow","getNormalizedTouchSettings","getIsCustomTouchBehavior","_instance$props$rende","getDelay","isShow","hook","shouldInvokePropsHook","_instance$props","pluginHooks","currentValue","nextValue","onDocumentPress","actualTarget","composedPath","onMouseLeave","onBlurOrFocusOut","_lastTriggerEvent","shouldScheduleClickHide","isEventListenerStopped","wasFocused","scheduleHide","isCursorOverReferenceOrPopper","popperTreeData","clientX","clientY","popperState","topDistance","bottomDistance","leftDistance","rightDistance","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","isCursorOutsideInteractiveBorder","_instance$popperInsta","relatedTarget","_instance$props2","computedReference","_getNormalizedTouchSe","touchValue","touchDelay","tippy","optionalProps","instances","setDefaultProps","_templateObject","_templateObject2","_get","_superPropBase","_taggedTemplateLiteral","strings","_createForOfIteratorHelper","allowArrayLike","it","_unsupportedIterableToArray","_e2","normalCompletion","didErr","_e3","return","_slicedToArray","_arrayWithHoles","_s","_e","_arr","_n","_iterableToArrayLimit","_nonIterableRest","asyncGeneratorStep","gen","_throw","_asyncToGenerator","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","arr2","_createClass","customElements","polyfillWrapFlushCallback","BuiltInHTMLElement","wrapperForTheName","FrameLoadingStyle","submittersByForm","clickCaptured","candidate","submitter","HTMLFormElement","FrameElement","_HTMLElement","delegateConstructor","loadingStyleChanged","sourceURLChanged","disabledChanged","lazy","eager","frameLoadingStyleFromString","isLoading","isPreview","expandURL","locatable","URL","baseURI","getAnchor","anchorMatch","getExtension","getPathComponents","getLastPathComponent","isPrefixedBy","baseURL","getPrefix","startsWith","getRequestURL","anchor","toCacheKey","FetchMethod","FetchResponse","ok","succeeded","statusCode","redirected","contentType","header","clone","nextAnimationFrame","parseHTMLDocument","unindent","lines","interpolate","indent","line","uuid","FetchRequest","URLSearchParams","abortController","AbortController","resolveRequestPromise","defaultHeaders","isIdempotent","mergeFormDataEntries","_allowRequestToBeIntercepted","_receive","_perform","searchParams","abort","_callee","fetchOptions","_context","prepareHeadersForRequest","allowRequestToBeIntercepted","requestStarted","receive","t0","requestErrored","requestFinished","_callee2","fetchResponse","_context2","requestPreventedHandlingResponse","requestSucceededWithResponse","requestFailedWithResponse","_x","credentials","signal","abortSignal","referrer","_callee3","requestInterception","_context3","resume","_x2","_step","currentSearchParams","_iterator","FormSubmissionState","FormEnctype","AppearanceObserver","_this3","intersect","lastEntry","elementAppearedInViewport","StreamMessage","templateElement","_step2","fragment","createDocumentFragment","_iterator2","foreignElements","templateChildren","streamElements","FormSubmission","formElement","mustRedirect","formData","buildFormData","fetchRequest","_start","post","put","patch","fetchMethodFromString","formElementAction","urlEncoded","stringFormData","encoding","multipart","plain","formEnctypeFromString","_ref5","_ref6","_callee4","_FormSubmissionState","_context4","perform","_FormSubmissionState2","stopping","stopped","cookieName","cookie","decodeURIComponent","getCookieValue","getMetaContent","waiting","formSubmission","formSubmissionStarted","clientError","serverError","formSubmissionFailedWithResponse","requestMustRedirect","responseSucceededWithoutRedirect","formSubmissionErrored","receiving","formSubmissionSucceededWithResponse","formSubmissionFinished","Snapshot","getElementForAnchor","snapshot","_step3","permanentElementMap","_iterator3","permanentElements","currentPermanentElement","newPermanentElement","getPermanentElementById","FormInterceptor","_this4","submitBubbled","shouldInterceptFormSubmission","formSubmissionIntercepted","View","resolveRenderPromise","resolveInterceptionPromise","_renderSnapshot","_render","scrollToElement","focusElement","scrollToPosition","scrollToAnchor","scrollIntoView","_ref7","scrollRoot","_callee5","renderer","shouldRender","renderInterception","_this5","_context5","newSnapshot","renderPromise","prepareToRenderSnapshot","allowsImmediateRender","renderSnapshot","viewRenderedSnapshot","finishRenderingSnapshot","invalidate","_x3","viewInvalidated","markAsPreview","prepareToRender","_callee6","_context6","_x4","finishRendering","FrameView","_View","_super2","LinkInterceptor","_this6","clickBubbled","respondsToEventTarget","clickEvent","linkClicked","shouldInterceptLinkClick","linkClickIntercepted","willVisit","Bardo","replaceNewPermanentElementWithPlaceholder","replaceCurrentPermanentElementWithClone","replacePlaceholderWithPermanentElement","permanentElement","createPlaceholderForPermanentElement","replaceWith","getPlaceholderById","placeholders","bardo","enter","leave","Renderer","currentSnapshot","_this7","resolvingFunctions","createdScriptElement","destinationElement","sourceElement","_arr2","_ref9","copyElementAttributes","preservingPermanentElements","connectedSnapshot","firstAutofocusableElement","elementIsFocusable","getPermanentElementMapForSnapshot","_Renderer","FrameRenderer","_render2","_super3","_callee7","_this8","_context7","loadFrameElement","scrollFrameIntoView","focusFirstAutofocusableElement","activateScriptElements","destinationRange","selectNodeContents","currentElement","deleteContents","frameElement","newElement","sourceRange","extractContents","autoscroll","block","_step4","_iterator4","newScriptElements","inertScriptElement","activatedScriptElement","createScriptElement","ProgressBar","_this9","hiding","visible","trickle","setValue","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","installStylesheetElement","installProgressElement","startTrickling","_this10","fadeProgressElement","uninstallProgressElement","stopTrickling","opacity","animationDuration","trickleInterval","_this11","defaultCSS","HeadSnapshot","_Snapshot","_super4","_this12","detailsByOuterHTML","elementIsNoscript","elementWithoutNonce","outerHTML","elementType","tracked","elementIsTracked","_this13","getElementsMatchingTypeNotInSnapshot","matchedType","_this14","_ref10","_ref11","_this15","_this15$detailsByOute","findMetaElementByName","_this16","elementIsMetaElementWithName","elementIsScript","elementIsStylesheet","TimingMetric","VisitState","PageSnapshot","_Snapshot2","_super5","headSnapshot","_this17","getSetting","cacheControlValue","fromDocument","_ref12","SystemStatusCode","historyChanged","Visit","restorationIdentifier","timingMetrics","followedRedirect","snapshotCached","snapshotHTML","isSamePage","locationWithActionIsSamePage","_render3","_requestFailedWithResponse","_requestSucceededWithResponse","adapter","view","getRestorationDataForIdentifier","recordTimingMetric","visitStart","visitStarted","cancelRender","canceled","visitEnd","completed","visitCompleted","followRedirect","failed","visitFailed","actionForHistory","getHistoryMethodForAction","hasPreloadedResponse","simulateRequest","shouldIssueRequest","startRequest","recordResponse","finishRequest","requestStart","visitRequestStarted","isSuccessful","visitRequestCompleted","visitRequestFailedWithStatusCode","requestEnd","visitRequestFinished","_this18","_this$response","responseHTML","_callee8","_context8","cacheSnapshot","renderPage","fromHTMLString","visitRendered","renderError","fail","getCachedSnapshotForLocation","getPreloadedSnapshot","hasAnchor","isPreviewable","getCachedSnapshot","_this19","_callee9","_context9","redirectedToLocation","visitProposedToLocation","_this20","_callee10","_context10","_callee11","_context11","contentTypeMismatch","_x5","_x6","_callee12","_context12","_x7","_x8","networkFailure","scrollToRestoredPosition","scrollToTop","visitScrolledToSamePageLocation","lastRenderedLocation","scrollPosition","restorationData","metric","hasCachedSnapshot","_callee13","_this21","_context13","frame","performScroll","_x9","BrowserAdapter","session","_this22","progressBar","showProgressBar","startVisit","issueRequest","changeHistory","goToSamePageAnchor","loadCachedSnapshot","showVisitProgressBarAfterDelay","loadResponse","timeoutFailure","hideVisitProgressBar","showFormProgressBarAfterDelay","hideFormProgressBar","visitProgressBarTimeout","progressBarDelay","formProgressBarTimeout","CacheObserver","removeStaleElements","_step5","_iterator5","FormSubmitObserver","_this23","submitCaptured","willSubmitForm","formSubmitted","FrameRedirector","linkInterceptor","formInterceptor","shouldRedirect","findFrameElement","History","_this24","pageLoaded","onPopState","shouldHandlePopState","turbo","historyPoppedToLocationWithRestorationIdentifier","onPageLoad","_ref17","_callee14","_context14","_x10","additionalData","previousScrollRestoration","scrollRestoration","pageIsLoaded","LinkClickObserver","_this25","clickEventIsSignificant","findLinkFromClickTarget","_location","getLocationForLink","willFollowLinkToLocation","followedLinkToLocation","altKey","shiftKey","isAction","PageStage","Navigator","_formSubmissionFailedWithResponse","_formSubmissionSucceededWithResponse","allowsVisitingLocationWithAction","currentVisit","proposeVisit","getActionForFormSubmission","_callee15","visitOptions","_context15","clearSnapshotCache","_x11","_x12","_callee16","_context16","_x13","_x14","currentAnchor","isRestorationToTop","oldURL","newURL","PageObserver","_this26","stage","interpretReadyState","pageIsInteractive","pageIsComplete","pageWillUnload","loading","pageBecameInteractive","ScrollObserver","_this27","updatePosition","scrollPositionChanged","StreamObserver","_this28","sources","inspectFetchResponse","fetchResponseFromEvent","fetchResponseIsStream","receiveMessageResponse","receiveMessageEvent","receiveMessageHTML","_receiveMessageResponse","streamSourceIsConnected","_callee17","_context17","_x15","receivedMessageFromStream","_Renderer2","ErrorRenderer","_render4","_super6","_callee18","_context18","replaceHeadAndBody","_document","replaceChild","newHead","_step6","_iterator6","scriptElements","replaceableElement","_Renderer3","PageRenderer","_render5","_super7","isVisitable","trackedElementsAreIdentical","mergeHead","_callee19","_context19","replaceBody","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","_this29","activateNewBody","assignNewBody","currentHeadSnapshot","trackedElementSignature","newHeadSnapshot","_step7","_iterator7","newHeadStylesheetElements","_step8","_iterator8","newHeadScriptElements","_step9","_iterator9","currentHeadProvisionalElements","_step10","_iterator10","newHeadProvisionalElements","adoptNode","activateNewBodyScriptElements","_step11","_iterator11","newBodyScriptElements","HTMLBodyElement","getStylesheetElementsNotInSnapshot","getScriptElementsNotInSnapshot","provisionalElements","SnapshotCache","snapshots","_step12","_iterator12","_View2","PageView","_cacheSnapshot","_super8","_this30","snapshotCache","_callee20","_location2","_context20","shouldCacheSnapshot","viewWillCacheSnapshot","fromElement","isCacheable","extendURLWithDeprecatedProperties","deprecatedLocationPropertyDescriptors","absoluteURL","Session","pageObserver","cacheObserver","linkClickObserver","formSubmitObserver","scrollObserver","streamObserver","frameRedirector","drive","connectStreamSource","disconnectStreamSource","pageInvalidated","updateRestorationData","elementDriveEnabled","locationIsVisitable","applicationAllowsFollowingLinkToLocation","getActionForLink","convertLinkWithMethodClickToFormSubmission","linkMethod","applicationAllowsVisitingLocation","silent","notifyApplicationAfterVisitingLocation","notifyApplicationAfterPageLoad","getTimingMetrics","notifyApplicationAfterVisitingSamePageLocation","assumeControlOfScrollRestoration","relinquishControlOfScrollRestoration","renderStreamMessage","notifyApplicationBeforeCachingSnapshot","_ref18","notifyApplicationBeforeRender","notifyApplicationAfterRender","notifyApplicationAfterFrameLoad","notifyApplicationAfterFrameRender","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","newBody","timing","HashChangeEvent","rootLocation","registerAdapter","clearCache","setProgressBarDelay","FrameController","resolveVisitPromise","connected","hasBeenLoaded","settingSourceURL","appearanceObserver","_extractForeignFrameElement","_visit","_requestSucceededWithResponse2","_loadResponse","_loadSourceURL","reloadable","loadingStyle","loadSourceURL","_callee21","previousURL","_context21","isActive","sourceURL","currentURL","frameLoaded","_callee22","_parseHTMLDocument","_context22","extractForeignFrameElement","t1","frameRendered","t2","_x16","shouldInterceptNavigation","navigateFrame","_callee23","_context23","_x17","_x18","_callee24","_this31","_context24","_x19","getFrameElementById","_callee25","_context25","CSS","escape","activateElement","_x20","connectedCallback","consumer","StreamActions","after","_this32","targetElements","templateContent","nextSibling","_this33","removeDuplicateTargetChildren","before","_this34","_this35","_this36","_this37","_HTMLElement2","StreamElement","_render6","_connectedCallback","_super9","_callee26","_context26","_callee28","_this38","_context28","_callee27","_context27","beforeRenderEvent","performAction","duplicateChildren","existingChildren","flatMap","newChildrenIds","includes","actionFunction","raise","targetElementsById","targetElementsByQuery","HTMLTemplateElement","description","getConsumer","_getConsumer","setConsumer","newConsumer","_createConsumer","_yield$import","createConsumer","subscribeTo","_subscribeTo","channel","mixin","_yield$getConsumer","subscriptions","currentScript","TurboCableStreamSourceElement","received","dispatchMessageEvent","subscription","unsubscribe","MessageEvent","signed_stream_name","require","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","containerScrollTops","ele","turboPreserveScrollContainer","containerScrollTop","Pagination","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","progressbarFillClass","renderCustom","lockClass","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","hiddenClass","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","targetEl","toggleEl","disabledClass","_swiper$navigation","$nextEl","$prevEl","onPrevClick","onNextClick","_swiper$navigation2","toEdge","fromEdge","_swiper$navigation3","_swiper$navigation4","isHidden"],"mappings":"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","file":"js/application-8d4091c97f6167478729.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"0\":\"actioncable\"}[chunkId]||chunkId) + \"-\" + {\"0\":\"83681d86d91c97febbc1\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 68);\n","module.exports = require(\"regenerator-runtime\");\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 { getDocument, getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return _typeof(o) === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n\n return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","var EventListener = function () {\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 = function () {\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 = function () {\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 = function () {\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 = function () {\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 = function () {\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 = function () {\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 = function () {\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 = function (_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 = function () {\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 = function () {\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 = function () {\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 = function () {\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 = function () {\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 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}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module = function () {\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 = function () {\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 (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","import { dasherize } from \"./string_helpers\";\n\nvar DataMap = function () {\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 = function () {\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 = function () {\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 = function () {\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 = function () {\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 = function () {\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 = function () {\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 = function () {\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 Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","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/main/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:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) 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 CSRFProtection(xhr);\n }\n\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);","export var method = function method(controller, methodName) {\n var method = controller[methodName];\n\n if (typeof method == 'function') {\n return method;\n } else {\n return function () {};\n }\n};\nexport var composeEventName = function composeEventName(name, controller, eventPrefix) {\n var composedName = name;\n\n if (eventPrefix === true) {\n composedName = \"\".concat(controller.identifier, \":\").concat(name);\n } else if (typeof eventPrefix === 'string') {\n composedName = \"\".concat(eventPrefix, \":\").concat(name);\n }\n\n return composedName;\n};\nexport var extendedEvent = function extendedEvent(type, event, detail) {\n var _ref = event || {\n bubbles: true,\n cancelable: true,\n composed: true\n },\n bubbles = _ref.bubbles,\n cancelable = _ref.cancelable,\n composed = _ref.composed;\n\n if (event) {\n Object.assign(detail, {\n originalEvent: event\n });\n }\n\n var customEvent = new CustomEvent(type, {\n bubbles: bubbles,\n cancelable: cancelable,\n composed: composed,\n detail: detail\n });\n return customEvent;\n};\nexport function isElementInViewport(el) {\n var rect = el.getBoundingClientRect();\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var vertInView = rect.top <= windowHeight && rect.top + rect.height >= 0;\n var horInView = rect.left <= windowWidth && rect.left + rect.width >= 0;\n return vertInView && horInView;\n}\nexport function camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) {\n return char.toUpperCase();\n });\n}","var _excluded = [\"event\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultOptions = {\n debug: false,\n logger: console,\n dispatchEvent: true,\n eventPrefix: true\n};\nexport var StimulusUse = function StimulusUse(controller) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, StimulusUse);\n\n var _a, _b, _c;\n\n this.log = function (functionName, args) {\n if (!_this.debug) return;\n\n _this.logger.groupCollapsed(\"%c\".concat(_this.controller.identifier, \" %c#\").concat(functionName), 'color: #3B82F6', 'color: unset');\n\n _this.logger.log(_objectSpread({\n controllerId: _this.controllerId\n }, args));\n\n _this.logger.groupEnd();\n };\n\n this.dispatch = function (eventName) {\n var details = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (_this.dispatchEvent) {\n var event = details.event,\n eventDetails = _objectWithoutProperties(details, _excluded);\n\n var customEvent = _this.extendedEvent(eventName, event || null, eventDetails);\n\n _this.targetElement.dispatchEvent(customEvent);\n\n _this.log('dispatchEvent', _objectSpread({\n eventName: customEvent.type\n }, eventDetails));\n }\n };\n\n this.call = function (methodName) {\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var method = _this.controller[methodName];\n\n if (typeof method == 'function') {\n return method.call(_this.controller, args);\n }\n };\n\n this.extendedEvent = function (name, event, detail) {\n var _ref = event || {\n bubbles: true,\n cancelable: true,\n composed: true\n },\n bubbles = _ref.bubbles,\n cancelable = _ref.cancelable,\n composed = _ref.composed;\n\n if (event) {\n Object.assign(detail, {\n originalEvent: event\n });\n }\n\n var customEvent = new CustomEvent(_this.composeEventName(name), {\n bubbles: bubbles,\n cancelable: cancelable,\n composed: composed,\n detail: detail\n });\n return customEvent;\n };\n\n this.composeEventName = function (name) {\n var composedName = name;\n\n if (_this.eventPrefix === true) {\n composedName = \"\".concat(_this.controller.identifier, \":\").concat(name);\n } else if (typeof _this.eventPrefix === 'string') {\n composedName = \"\".concat(_this.eventPrefix, \":\").concat(name);\n }\n\n return composedName;\n };\n\n this.debug = (_b = (_a = options === null || options === void 0 ? void 0 : options.debug) !== null && _a !== void 0 ? _a : controller.application.stimulusUseDebug) !== null && _b !== void 0 ? _b : defaultOptions.debug;\n this.logger = (_c = options === null || options === void 0 ? void 0 : options.logger) !== null && _c !== void 0 ? _c : defaultOptions.logger;\n this.controller = controller;\n this.controllerId = controller.element.id || controller.element.dataset.id;\n this.targetElement = (options === null || options === void 0 ? void 0 : options.element) || controller.element;\n\n var _Object$assign = Object.assign({}, defaultOptions, options),\n dispatchEvent = _Object$assign.dispatchEvent,\n eventPrefix = _Object$assign.eventPrefix;\n\n Object.assign(this, {\n dispatchEvent: dispatchEvent,\n eventPrefix: eventPrefix\n }); // make copies of lifecycle functions\n\n this.controllerInitialize = controller.initialize.bind(controller);\n this.controllerConnect = controller.connect.bind(controller);\n this.controllerDisconnect = controller.disconnect.bind(controller);\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { composeEventName } from '../support/index';\nimport { StimulusUse } from '../stimulus-use';\nvar defaultOptions = {\n eventPrefix: true,\n bubbles: true,\n cancelable: true\n};\nexport var UseDispatch = /*#__PURE__*/function (_StimulusUse) {\n _inherits(UseDispatch, _StimulusUse);\n\n var _super = _createSuper(UseDispatch);\n\n function UseDispatch(controller) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, UseDispatch);\n\n var _a, _b, _c, _d;\n\n _this = _super.call(this, controller, options);\n\n _this.dispatch = function (eventName) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n controller = _assertThisInitialize.controller,\n targetElement = _assertThisInitialize.targetElement,\n eventPrefix = _assertThisInitialize.eventPrefix,\n bubbles = _assertThisInitialize.bubbles,\n cancelable = _assertThisInitialize.cancelable,\n log = _assertThisInitialize.log; // includes the emitting controller in the event detail\n\n\n Object.assign(detail, {\n controller: controller\n });\n var eventNameWithPrefix = composeEventName(eventName, _this.controller, eventPrefix); // creates the custom event\n\n var event = new CustomEvent(eventNameWithPrefix, {\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n }); // dispatch the event from the given element or by default from the root element of the controller\n\n targetElement.dispatchEvent(event);\n log('dispatch', {\n eventName: eventNameWithPrefix,\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n });\n return event;\n };\n\n _this.targetElement = (_a = options.element) !== null && _a !== void 0 ? _a : controller.element;\n _this.eventPrefix = (_b = options.eventPrefix) !== null && _b !== void 0 ? _b : defaultOptions.eventPrefix;\n _this.bubbles = (_c = options.bubbles) !== null && _c !== void 0 ? _c : defaultOptions.bubbles;\n _this.cancelable = (_d = options.cancelable) !== null && _d !== void 0 ? _d : defaultOptions.cancelable;\n\n _this.enhanceController();\n\n return _this;\n }\n\n _createClass(UseDispatch, [{\n key: \"enhanceController\",\n value: function enhanceController() {\n Object.assign(this.controller, {\n dispatch: this.dispatch\n });\n }\n }]);\n\n return UseDispatch;\n}(StimulusUse);\nexport var useDispatch = function useDispatch(controller) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new UseDispatch(controller, options);\n};","module.exports = __webpack_public_path__ + \"media/images/favicon-2418d8a60a8f71180d275142a0a25a6c.png\";","module.exports = __webpack_public_path__ + \"media/images/banner-9577486d8810b8ae78731416885c4eb9.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/footer-4c1094a38f3cd3d5ab2cf68721766681.jpg\";","module.exports = __webpack_public_path__ + \"media/images/logo-a9d4e407663544249a2953e124335d67.svg\";","module.exports = __webpack_public_path__ + \"media/images/logo-email-8029222a4c2f2da7345a09c3f96262c6.png\";","module.exports = __webpack_public_path__ + \"media/images/logo-simple-4894a2538d97ab12941023d888353d1e.svg\";","module.exports = __webpack_public_path__ + \"media/images/logos/mastercard-e2327d2205d5d68b41f7a07c69c14264.svg\";","module.exports = __webpack_public_path__ + \"media/images/logos/post-1f669f07c673a5ebe0600e1d65a1469a.svg\";","module.exports = __webpack_public_path__ + \"media/images/logos/visa-852f070f0ef9bcd44c6a27b841abc168.svg\";","module.exports = __webpack_public_path__ + \"media/images/missing-product-image-4201774a2adabff11c378341cf3e906a.svg\";","module.exports = __webpack_public_path__ + \"media/images/x-78b61a294431b59529bca13c9bdab99a.svg\";","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(a,b){if(typeof define===\"function\"&&define.amd){define([],b)}else{if(typeof module===\"object\"&&module.exports){module.exports=b()}else{a.SecureFields=b()}}}(typeof self!==\"undefined\"?self:this,function(){return function(D){var B={};var A=h();var G={};var y={TOKENIZE:\"TOKENIZE\",PAY:\"PAY\",REGISTER:\"REGISTER\"};var d=\"/upp/payment/SecureFields\",e,s,g,f,p,c,z,F,q,w;function C(){e={};s={};g=[];p=false;F=\"\";w=null;f=null;G={}}C();function l(){if(window.console&&e.debug){var H=Array.prototype.slice.call(arguments).map(function(I){return(typeof I===\"object\")?JSON.stringify(I,null,\"\\t\"):I});H.splice(1,0,\"color: blue\");H[0]=\"%c\"+H[0];console.log.apply(console,H)}}function h(){return Math.random().toString(36).substr(2,9)}function m(H){return\"securefields-\"+A+\"--\"+H}B.initTokenize=function(J,I,H){q=y.TOKENIZE;n(J,null,I,H)};B.initPay=function(J,I,H){q=y.PAY;n(J,null,I,H)};B.initRegister=function(J,I,H){q=y.REGISTER;n(J,null,I,H)};B.init=function(J,I,H){n(null,J,I,H)};function n(K,M,I,H){C();c=K;z=M;e=H||{};for(var N in I){if(!I.hasOwnProperty(N)){return}var J=I[N];var L;if(typeof J===\"object\"){L=J.placeholderElementId}else{L=J}s[N]={fieldName:N,placeholderElementId:L,placeholder:J.placeholder,ariaLabel:J.ariaLabel,inputType:J.inputType,alive:false};g.push(N)}g.sort(function(P,O){if(P===\"cardNumber\"){return -1}else{if(O===\"cardNumber\"){return 1}else{return P.localeCompare(O)}}});if(Object.prototype.toString.call(e.paymentMethods)===Object.prototype.toString.call([])&&e.paymentMethods.length>0){w=e.paymentMethods.join(\",\")}l(\"Initializing iframes for merchantId/transactionId %s/%s\",c,z,s,e);f=g[0];b(s[f])}function b(L){var M=document.getElementById(L.placeholderElementId);var K={mode:q,merchantId:c,transactionId:z,fieldName:L.fieldName,formId:F,placeholder:L.placeholder,ariaLabel:L.ariaLabel,inputType:L.inputType,debug:e.debug,countryCode:e.countryCode,version:datatransPaymentConfig.version,paymentMethods:w,fieldNames:g.join(\",\"),instanceId:A};var H=m(L.fieldName);var I={id:H,name:H,src:datatransPaymentConfig.endpoint+d+\"/paymentField?\"+k(K),frameborder:\"0\",scrolling:\"no\",\"class\":H};var J=document.createElement(\"iframe\");Object.keys(I).forEach(function(N){J.setAttribute(N,I[N])});J.setAttribute(\"style\",\"width: 100%; height: 100%\");while(M.hasChildNodes()){M.removeChild(M.lastChild)}M.appendChild(J);l(\"Created iframe for field %s\",L);L.iframe=J[0]}function j(){for(var H=1;H0&&(M[0].indexOf(\"@media\")===0||M[0].indexOf(\"@font-face\")===0)){B.setStyle(H,null,M[0]);continue}var J=M.shift();for(var P in s){if(s.hasOwnProperty(P)&&(J===\"*\"||J===P)){window.frames[m(P)].postMessage({messageType:\"setStyle\",selectors:M,style:H,globalSelector:L},\"*\")}}}};B.setPlaceholder=function(I,H){if(s.hasOwnProperty(I)){window.frames[m(I)].postMessage({messageType:\"setPlaceholder\",placeholder:H},\"*\")}};B.setAriaLabel=function(I,H){if(s.hasOwnProperty(I)){window.frames[m(I)].postMessage({messageType:\"setAriaLabel\",ariaLabel:H},\"*\")}};B.submit=function(H,I){v(\"submitRequest\",{parameters:H,browserDetails:{browserUserAgent:navigator.userAgent,browserJavaEnabled:navigator.javaEnabled(),browserLanguage:navigator.language,browserColorDepth:screen.colorDepth,browserScreenHeight:screen.height,browserScreenWidth:screen.width,browserTZ:(new Date()).getTimezoneOffset()}},I)};B.validate=function(){l(\"Sending validate event\");window.frames[m(f)].postMessage({messageType:\"validateRequest\"},\"*\")};B.getCardInfo=function(H){v(\"cardInfoRequest\",{},H)};function v(I,J,K){if(K!==undefined&&K instanceof Function){var H=I+\":\"+h();G[H]=K;J.messageId=H}J.messageType=I;l(\">>> %s\\n%s\",I,J);window.frames[m(f)].postMessage(J,\"*\")}B.focus=function(H){window.frames[m(H)].focus()};B.clear=function(H){window.frames[m(H)].postMessage({messageType:\"clear\"},\"*\")};function i(K){if(A!==K.data.instanceId){return}l(\"<<< (instance id: %s)\\n\\torigin: %s\\n\\tdata: %s\",A,K.origin,K.data);if(datatransPaymentConfig.endpoint!==K.origin){l(\"message ignored. origin should be: %s\",datatransPaymentConfig.endpoint);return}var H={fieldReady:function(M){if(!s[M.fieldName]){return}s[M.fieldName].alive=true;if(M.fieldName===f){F=M.formId;j()}E()},initResponse:function(M){M.error.action=\"init\";r(\"error\",M.error)},submitResponse:function(N){var M=N.response;var O=M.result===\"success\";delete M.result;if(O){r(\"success\",N.response)}else{N.response.action=\"submit\";r(\"error\",N.response)}},validateResponse:function(M){r(\"validate\",M.response)},cardInfoResponse:function(M){r(\"cardInfo\",M.response)},change:function(M){r(\"change\",M.response)}};var I=K.data.messageId;var L=G[I];if(L!==undefined){delete G[I];L.apply(B,[K.data.response])}else{var J=H[K.data.messageType];if(J){J.apply(B,[K.data])}}}window.addEventListener(\"message\",i,false);function E(){p=Object.keys(s).map(function(I,H){return s[I].alive}).reduce(function(I,H){return I&&H},true);if(p){l(\"All iframes are ready. Sending ready event.\");if(typeof e.styles!==\"undefined\"){B.setStyle(e.styles)}if(typeof e.focus!==\"undefined\"){B.focus(e.focus)}r(\"ready\");o()}}function a(H){Object.keys(s).map(function(J){var I=window.frames[m(J)];if(typeof I!==\"undefined\"){I.postMessage({messageType:\"checkFocus\"},\"*\")}})}function o(){document.addEventListener(\"touchend\",a,true)}var t={};B.on=function(I,H){t[I]=H};var r=function(){var H=Array.prototype.slice.call(arguments);var I=t[H.shift()];if(I){I.apply(null,H)}};function k(H){var I=Object.keys(H).filter(function(J){var K=H[J];return J&&typeof K!==\"undefined\"&&K!==null}).map(function(J){return J+\"=\"+H[J]}).join(\"&\");return encodeURI(I)}B.destroy=function(){window.removeEventListener(\"touchend\",a,true);window.removeEventListener(\"message\",i,false);x()};return B}}));\r\nvar datatransPaymentConfig = {\"endpoint\":process.env.DATATRANS_SECURE_FIELDS_ENDPOINT,\"version\":\"2.0.0\"};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it\n * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js\n * License: MIT\n */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.Headroom = factory());\n})(this, function () {\n 'use strict';\n\n function isBrowser() {\n return typeof window !== \"undefined\";\n }\n /**\n * Used to detect browser support for adding an event listener with options\n * Credit: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n */\n\n\n function passiveEventsSupported() {\n var supported = false;\n\n try {\n var options = {\n // eslint-disable-next-line getter-return\n get passive() {\n supported = true;\n }\n\n };\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (err) {\n supported = false;\n }\n\n return supported;\n }\n\n function isSupported() {\n return !!(isBrowser() && function () {}.bind && \"classList\" in document.documentElement && Object.assign && Object.keys && requestAnimationFrame);\n }\n\n function isDocument(obj) {\n return obj.nodeType === 9; // Node.DOCUMENT_NODE === 9\n }\n\n function isWindow(obj) {\n // `obj === window` or `obj instanceof Window` is not sufficient,\n // as the obj may be the window of an iframe.\n return obj && obj.document && isDocument(obj.document);\n }\n\n function windowScroller(win) {\n var doc = win.document;\n var body = doc.body;\n var html = doc.documentElement;\n return {\n /**\n * @see http://james.padolsey.com/javascript/get-document-height-cross-browser/\n * @return {Number} the scroll height of the document in pixels\n */\n scrollHeight: function scrollHeight() {\n return Math.max(body.scrollHeight, html.scrollHeight, body.offsetHeight, html.offsetHeight, body.clientHeight, html.clientHeight);\n },\n\n /**\n * @see http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript\n * @return {Number} the height of the viewport in pixels\n */\n height: function height() {\n return win.innerHeight || html.clientHeight || body.clientHeight;\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the page has scrolled along the Y-axis\n */\n scrollY: function scrollY() {\n if (win.pageYOffset !== undefined) {\n return win.pageYOffset;\n }\n\n return (html || body.parentNode || body).scrollTop;\n }\n };\n }\n\n function elementScroller(element) {\n return {\n /**\n * @return {Number} the scroll height of the element in pixels\n */\n scrollHeight: function scrollHeight() {\n return Math.max(element.scrollHeight, element.offsetHeight, element.clientHeight);\n },\n\n /**\n * @return {Number} the height of the element in pixels\n */\n height: function height() {\n return Math.max(element.offsetHeight, element.clientHeight);\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the element has scrolled along the Y-axis\n */\n scrollY: function scrollY() {\n return element.scrollTop;\n }\n };\n }\n\n function createScroller(element) {\n return isWindow(element) ? windowScroller(element) : elementScroller(element);\n }\n /**\n * @param element EventTarget\n */\n\n\n function trackScroll(element, options, callback) {\n var isPassiveSupported = passiveEventsSupported();\n var rafId;\n var scrolled = false;\n var scroller = createScroller(element);\n var lastScrollY = scroller.scrollY();\n var details = {};\n\n function update() {\n var scrollY = Math.round(scroller.scrollY());\n var height = scroller.height();\n var scrollHeight = scroller.scrollHeight(); // reuse object for less memory churn\n\n details.scrollY = scrollY;\n details.lastScrollY = lastScrollY;\n details.direction = scrollY > lastScrollY ? \"down\" : \"up\";\n details.distance = Math.abs(scrollY - lastScrollY);\n details.isOutOfBounds = scrollY < 0 || scrollY + height > scrollHeight;\n details.top = scrollY <= options.offset[details.direction];\n details.bottom = scrollY + height >= scrollHeight;\n details.toleranceExceeded = details.distance > options.tolerance[details.direction];\n callback(details);\n lastScrollY = scrollY;\n scrolled = false;\n }\n\n function handleScroll() {\n if (!scrolled) {\n scrolled = true;\n rafId = requestAnimationFrame(update);\n }\n }\n\n var eventOptions = isPassiveSupported ? {\n passive: true,\n capture: false\n } : false;\n element.addEventListener(\"scroll\", handleScroll, eventOptions);\n update();\n return {\n destroy: function destroy() {\n cancelAnimationFrame(rafId);\n element.removeEventListener(\"scroll\", handleScroll, eventOptions);\n }\n };\n }\n\n function normalizeUpDown(t) {\n return t === Object(t) ? t : {\n down: t,\n up: t\n };\n }\n /**\n * UI enhancement for fixed headers.\n * Hides header when scrolling down\n * Shows header when scrolling up\n * @constructor\n * @param {DOMElement} elem the header element\n * @param {Object} options options for the widget\n */\n\n\n function Headroom(elem, options) {\n options = options || {};\n Object.assign(this, Headroom.options, options);\n this.classes = Object.assign({}, Headroom.options.classes, options.classes);\n this.elem = elem;\n this.tolerance = normalizeUpDown(this.tolerance);\n this.offset = normalizeUpDown(this.offset);\n this.initialised = false;\n this.frozen = false;\n }\n\n Headroom.prototype = {\n constructor: Headroom,\n\n /**\n * Start listening to scrolling\n * @public\n */\n init: function init() {\n if (Headroom.cutsTheMustard && !this.initialised) {\n this.addClass(\"initial\");\n this.initialised = true; // defer event registration to handle browser\n // potentially restoring previous scroll position\n\n setTimeout(function (self) {\n self.scrollTracker = trackScroll(self.scroller, {\n offset: self.offset,\n tolerance: self.tolerance\n }, self.update.bind(self));\n }, 100, this);\n }\n\n return this;\n },\n\n /**\n * Destroy the widget, clearing up after itself\n * @public\n */\n destroy: function destroy() {\n this.initialised = false;\n Object.keys(this.classes).forEach(this.removeClass, this);\n this.scrollTracker.destroy();\n },\n\n /**\n * Unpin the element\n * @public\n */\n unpin: function unpin() {\n if (this.hasClass(\"pinned\") || !this.hasClass(\"unpinned\")) {\n this.addClass(\"unpinned\");\n this.removeClass(\"pinned\");\n\n if (this.onUnpin) {\n this.onUnpin.call(this);\n }\n }\n },\n\n /**\n * Pin the element\n * @public\n */\n pin: function pin() {\n if (this.hasClass(\"unpinned\")) {\n this.addClass(\"pinned\");\n this.removeClass(\"unpinned\");\n\n if (this.onPin) {\n this.onPin.call(this);\n }\n }\n },\n\n /**\n * Freezes the current state of the widget\n * @public\n */\n freeze: function freeze() {\n this.frozen = true;\n this.addClass(\"frozen\");\n },\n\n /**\n * Re-enables the default behaviour of the widget\n * @public\n */\n unfreeze: function unfreeze() {\n this.frozen = false;\n this.removeClass(\"frozen\");\n },\n top: function top() {\n if (!this.hasClass(\"top\")) {\n this.addClass(\"top\");\n this.removeClass(\"notTop\");\n\n if (this.onTop) {\n this.onTop.call(this);\n }\n }\n },\n notTop: function notTop() {\n if (!this.hasClass(\"notTop\")) {\n this.addClass(\"notTop\");\n this.removeClass(\"top\");\n\n if (this.onNotTop) {\n this.onNotTop.call(this);\n }\n }\n },\n bottom: function bottom() {\n if (!this.hasClass(\"bottom\")) {\n this.addClass(\"bottom\");\n this.removeClass(\"notBottom\");\n\n if (this.onBottom) {\n this.onBottom.call(this);\n }\n }\n },\n notBottom: function notBottom() {\n if (!this.hasClass(\"notBottom\")) {\n this.addClass(\"notBottom\");\n this.removeClass(\"bottom\");\n\n if (this.onNotBottom) {\n this.onNotBottom.call(this);\n }\n }\n },\n shouldUnpin: function shouldUnpin(details) {\n var scrollingDown = details.direction === \"down\";\n return scrollingDown && !details.top && details.toleranceExceeded;\n },\n shouldPin: function shouldPin(details) {\n var scrollingUp = details.direction === \"up\";\n return scrollingUp && details.toleranceExceeded || details.top;\n },\n addClass: function addClass(className) {\n this.elem.classList.add.apply(this.elem.classList, this.classes[className].split(\" \"));\n },\n removeClass: function removeClass(className) {\n this.elem.classList.remove.apply(this.elem.classList, this.classes[className].split(\" \"));\n },\n hasClass: function hasClass(className) {\n return this.classes[className].split(\" \").every(function (cls) {\n return this.classList.contains(cls);\n }, this.elem);\n },\n update: function update(details) {\n if (details.isOutOfBounds) {\n // Ignore bouncy scrolling in OSX\n return;\n }\n\n if (this.frozen === true) {\n return;\n }\n\n if (details.top) {\n this.top();\n } else {\n this.notTop();\n }\n\n if (details.bottom) {\n this.bottom();\n } else {\n this.notBottom();\n }\n\n if (this.shouldUnpin(details)) {\n this.unpin();\n } else if (this.shouldPin(details)) {\n this.pin();\n }\n }\n };\n /**\n * Default options\n * @type {Object}\n */\n\n Headroom.options = {\n tolerance: {\n up: 0,\n down: 0\n },\n offset: 0,\n scroller: isBrowser() ? window : null,\n classes: {\n frozen: \"headroom--frozen\",\n pinned: \"headroom--pinned\",\n unpinned: \"headroom--unpinned\",\n top: \"headroom--top\",\n notTop: \"headroom--not-top\",\n bottom: \"headroom--bottom\",\n notBottom: \"headroom--not-bottom\",\n initial: \"headroom\"\n }\n };\n Headroom.cutsTheMustard = isSupported();\n return Headroom;\n});","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\n\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\n\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\n\n\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n } // NOTE: 1 DOM access here\n\n\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\n\n\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\n}\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\n\n\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n\n case '#document':\n return element.body;\n } // Firefox want us to check `-x` and `-y` variations as well\n\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\n\n\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\n\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n\n if (version === 10) {\n return isIE10;\n }\n\n return isIE11 || isIE10;\n}\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n\n\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here\n\n var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent\n\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n } // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n\n\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\n\n\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\n\n\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n } // Here we make sure to give as \"start\" the element that comes first in the DOM\n\n\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1; // Get common ancestor container\n\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n } // one of the nodes is inside shadowDOM, find which one\n\n\n var element1root = getRoot(element1);\n\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\n\n\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\n\n\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar 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\nvar defineProperty = function defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _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 * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\n\n\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\n\n\nfunction getBoundingClientRect(element) {\n var rect = {}; // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n }; // subtract scrollbar size from sizes\n\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height; // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0; // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them\n\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n return getClientRect(offset);\n}\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\n\n\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n var parentNode = getParentNode(element);\n\n if (!parentNode) {\n return false;\n }\n\n return isFixed(parentNode);\n}\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n\n var el = element.parentElement;\n\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\n}\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\n\n\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case\n\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation\n\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n } // Add paddings\n\n\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\n}\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\n}\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\n\n\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n\n\nfunction getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0]; // Get popper node sizes\n\n var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object\n\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n }; // depending by the popper placement we have to compute its offsets slightly differently\n\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n } // use `filter` to obtain the same behavior of `find`\n\n\n return arr.filter(check)[0];\n}\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n } // use `find` + `indexOf` if `findIndex` isn't supported\n\n\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\n\n\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n data = fn(data, modifier);\n }\n });\n return data;\n}\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\n\n\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n }; // compute reference element offsets\n\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement`\n\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed; // compute the popper offsets\n\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers\n\n data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\n\n\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\n\n\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n\n return null;\n}\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\n\n\nfunction destroy() {\n this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled\n\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners(); // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n\n return this;\n}\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\n\n\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\n passive: true\n });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n\n scrollParents.push(target);\n}\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n }); // Scroll event listener on scroll parents\n\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\n}\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\n\n\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents\n\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n }); // Reset state\n\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\n\n\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\n\n\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = ''; // add unit if the value is numeric and is one of the following\n\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n\n element.style[prop] = styles[prop] + unit;\n });\n}\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\n\n\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles); // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n\n setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties\n\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\n\n\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\n}\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\n\n\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent); // Styles\n\n var styles = {\n position: popper.position\n };\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right'; // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n\n var prefixedProperty = getSupportedPropertyName('transform'); // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n\n var left = void 0,\n top = void 0;\n\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n } // Attributes\n\n\n var attributes = {\n 'x-placement': data.placement\n }; // Update `data` attributes, styles and arrowStyles\n\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n}\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\n\n\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n\n return isRequired;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction arrow(data, options) {\n var _data$offsets$arrow; // arrow depends on keepTogether in order to work\n\n\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier\n\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len]; //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n // top/left side\n\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n } // bottom/right side\n\n\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper\n\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper\n\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n return data;\n}\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\n\n\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n\n return variation;\n}\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\n\n\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end`\n\nvar validPlacements = placements.slice(3);\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\n\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here\n\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required\n\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries\n\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries\n\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : ''); // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\n\n\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2]; // If it's not a number it's an operator, I guess\n\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\n\n\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0]; // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n }); // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n } // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n\n\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations\n\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, []) // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n }); // Loop trough the offsets arrays and execute the operations\n\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n } // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n\n\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n\n return defineProperty({}, mainSide, value);\n }\n };\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n data.offsets.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier\n\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\n}\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\n\n\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: offset,\n\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: arrow,\n\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: flip,\n\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: computeStyle,\n\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: applyStyle,\n\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\n\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n// Utils\n// Methods\n\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n }; // make update() debounced, so that it only runs at most once-per-tick\n\n\n this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it\n\n this.options = _extends({}, Popper.Defaults, options); // init state\n\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n }; // get reference and popper elements (allow jQuery wrappers)\n\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options\n\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n }); // Refactoring modifiers' list (Object => Array)\n\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n }) // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n }); // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n }); // fire the first update to position the popper in the right place\n\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n } // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","import { composeEventName, extendedEvent, isElementInViewport } from '../support/index';\nvar defaultOptions = {\n events: ['click', 'touchend'],\n onlyVisible: true,\n dispatchEvent: true,\n eventPrefix: true\n};\nexport var useClickOutside = function useClickOutside(controller) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _Object$assign = Object.assign({}, defaultOptions, options),\n onlyVisible = _Object$assign.onlyVisible,\n dispatchEvent = _Object$assign.dispatchEvent,\n events = _Object$assign.events,\n eventPrefix = _Object$assign.eventPrefix;\n\n var onEvent = function onEvent(event) {\n var targetElement = (options === null || options === void 0 ? void 0 : options.element) || controller.element;\n\n if (targetElement.contains(event.target) || !isElementInViewport(targetElement) && onlyVisible) {\n return;\n } // call the clickOutside method of the Stimulus controller\n\n\n if (controller.clickOutside) {\n controller.clickOutside(event);\n } // emit a custom event\n\n\n if (dispatchEvent) {\n var eventName = composeEventName('click:outside', controller, eventPrefix);\n var clickOutsideEvent = extendedEvent(eventName, event, {\n controller: controller\n });\n targetElement.dispatchEvent(clickOutsideEvent);\n }\n };\n\n var observe = function observe() {\n events === null || events === void 0 ? void 0 : events.forEach(function (event) {\n window.addEventListener(event, onEvent, false);\n });\n };\n\n var unobserve = function unobserve() {\n events === null || events === void 0 ? void 0 : events.forEach(function (event) {\n window.removeEventListener(event, onEvent, false);\n });\n }; // keep a copy of the current disconnect() function of the controller\n // to support composing several behaviors\n\n\n var controllerDisconnect = controller.disconnect.bind(controller);\n Object.assign(controller, {\n disconnect: function disconnect() {\n unobserve();\n controllerDisconnect();\n }\n });\n observe();\n return [observe, unobserve];\n};","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + _typeof(index) + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (_typeof(slidesIndexes) === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass;\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (_typeof(item) === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/* eslint no-param-reassign: \"off\" */\n\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (_typeof(moduleParams) !== 'object' || moduleParams === null) return;\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (_typeof(params[moduleParamName]) === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.enable = function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n };\n\n _proto.disable = function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n };\n\n _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill && breakpointParams.slidesPerColumnFill === 'column' || !breakpointParams.slidesPerColumnFill && params.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (base === 'window') {\n if (window.matchMedia(\"(min-width: \" + value + \"px)\").matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","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};","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var map = {\n\t\"./banner\": 10,\n\t\"./banner.jpeg\": 10,\n\t\"./favicon\": 9,\n\t\"./favicon.png\": 9,\n\t\"./favicon.svg\": 34,\n\t\"./footer\": 11,\n\t\"./footer.jpg\": 11,\n\t\"./logo\": 12,\n\t\"./logo-email\": 13,\n\t\"./logo-email.png\": 13,\n\t\"./logo-simple\": 14,\n\t\"./logo-simple.svg\": 14,\n\t\"./logo.svg\": 12,\n\t\"./logos/mastercard\": 15,\n\t\"./logos/mastercard.svg\": 15,\n\t\"./logos/post\": 16,\n\t\"./logos/post.svg\": 16,\n\t\"./logos/visa\": 17,\n\t\"./logos/visa.svg\": 17,\n\t\"./missing-product-image\": 18,\n\t\"./missing-product-image.svg\": 18,\n\t\"./x\": 19,\n\t\"./x.svg\": 19\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 33;","module.exports = __webpack_public_path__ + \"media/images/favicon-ac8880ea0884543d42265457d0a31fe8.svg\";","var map = {\n\t\"./cart_content_controller.js\": 36,\n\t\"./cart_modal_controller.js\": 37,\n\t\"./checkbox_toggle_controller.js\": 38,\n\t\"./checkout_address_form_controller.js\": 39,\n\t\"./checkout_payment_form_controller.js\": 40,\n\t\"./content_box_controller.js\": 41,\n\t\"./credit_card_expiration_field_controller.js\": 42,\n\t\"./credit_card_fields_controller.js\": 43,\n\t\"./header_burger_controller.js\": 44,\n\t\"./header_navigation_controller.js\": 45,\n\t\"./headroom_controller.js\": 46,\n\t\"./infinite_scroll_controller.js\": 47,\n\t\"./line_item_form_controller.js\": 48,\n\t\"./modal_controller.js\": 49,\n\t\"./nested_fields_controller.js\": 50,\n\t\"./notification_controller.js\": 51,\n\t\"./popper_controller.js\": 52,\n\t\"./product_carousel_swiper_controller.js\": 54,\n\t\"./product_images_swiper_controller.js\": 69,\n\t\"./product_item_controller.js\": 56,\n\t\"./quantity_field_controller.js\": 57,\n\t\"./reload_controller.js\": 58,\n\t\"./summary_toggle_controller.js\": 59,\n\t\"./tabs_controller.js\": 60,\n\t\"./textarea_controller.js\": 61,\n\t\"./tooltip_controller.js\": 67,\n\t\"./variant_controller.js\": 63\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35;","import { Controller } from \"stimulus\"\nimport { useDispatch } from 'stimulus-use'\n\nexport default class extends Controller {\n static targets = ['overlay']\n\n connect() {\n useDispatch(this)\n this.dispatch('update', { quantity: this.data.get('quantity') })\n }\n\n prepare() {\n this.overlayTarget.classList.remove('hidden')\n }\n}\n","import { Controller } from \"stimulus\"\nimport { useClickOutside } from 'stimulus-use'\n\nexport default class extends Controller {\n static targets = ['dialog', 'quantity']\n static values = { loaded: Boolean }\n\n connect() {\n useClickOutside(this)\n this.turbo_frame = this.element.querySelector('turbo-frame')\n this.headroom = document.querySelector('#header').headroom.headroom\n }\n\n disconnect() {\n this.close()\n this.turbo_frame.src = undefined\n this.turbo_frame.innerHTML = ''\n }\n\n clickOutside(event) {\n var matches = function(el, selector) {\n return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector)\n }\n\n if (!matches(event.target, \".add-to-cart-button, .add-to-cart-button *\")) {\n this.close()\n }\n if (!matches(event.target, \"[data-controller='header-burger'], [data-controller='header-burger'] *, [data-controller='header-navigation'] *\")) {\n this.headroom.unfreeze()\n }\n }\n\n toggle() {\n event.preventDefault()\n if (this.dialogTarget.classList.contains('opacity-0')) {\n this.open()\n } else {\n this.headroom.unfreeze()\n this.close()\n }\n }\n\n open() {\n this.headroom.pin()\n this.headroom.freeze()\n if (this.loadedValue == false) {\n this.loadedValue = true\n this.turbo_frame.src = '/cart'\n }\n this.dialogTarget.classList.remove('opacity-0')\n this.dialogTarget.classList.remove('pointer-events-none')\n }\n\n close() {\n this.dialogTarget.classList.add('opacity-0')\n this.dialogTarget.classList.add('pointer-events-none')\n }\n\n update(e) {\n this.quantityTarget.textContent = e.detail.quantity\n if (parseInt(e.detail.quantity) > 0) {\n this.quantityTarget.classList.add('is-active')\n } else {\n this.quantityTarget.classList.remove('is-active')\n }\n this.loadedValue = true\n this.open()\n\n // NOTE: HACK\n // Reset form and remove notification\n // let form = document.querySelector('#product_form')\n // if (form) {\n // form.reset()\n // }\n let notification = document.querySelector(\"[data-controller='notification']\")\n if (notification) {\n notification['notification'].remove()\n }\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static values = { id: String }\n\n connect() {\n this.container = document.getElementById(this.idValue)\n this.toggleInputFields(this.container.classList.contains('hidden'))\n }\n\n toggle() {\n this.container.classList.toggle('hidden')\n this.toggleInputFields(this.container.classList.contains('hidden'))\n }\n\n toggleInputFields(disabled) {\n let inputs = this.container.querySelectorAll('input, select, textarea')\n inputs.forEach((input) => {\n input.disabled = disabled\n })\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = ['shipping']\n\n connect() {\n this.toggleInputFields(this.shippingTarget.classList.contains('hidden'))\n }\n\n toggle() {\n this.shippingTarget.classList.toggle('hidden')\n this.toggleInputFields(this.shippingTarget.classList.contains('hidden'))\n }\n\n toggleInputFields(disabled) {\n let inputs = this.shippingTarget.querySelectorAll('input, select, textarea')\n inputs.forEach((input) => {\n input.disabled = disabled\n })\n }\n}\n","import { Controller } from \"stimulus\"\nimport { useDispatch } from 'stimulus-use'\n\nexport default class extends Controller {\n static targets = ['submit']\n\n connect() {\n let controller = this\n useDispatch(controller)\n\n controller.element.addEventListener('submit', function(event) {\n let formData = new FormData(this)\n let payment_method = formData.get('payment_method')\n // console.log(payment_method)\n if (payment_method == 'credit_card') {\n event.preventDefault()\n controller.dispatch('submit')\n return false\n }\n })\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"row\" ]\n static values = { scope: String, check: Boolean }\n\n connect() {\n this.toggleInputs()\n }\n\n toggleGroup() {\n let selected_row = this.getRow()\n\n // Hide all rowTargets\n this.rowTargets.forEach((el) => {\n el.classList.add('hidden')\n })\n\n // Show selected row\n if (selected_row) {\n selected_row.classList.remove('hidden')\n }\n\n // Enable / disable input fields\n this.toggleInputs()\n }\n\n toggleSingle() {\n let selected_row = this.getRow()\n\n if (selected_row.classList.contains('hidden')) {\n selected_row.classList.remove('hidden')\n } else {\n selected_row.classList.add('hidden')\n }\n\n this.toggleInputs()\n }\n\n check() {\n let selected_row = this.getRow()\n // selected_row.querySelector('input[type=radio]').checked = true\n selected_row.querySelector('input[type=radio]').click()\n }\n\n getRow() {\n var button = event.target\n var row_id = button.value\n this.scopeValue ||= button.name\n\n return this.element.querySelector(`[data-target='content-box.row'][data-id='${this.scopeValue}.${row_id}']`)\n }\n\n toggleInputs() {\n this.rowTargets.forEach((row) => {\n let inputs = row.querySelectorAll('input, select, textarea')\n inputs.forEach((input) => {\n if (row.classList.contains('hidden')) {\n input.disabled = true\n } else {\n input.disabled = false\n }\n })\n })\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = ['month', 'year']\n\n connect() {\n this.monthTarget.addEventListener('input', this.handleMonth)\n this.monthTarget.addEventListener('keypress', this.checkInputPattern)\n\n this.yearTarget.addEventListener('keydown', this.handleYear)\n this.yearTarget.addEventListener('keypress', this.checkInputPattern)\n }\n\n disconnect() {\n this.monthTarget.removeEventListener('input', this.handleMonth)\n this.monthTarget.removeEventListener('keypress', this.checkInputPattern)\n\n this.yearTarget.removeEventListener('keydown', this.handleYear)\n this.yearTarget.removeEventListener('keypress', this.checkInputPattern)\n }\n\n handleMonth = (event) => {\n var value = this.monthTarget.value.toString();\n // adds 0 to month user input like 9 -> 09\n if (value.length === 1 && value > 1) {\n this.monthTarget.value = \"0\" + value;\n }\n // bounds\n if (value === \"00\") {\n this.monthTarget.value = \"01\";\n } else if (value > 12) {\n this.monthTarget.value = \"12\";\n }\n // if we have a filled input we jump to the year input\n 2 <= this.monthTarget.value.length && this.yearTarget.focus()\n event.stopImmediatePropagation();\n }\n\n handleYear = (event) => {\n // if the year is empty jump to the month input\n if (event.key === \"Backspace\" && this.yearTarget.selectionStart === 0) {\n this.monthTarget.focus()\n event.stopImmediatePropagation();\n }\n }\n\n checkInputPattern = (event) => {\n if (!this.inputMatchesPattern(event)) {\n return event.preventDefault();\n }\n }\n\n inputMatchesPattern = (event) => {\n const {\n value,\n selectionStart,\n selectionEnd,\n pattern\n } = event.target;\n\n const character = String.fromCharCode(event.which);\n const proposedEntry = value.slice(0, selectionStart) + character + value.slice(selectionEnd);\n const match = proposedEntry.match(pattern);\n\n return event.metaKey || // cmd/ctrl\n event.which <= 0 || // arrow keys\n event.which == 8 || // delete key\n match && match[\"0\"] === match.input; // pattern regex isMatch - workaround for passing [0-9]* into RegExp\n };\n\n}\n","import { Controller } from \"stimulus\"\nimport SecureFields from 'src/secure-fields-2.0.0.min.js'\nimport Rails from '@rails/ujs'\n\nexport default class extends Controller {\n static targets = ['overlay', 'expirationMonth', 'expirationYear', 'error']\n static values = { config: Object }\n\n connect() {\n this.setupSecureFields()\n\n // controller.element.closest('form').querySelector('input[type=submit]')\n this.submit_button = document.querySelector('#checkout-submit')\n this.submit_button_placeholder = document.querySelector('#checkout-submit-placeholder')\n }\n\n setupSecureFields() {\n this.secureFields = new SecureFields()\n let controller = this\n\n Rails.ajax({\n type: \"POST\",\n url: '/datatrans/secure-fields',\n success: function(data) {\n if (data.transactionId) {\n controller.initializeSecureFields(data.transactionId)\n }\n }\n })\n }\n\n submit() {\n this.disableForm()\n\n this.secureFields.submit({\n expm: this.expirationMonthTarget.value,\n expy: this.expirationYearTarget.value\n })\n }\n\n initializeSecureFields(transactionId) {\n let controller = this\n let amount, expMonth, expYear\n let styles = {\n // or with JSON\n '*': {\n display: \"block\",\n width: \"100%\",\n borderRadius: \"0.375rem\",\n border: \"1px solid rgba(209, 213, 219, 1)\",\n verticalAlign: \"baseline\",\n WebkitAppearance: 'none',\n MozAppearance: 'none',\n Appearance: 'none',\n backgroundColor: \"#fff\",\n padding: \"0.5rem 0.75rem\",\n fontSize: '1rem',\n lineHeight: '1.5rem',\n fontFamily: 'Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',\n boxShadow: \"0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(0, 0, 0, 0.05)\"\n },\n\n // ::hover on all elements\n // \"*::hover\": \"-webkit-box-shadow: none; -ms-box-shadow: none; -moz-appearance: none; \",\n\n // set style to one of the elements\n // cardNumber: \"height: auto;\",\n // cvv: \"height: auto;\",\n\n // setting style based on CSS classes (see 'Toggled classes')\n // \"cardNumber.valid:hover\": \"\",\n // \"cardNumber.invalid:hover\": {\n // border: '1px solid red',\n // },\n // \"cvv.invalid:hover\": {\n // border: '1px solid red',\n // },\n\n // pseudoselectors\n // '*:focus': '',\n // '*:hover': '',\n '*::placeholder': 'color: #9ca3af',\n '*:-ms-input-placeholder': 'color: #9ca3af' // thanks MS :(\n }\n\n this.secureFields.init(\n transactionId,\n {\n cardNumber: \"card-number-placeholder\",\n cvv: \"cvv-placeholder\"\n }, {\n styles: styles,\n focus: \"cardNumber\" // or secureFields.focus(\"cardNumber\");\n }\n )\n\n this.secureFields.on(\"ready\", function() {\n controller.overlayTarget.classList.add('hidden')\n\n // setting a placholder for the cardNumber field\n controller.secureFields.setPlaceholder(\"cardNumber\", \"XXXX XXXX XXXX XXXX\");\n\n // setting a placeholder for the CVV field\n controller.secureFields.setPlaceholder(\"cvv\", \"CVV\");\n });\n\n this.secureFields.on(\"validate\", function(event) {\n controller.errorTarget.classList.add('hidden')\n\n if (event.hasErrors) {\n // put a red border around the fields if they are not valid\n controller.secureFields.setStyle(\"cardNumber.invalid\",\"border: 1px solid #f00\");\n controller.secureFields.setStyle(\"cvv.invalid\",\"border: 1px solid #f00\");\n\n setTimeout(function () {\n controller.enableForm()\n }, 300)\n }\n });\n\n this.secureFields.on(\"success\", function(data) {\n if (data.transactionId) {\n let modal\n let submit = false\n let error = false\n\n if (data.redirect !== undefined) {\n modal = document.querySelector('#secure-3d-modal').modal\n\n let iframe = controller.htmlToElement(``)\n modal.bodyTarget.appendChild(iframe)\n modal.open()\n } else {\n submit = true\n }\n\n controller.interval = setInterval(() => {\n if (submit) {\n clearInterval(controller.interval)\n\n let responseCode = controller.htmlToElement(``)\n controller.element.appendChild(responseCode)\n\n controller.element.closest('form').submit()\n } else if (error) {\n clearInterval(controller.interval)\n\n // Close the 3D Secure modal if it's open\n if (modal) {\n modal.close()\n modal.bodyTarget.innerHTML = '' // Clear the iframe\n }\n\n // Show error message\n controller.errorTarget.textContent = '3D Secure authentication failed. Please try again or use a different card.'\n controller.errorTarget.classList.remove('hidden')\n\n // Re-enable the form\n controller.enableForm()\n\n // Destroy old SecureFields instance\n controller.secureFields.destroy()\n controller.setupSecureFields()\n } else {\n Rails.ajax({\n type: \"GET\",\n url: `/datatrans/secure-3d/${data.transactionId}`,\n success: function(_data) {\n let acs_code = _data.card['3D']['authenticationResponse']\n console.log(acs_code)\n if (acs_code === 'Y') {\n submit = true\n } else if (acs_code === 'N' || acs_code === 'R' || acs_code === 'U') {\n error = true\n }\n }\n })\n }\n }, 2000)\n }\n });\n\n this.secureFields.on(\"error\", function(data) {\n // something bad happened\n // TODO Handle error\n // console.log(data)\n\n controller.errorTarget.classList.remove('hidden')\n\n setTimeout(function () {\n controller.enableForm()\n }, 300)\n });\n }\n\n disableForm() {\n this.submit_button.disabled = true\n // this.submit_button.classList.add('hidden')\n // this.submit_button_placeholder.classList.remove('hidden')\n this.overlayTarget.classList.remove('hidden')\n }\n\n enableForm() {\n Rails.enableElement(this.submit_button)\n this.submit_button.disabled = false\n // this.submit_button.classList.remove('hidden')\n // this.submit_button_placeholder.classList.add('hidden')\n this.overlayTarget.classList.add('hidden')\n }\n\n disconnect() {\n this.secureFields.destroy()\n }\n\n htmlToElement(html) {\n var template = document.createElement('template');\n html = html.trim(); // Never return a text node of whitespace as the result\n template.innerHTML = html;\n return template.content.firstChild;\n }\n}\n","import { Controller } from \"stimulus\"\nimport { useDispatch } from 'stimulus-use'\n\nexport default class extends Controller {\n static targets = []\n\n connect() {\n useDispatch(this)\n }\n\n disconnect() {\n }\n\n toggleHeaderNavigation() {\n this.dispatch('toggle')\n }\n}\n","import { Controller } from \"stimulus\"\nimport { useClickOutside } from 'stimulus-use'\n\nexport default class extends Controller {\n static targets = ['sub']\n\n connect() {\n this.headroom = document.querySelector('#header').headroom.headroom\n\n this.addActiveClasses()\n }\n\n disconnect() {\n this.closeSub()\n this.close()\n }\n\n toggleSub() {\n event.preventDefault()\n\n let clickedNavigationId = event.currentTarget.dataset.headerNavigationId\n\n if (this.currentNavigationId == clickedNavigationId) {\n this.closeSub()\n } else {\n this.currentNavigationId = clickedNavigationId\n this.subTargets.forEach((el) => {\n if (el.dataset.headerNavigationId == this.currentNavigationId) {\n el.classList.remove('hidden')\n } else {\n el.classList.add('hidden')\n }\n })\n }\n }\n\n closeSub() {\n this.subTargets.forEach((el) => {\n el.classList.add('hidden')\n })\n this.currentNavigationId = undefined\n }\n\n toggle() {\n if (this.element.classList.contains('hidden')) {\n this.open()\n } else {\n this.close()\n }\n }\n\n open() {\n this.headroom.pin()\n this.headroom.freeze()\n this.element.classList.remove('hidden')\n }\n\n close() {\n this.headroom.unfreeze()\n this.element.classList.add('hidden')\n }\n\n addActiveClasses() {\n // let current = location.pathname\n // console.log(current)\n this.element.querySelectorAll('a').forEach((el) => {\n // if the current path is like this link, make it active\n if(el.href.endsWith(location.pathname)){\n el.classList.add('active')\n\n this.getParents(el, '[data-header-navigation-target=\"sub\"]').forEach((parent) => {\n parent.previousElementSibling.querySelector('a').classList.add('active')\n })\n }\n })\n }\n\n getParents = function (elem, selector) {\n // Element.matches() polyfill\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.matchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n function(s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1;\n };\n }\n\n // Set up a parent array\n var parents = [];\n\n // Push each parent element to the array\n for ( ; elem && elem !== document; elem = elem.parentNode ) {\n if (selector) {\n if (elem.matches(selector)) {\n parents.push(elem);\n }\n continue;\n }\n parents.push(elem);\n }\n\n // Return our parent array\n return parents;\n };\n}\n","import { Controller } from \"stimulus\"\nimport Headroom from \"headroom.js\"\n\nexport default class extends Controller {\n static targets = [\"navbar\"]\n\n connect() {\n this.element[this.identifier] = this\n this.headroom = new Headroom(this.navbarTarget, {\n offset: 143,\n tolerance: 0\n })\n this.headroom.init()\n }\n}\n","import { Controller } from \"stimulus\"\nimport Rails from \"@rails/ujs\"\n\nexport default class extends Controller {\n static targets = [\"entries\", \"pagination\", \"loadingIndicator\"]\n static values = { autoLoad: Boolean }\n\n initialize() {\n let options = {\n rootMargin: '200px',\n }\n\n this.intersectionObserver = new IntersectionObserver(entries => this.processIntersectionEntries(entries), options)\n }\n\n connect() {\n this.intersectionObserver.observe(this.paginationTarget)\n }\n\n disconnect() {\n this.intersectionObserver.unobserve(this.paginationTarget)\n }\n\n processIntersectionEntries(entries) {\n if (this.autoLoadValue) {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.loadMore(event)\n }\n })\n }\n }\n\n loadMore() {\n if (event != undefined) {\n event.preventDefault()\n }\n\n let next_page = this.paginationTarget.querySelector(\"a[rel='next']\")\n if (next_page == null) { return }\n let url = next_page.href\n\n Rails.ajax({\n type: 'GET',\n url: url,\n dataType: 'json',\n beforeSend: (xhr) => {\n next_page.remove()\n this.loadingIndicatorTarget.classList.remove('hidden')\n return true\n },\n success: (data) => {\n this.entriesTarget.insertAdjacentHTML('beforeend', data.entries)\n this.paginationTarget.innerHTML = data.pagination\n this.autoLoadValue = true\n }\n })\n }\n}\n","import { Controller } from \"stimulus\"\nimport Rails from \"@rails/ujs\"\n\nexport default class extends Controller {\n static targets = []\n\n connect() {\n }\n\n update() {\n Rails.fire(this.element, 'submit')\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = [\"modal\", \"body\"]\n\n connect() {\n this.element[this.identifier] = this\n }\n\n disconnect() {\n }\n\n open() {\n this.modalTarget.classList.remove('hidden')\n }\n\n close() {\n this.modalTarget.classList.add('hidden')\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = []\n\n connect() {\n }\n\n add() {\n event.preventDefault()\n\n let time = new Date().getTime()\n let regexp = new RegExp(event.currentTarget.dataset.id, 'g')\n let group = event.currentTarget.dataset.nestedFieldsGroup\n let fields = event.currentTarget.dataset.fields.replace(regexp, time)\n\n if (group) {\n this.element.querySelector(`[data-nested-fields-group-id='${group}']`).insertAdjacentHTML('beforeend', fields);\n } else {\n event.currentTarget.parentNode.insertBefore(fields, event.currentTarget)\n }\n }\n\n remove() {\n event.preventDefault()\n\n let hidden_field = event.currentTarget.previousElementSibling\n let field = event.currentTarget.closest('.nested-field')\n\n let required_fields = field.querySelectorAll('[required]')\n required_fields.forEach((el) => {\n el.removeAttribute('required')\n })\n let custom_validation_fields = field.querySelectorAll('[data-validator]')\n custom_validation_fields.forEach((el) => {\n el.removeAttribute('data-validator')\n })\n\n if (hidden_field == undefined) {\n field.remove()\n } else {\n hidden_field.value = 1\n field.style.display = 'none'\n }\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = []\n\n connect() {\n this.element[this.identifier] = this\n }\n\n remove() {\n this.element.remove()\n }\n}\n","import { Controller } from \"stimulus\"\nimport { useClickOutside } from 'stimulus-use'\n\nimport Popper from 'popper.js'\n\nexport default class extends Controller {\n static targets = [ \"button\", \"popover\" ]\n static values = { placement: String }\n\n connect() {\n useClickOutside(this)\n }\n\n clickOutside(event) {\n var matches = function(el, selector) {\n return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector)\n }\n\n if (!matches(event.target, \"[data-target='popper.button'], [data-target='popper.button'] *, [data-target~='popper.popover'], [data-target~='popper.popover'] *\")) {\n this.close()\n }\n }\n\n toggle() {\n event.preventDefault()\n\n var reference = this.buttonTarget\n var popover = this.popoverTarget\n\n if (popover.classList.contains('hidden')) {\n // Show new popover\n var popper = new Popper(reference, popover, {\n placement: this.placementValue || 'bottom'\n })\n popover.classList.remove('hidden')\n popper.scheduleUpdate()\n } else {\n // Hide current popover\n // and do nothing else\n this.close()\n }\n\n }\n\n close(event) {\n if (this.hasPopoverTarget) {\n this.popoverTarget.classList.add('hidden')\n }\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\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","import { Controller } from \"stimulus\"\nimport Swiper, { Navigation, Pagination } from 'swiper'\nimport \"swiper/swiper.min.css\"\nimport \"swiper/components/navigation/navigation.min.css\"\nSwiper.use([Navigation])\n\nexport default class extends Controller {\n static targets = ['']\n\n connect() {\n this.swiper = new Swiper(this.element, {\n // Default parameters\n\n // Required to disable accidental swipes when adding to cart\n shortSwipes: false,\n preventClicks: false,\n\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n loop: false,\n\n slidesPerView: 1,\n spaceBetween: 10,\n // Responsive breakpoints\n breakpoints: {\n // when window width is >= 768px\n 768: {\n slidesPerView: 2,\n spaceBetween: 20\n },\n 1024: {\n slidesPerView: 3,\n spaceBetween: 30\n }\n }\n })\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = ['price', 'originalPrice', 'url', 'imageUrl', 'deliverability', 'outOfStockButton', 'addToCartButton']\n\n connect() {\n }\n\n update(e) {\n this.priceTarget.innerHTML = e.detail.price\n if (e.detail.originalPrice == undefined) {\n this.priceTarget.classList.add('text-primary')\n this.priceTarget.classList.remove('text-red-500')\n this.originalPriceTarget.innerHTML = ''\n } else {\n this.priceTarget.classList.remove('text-primary')\n this.priceTarget.classList.add('text-red-500')\n this.originalPriceTarget.innerHTML = e.detail.originalPrice\n }\n this.urlTargets.forEach((el) => {\n el.href = e.detail.url\n })\n this.imageUrlTarget.src = e.detail.imageUrl\n this.deliverabilityTarget.innerHTML = e.detail.deliverability\n if (e.detail.stockLevel == 'out_of_stock') {\n this.outOfStockButtonTarget.classList.remove('hidden')\n this.addToCartButtonTarget.classList.add('hidden')\n } else {\n this.outOfStockButtonTarget.classList.add('hidden')\n this.addToCartButtonTarget.classList.remove('hidden')\n }\n }\n}\n","import { Controller } from \"stimulus\"\nimport { useDispatch } from 'stimulus-use'\n\nexport default class extends Controller {\n static targets = ['input', 'add', 'sub']\n\n connect() {\n useDispatch(this)\n }\n\n add() {\n event.preventDefault()\n this.inputTarget.value = parseInt(this.inputTarget.value) + 1\n this.subTarget.disabled = false\n this.dispatchUpdate()\n }\n\n sub() {\n event.preventDefault()\n this.inputTarget.value = parseInt(this.inputTarget.value) - 1\n if (this.inputTarget.min >= this.inputTarget.value) {\n this.subTarget.disabled = true\n }\n this.dispatchUpdate()\n }\n\n change() {\n this.subTarget.disabled = (this.inputTarget.min >= this.inputTarget.value)\n if (this.inputTarget.value < this.inputTarget.min) {\n this.inputTarget.value = this.inputTarget.min\n }\n this.dispatchUpdate()\n }\n\n dispatchUpdate() {\n let controller = this\n this.delay(function() {\n controller.dispatch('update', { quantity: controller.inputTarget.value })\n }, 300)\n }\n\n delay = (function() {\n let timer = 0;\n return function(callback, ms) {\n clearTimeout(timer);\n timer = setTimeout(callback, ms);\n };\n })();\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n connect() {\n this.interval = setInterval(() => {\n window.location.reload()\n }, 5000) // 5000 milliseconds = 5 seconds\n }\n\n disconnect() {\n if (this.interval) {\n clearInterval(this.interval)\n }\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"text\" ]\n\n connect() {\n }\n\n toggle() {\n this.textTargets.forEach((text) => {\n text.classList.toggle('hidden')\n })\n\n var sidebar = document.querySelector('.checkout-sidebar')\n sidebar.classList.toggle('hidden')\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = ['tabItem', 'tabBody']\n\n toggle(event) {\n event.preventDefault()\n\n this.tabBodyTargets.forEach((tab) => {\n tab.classList.add('hidden')\n })\n\n this.tabItemTargets.forEach((tab) => {\n tab.classList.remove('active')\n })\n\n console.log(event.target.dataset.target)\n event.target.classList.add('active')\n document.getElementById(event.target.dataset.target).classList.remove('hidden')\n }\n}\n\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n connect() {\n }\n\n resize() {\n this.element.style.height = \"1px\"\n this.element.style.height = (this.element.scrollHeight)+\"px\"\n }\n}\n","import { Controller } from \"stimulus\"\nimport { useDispatch } from 'stimulus-use'\n\nexport default class extends Controller {\n static targets = ['']\n\n connect() {\n useDispatch(this)\n }\n\n load() {\n let selectedItem = event.target.options[event.target.selectedIndex]\n Turbo.visit(selectedItem.dataset.url)\n }\n\n update() {\n let selectedItem = event.target.options[event.target.selectedIndex]\n this.dispatch('update', {\n price: selectedItem.dataset.price,\n originalPrice: selectedItem.dataset.originalPrice,\n url: selectedItem.dataset.url,\n imageUrl: selectedItem.dataset.imageUrl,\n deliverability: selectedItem.dataset.deliverability,\n stockLevel: selectedItem.dataset.stockLevel\n })\n }\n}\n","// import { isHTMLElement } from './instanceOf';\nexport default function getBoundingClientRect(element, // eslint-disable-next-line unused-imports/no-unused-vars\nincludeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1; // FIXME:\n // `offsetWidth` returns an integer while `getBoundingClientRect`\n // returns a float. This results in `scaleX` or `scaleY` being\n // non-1 when it should be for elements that aren't a full pixel in\n // width or height.\n // if (isHTMLElement(element) && includeScale) {\n // const offsetHeight = element.offsetHeight;\n // const offsetWidth = element.offsetWidth;\n // // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // // Fallback to 1 in case both values are `0`\n // if (offsetWidth > 0) {\n // scaleX = rect.width / offsetWidth || 1;\n // }\n // if (offsetHeight > 0) {\n // scaleY = rect.height / offsetHeight || 1;\n // }\n // }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = rect.width / element.offsetWidth || 1;\n var scaleY = rect.height / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name; // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(round(x * dpr) / dpr) || 0,\n y: round(round(y * dpr) / dpr) || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\";\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport default function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport within from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { max as mathMax, min as mathMin } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis || checkAltAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n if (checkMainAxis) {\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(tether ? mathMin(_min, tetherMin) : _min, _offset, tether ? mathMax(_max, tetherMax) : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","/**!\n* tippy.js v6.3.2\n* (c) 2017-2021 atomiks\n* MIT License\n*/\nimport { createPopper, applyStyles } from '@popperjs/core';\nvar ROUND_ARROW = '';\nvar BOX_CLASS = \"tippy-box\";\nvar CONTENT_CLASS = \"tippy-content\";\nvar BACKDROP_CLASS = \"tippy-backdrop\";\nvar ARROW_CLASS = \"tippy-arrow\";\nvar SVG_ARROW_CLASS = \"tippy-svg-arrow\";\nvar TOUCH_OPTIONS = {\n passive: true,\n capture: true\n};\n\nvar TIPPY_DEFAULT_APPEND_TO = function TIPPY_DEFAULT_APPEND_TO() {\n return document.body;\n};\n\nfunction hasOwnProperty(obj, key) {\n return {}.hasOwnProperty.call(obj, key);\n}\n\nfunction getValueAtIndexOrReturn(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;\n }\n\n return value;\n}\n\nfunction isType(value, type) {\n var str = {}.toString.call(value);\n return str.indexOf('[object') === 0 && str.indexOf(type + \"]\") > -1;\n}\n\nfunction invokeWithArgsOrReturn(value, args) {\n return typeof value === 'function' ? value.apply(void 0, args) : value;\n}\n\nfunction debounce(fn, ms) {\n // Avoid wrapping in `setTimeout` if ms is 0 anyway\n if (ms === 0) {\n return fn;\n }\n\n var timeout;\n return function (arg) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n fn(arg);\n }, ms);\n };\n}\n\nfunction removeProperties(obj, keys) {\n var clone = Object.assign({}, obj);\n keys.forEach(function (key) {\n delete clone[key];\n });\n return clone;\n}\n\nfunction splitBySpaces(value) {\n return value.split(/\\s+/).filter(Boolean);\n}\n\nfunction normalizeToArray(value) {\n return [].concat(value);\n}\n\nfunction pushIfUnique(arr, value) {\n if (arr.indexOf(value) === -1) {\n arr.push(value);\n }\n}\n\nfunction unique(arr) {\n return arr.filter(function (item, index) {\n return arr.indexOf(item) === index;\n });\n}\n\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}\n\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\n\nfunction removeUndefinedProps(obj) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (obj[key] !== undefined) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nfunction div() {\n return document.createElement('div');\n}\n\nfunction isElement(value) {\n return ['Element', 'Fragment'].some(function (type) {\n return isType(value, type);\n });\n}\n\nfunction isNodeList(value) {\n return isType(value, 'NodeList');\n}\n\nfunction isMouseEvent(value) {\n return isType(value, 'MouseEvent');\n}\n\nfunction isReferenceElement(value) {\n return !!(value && value._tippy && value._tippy.reference === value);\n}\n\nfunction getArrayOfElements(value) {\n if (isElement(value)) {\n return [value];\n }\n\n if (isNodeList(value)) {\n return arrayFrom(value);\n }\n\n if (Array.isArray(value)) {\n return value;\n }\n\n return arrayFrom(document.querySelectorAll(value));\n}\n\nfunction setTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = value + \"ms\";\n }\n });\n}\n\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\n\nfunction getOwnerDocument(elementOrElements) {\n var _element$ownerDocumen;\n\n var _normalizeToArray = normalizeToArray(elementOrElements),\n element = _normalizeToArray[0]; // Elements created via a