{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.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/getComputedStyle.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/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.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/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/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/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/index.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.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/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/index.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/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./app/javascript/packs/about.js","webpack:///./app/javascript/packs/menu.js","webpack:///./app/javascript/packs/scroll.js","webpack:///./app/javascript/packs/gallery.js","webpack:///./app/javascript/packs/form.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/owl.carousel/dist/owl.carousel.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack:///./app/javascript/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","top","bottom","right","left","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","concat","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","isElement","node","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getWindow","window","toString","ownerDocument","defaultView","getBasePlacement","split","getNodeName","element","nodeName","toLowerCase","getDocumentElement","document","documentElement","getComputedStyle","rectToClientRect","rect","assign","x","y","width","height","getClientRectFromMixedType","clippingParent","win","html","visualViewport","clientWidth","clientHeight","test","navigator","userAgent","offsetLeft","offsetTop","getWindowScrollBarX","getViewportRect","getBoundingClientRect","clientTop","clientLeft","getInnerBoundingClientRect","_element$ownerDocumen","winScroll","getWindowScroll","body","scrollWidth","scrollHeight","scrollLeft","scrollTop","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","listScrollParents","getParentNode","clipperElement","indexOf","position","getOffsetParent","filter","contains","getClippingParents","firstClippingParent","clippingRect","accRect","detectOverflow","state","options","_options","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","paddingObject","mergePaddingObject","expandToHashMap","altContext","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","computeOffsets","strategy","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","offset","keys","forEach","multiply","axis","includeScale","scaleX","scaleY","offsetHeight","offsetWidth","getVariation","isTableElement","getTrueOffsetParent","offsetParent","isFirefox","currentNode","css","transform","perspective","contain","willChange","parentNode","getContainingBlock","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","isScrollParent","order","modifiers","map","Map","visited","Set","result","modifier","set","has","sort","add","requires","requiresIfExists","dep","depModifier","push","DEFAULT_OPTIONS","areValidElements","_len","arguments","length","args","Array","_key","some","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","fn","pending","orderedModifiers","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","phase","orderModifiers","merged","current","existing","data","mergeByName","enabled","_ref3","_ref3$options","effect","cleanupFn","update","forceUpdate","_state$elements","getLayoutRect","reset","index","_state$orderedModifie","_state$orderedModifie2","Promise","resolve","then","undefined","destroy","onFirstUpdate","assignedSlot","host","within","withinMaxClamp","v","_ref","style","removeAttribute","setAttribute","_ref2","initialStyles","margin","arrow","attribute","unsetSides","mapToStyles","_Object$assign2","variation","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","passive","_options$scroll","_options$resize","resize","scrollParent","addEventListener","removeEventListener","getMainAxisFromPlacement","clientRect","abs","pageXOffset","pageYOffset","_getComputedStyle","overflow","overflowX","overflowY","list","getScrollParent","isBody","target","updatedList","createPopper","_state$modifiersData$","arrowElement","basePlacement","len","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","querySelector","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","referenceRect","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","hash","getOppositePlacement","replace","matched","getOppositeVariationPlacement","_skip","_options$mainAxis","mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allowedPlacements","overflows","a","b","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","find","slice","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","getFreshSideObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","math","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","hashMap","parent","child","rootNode","getRootNode","next","isSameNode","commonX","commonY","$","ready","band","perc","inset","clipped","clipper","clipping","attr","click","toggleClass","not","this","removeClass","scroller","tuffatrice","nuvole","nuvole2","scogli","mare","hasClass","addClass","stickyTop","k","k1","tc","each","e","pic","pictop","owl","owlCarousel","loop","autoWidth","nav","responsive","0","items","600","1000","on","deltaY","trigger","preventDefault","theForm","theLoader","theModal","submit","fadeIn","ajax","serialize","type","url","error","fadeOut","modal","_typeof","iterator","obj","constructor","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","content","cspNonce","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","input","CustomEvent","fire","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","dispatchEvent","stopEverything","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","text","xml","json","script","response","responseText","getResponseHeader","floor","status","success","statusText","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","location","href","toUpperCase","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","JSON","parse","createElement","head","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","toArray","serializeElement","additionalParam","inputs","disabled","option","selected","checked","encodeURIComponent","join","formElements","form","el","allowAction","handleConfirm","confirm","message","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","handleMethod","formContent","method","action","display","isRemote","handleRemote","button","enctype","FormData","append","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","_rails_loaded","setTimeout","webpackPolyfill","deprecate","paths","children","factory","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","substring","parseInt","rhex","j","hex","toUtf8","str","unescape","hexToBinaryString","bytes","substr","String","fromCharCode","apply","SparkMD5","ArrayBuffer","clamp","val","from","to","num","targetArray","sourceArray","byteLength","begin","Uint8Array","appendBinary","contents","_buff","_length","_hash","raw","ret","buff","_finish","getState","setState","hashBinary","arr","first","second","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","classCallCheck","Constructor","TypeError","createClass","defineProperties","props","descriptor","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","_this","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","root","eventInit","initEvent","toArray$1","isArray","BlobRecord","checksum","filename","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","stringify","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","notify","upload","methodName","messages","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","controller","shift","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","disable","enable","focus","delete","submitForm","ActiveStorage","channels","require","webpackEmptyContext","req","code","Owl","settings","extend","Defaults","$element","_handlers","_plugins","_supress","_current","_speed","_coordinates","_breakpoint","_width","_items","_clones","_mergers","_widths","_invalidated","_pipe","_drag","time","pointer","stage","_states","tags","proxy","Plugins","plugin","charAt","Workers","priority","worker","run","setup","initialize","rewind","checkVisibility","mouseDrag","touchDrag","pullDrag","freeDrag","stagePadding","merge","mergeFit","startPosition","rtl","smartSpeed","fluidSpeed","dragEndSpeed","responsiveRefreshRate","responsiveBaseElement","fallbackEasing","slideTransition","info","nestedItemSelector","itemElement","stageElement","refreshClass","loadedClass","loadingClass","rtlClass","responsiveClass","dragClass","itemClass","stageClass","stageOuterClass","grabClass","Width","Default","Inner","Outer","Type","State","cache","relative","$stage","remove","grid","toFixed","widths","clones","view","repeat","prepend","normalize","outerHTML","appendTo","prependTo","previous","coordinates","eq","removeAttr","minimum","maximum","animate","inner","outer","op","initializeStage","wrap","initializeItems","$items","item","refresh","isVisible","invalidate","imgs","nestedSelector","enter","is","preloadAutoWidthImages","registerEventHandlers","leave","overwrites","breakpoint","Number","RegExp","optionsLogic","prepare","all","grep","dimension","onThrottledResize","clearTimeout","resizeTimer","onResize","isDefaultPrevented","support","transition","onTransitionEnd","onDragStart","onDragEnd","which","stop","speed","Date","getTime","one","delta","difference","onDragMove","pull","off","closest","coordinate","transform3d","part","suppress","release","isNumeric","reciprocalItemsWidth","elementWidth","mergers","odd","even","multiplier","newPosition","duration","factor","revert","prev","srcElement","originalTarget","innerWidth","console","warn","empty","nodeType","addBack","after","before","splice","images","Image","src","unwrap","removeData","listener","capture","attachEvent","detachEvent","namespace","count","camelCase","relatedTarget","onTrigger","register","special","_default","tag","inArray","events","originalEvent","touches","changedTouches","pageX","pageY","clientX","clientY","number","isNaN","parseFloat","$this","Zepto","AutoRefresh","carousel","_core","_interval","_visible","autoRefresh","watch","autoRefreshInterval","setInterval","clearInterval","getOwnPropertyNames","Lazy","_loaded","lazyLoad","load","lazyLoadEager","$item","$elements","image","onload","handlers","AutoHeight","_previousHeight","autoHeight","_intervalId","refThis","autoHeightClass","lazyLoadEnabled","visible","heights","maxheight","Video","_videos","_playing","video","isInFullScreen","fetch","play","videoHeight","videoWidth","thumbnail","tnLink","path","dimensions","customTn","srcType","lazyClass","jsonp","thumbnail_large","framegrab_url","insertAfter","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","Animate","scope","core","swapping","animateOut","animateIn","swap","animation","clear","incoming","outgoing","Autoplay","_call","_time","_timeout","_paused","autoplay","autoplayHoverPause","pause","autoplayTimeout","autoplaySpeed","_next","hidden","timeout","elapsed","Navigation","_initialized","_pages","_controls","_templates","_overrides","dotsData","dotClass","pop","draw","navText","navSpeed","navElement","navContainer","navContainerClass","navClass","slideBy","dotsClass","dots","dotsEach","dotsSpeed","dotsContainer","override","$relative","$previous","$next","prop","$absolute","control","overides","lower","upper","page","getPosition","successor","standard","Hash","_hashes","URLhashListener","prefixes","WebkitTransition","MozTransition","OTransition","WebkitAnimation","MozAnimation","OAnimation","tests","prefixed","_KEY_TO_DIRECTION","_get","receiver","Reflect","base","_getPrototypeOf","_superPropBase","desc","getOwnPropertyDescriptor","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","source","_defineProperty","getOwnPropertyDescriptors","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_inherits","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","getPrototypeOf","_classCallCheck","_defineProperties","_createClass","_slicedToArray","_arrayWithHoles","_s","_e","_arr","_n","_d","err","_iterableToArrayLimit","_nonIterableRest","arr2","getSelector","hrefAttr","includes","startsWith","trim","getSelectorFromElement","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","triggerTransitionEnd","jquery","getElement","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","getClientRects","getPropertyValue","isDisabled","Node","ELEMENT_NODE","classList","noop","reflow","getjQuery","DOMContentLoadedCallbacks","isRTL","dir","defineJQueryPlugin","NAME","JQUERY_NO_CONFLICT","jQueryInterface","noConflict","execute","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","getNextActiveElement","activeElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","getUidEvent","uid","getEvent","findHandler","delegationSelector","uidEventList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","addHandler","oneOff","wrapFn","delegateTarget","_normalizeParams2","previousFn","domElements","EventHandler","bootstrapDelegationHandler","bootstrapHandler","removeHandler","_normalizeParams4","inNamespace","isNamespace","elementEvent","storeElementEvent","handlerKey","removeNamespacedHandlers","keyHandlers","jQueryEvent","isNative","nativeDispatch","isPropagationStopped","isImmediatePropagationStopped","elementMap","Data","instanceMap","BaseComponent","_element","DATA_KEY","EVENT_KEY","propertyName","isAnimated","getInstance","enableDismissTrigger","component","clickEvent","getOrCreateInstance","EVENT_KEY$c","EVENT_CLOSE","EVENT_CLOSED","Alert","_BaseComponent","_super","_queueCallback","_destroyElement","dispose","EVENT_KEY$b","EVENT_CLICK_DATA_API$6","Button","_BaseComponent2","_super2","toggle","normalizeData","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","dataset","pureKey","getDataAttribute","SelectorEngine","findOne","parents","ancestor","previousElementSibling","nextElementSibling","focusableChildren","focusables","EVENT_KEY$a","Default$a","interval","keyboard","slide","touch","DefaultType$a","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$2","EVENT_CLICK_DATA_API$5","Carousel","_BaseComponent3","_super3","_this3","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","cycle","_updateInterval","visibilityState","nextWhenVisible","_this4","activeIndex","_getItemIndex","absDeltax","_this5","_keydown","_addTouchEventListeners","_this6","hasPointerPenTouch","pointerType","_handleSwipe","itemImg","move","isNext","eventDirectionName","targetIndex","fromIndex","activeIndicator","indicators","elementInterval","defaultInterval","directionOrOrder","_this7","_directionToOrder","activeElementIndex","nextElement","_getItemByOrder","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","_triggerSlideEvent","_setActiveIndicatorElement","triggerSlidEvent","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","EVENT_KEY$9","Default$9","DefaultType$9","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_CLICK_DATA_API$4","CLASS_NAME_DEEPER_CHILDREN","Collapse","_BaseComponent4","_super4","_this8","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","_this9","activesData","actives","container","tempActiveData","elemActive","_getDimension","capitalizedDimension","scrollSize","_this10","triggerArrayLength","_this11","triggerArray","isOpen","EVENT_KEY$8","REGEXP_KEYDOWN","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$8","popperConfig","autoClose","DefaultType$8","_BaseComponent5","Dropdown","_super5","_this12","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","getParentFromElement","_createPopper","_completeHide","DefaultType","referenceElement","_getPopperConfig","isDisplayStatic","parentDropdown","isEnd","_this13","popperData","defaultBsPopperConfig","_getPlacement","_getOffset","_ref6","toggles","context","composedPath","isMenuTarget","isActive","getToggleButton","_selectMenuItem","clearMenus","dataApiKeydownHandler","ScrollBarHelper","documentWidth","getWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","styleProp","_this14","scrollbarWidth","_applyManipulationCallback","_resetElementAttributes","actualValue","removeProperty","callBack","Default$7","className","rootElement","clickCallback","DefaultType$7","EVENT_MOUSEDOWN","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","_this15","backdrop","_this16","Default$6","trapElement","autofocus","DefaultType$6","EVENT_KEY$7","EVENT_FOCUSIN$1","EVENT_KEYDOWN_TAB","FocusTrap","_isActive","_lastTabNavDirection","_this17","_this$_config","_handleFocusin","_handleKeydown","shiftKey","EVENT_KEY$6","Default$5","DefaultType$5","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS$1","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$2","Modal","_BaseComponent6","_super6","_this18","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_ignoreBackdropClick","_scrollBar","_this19","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_this20","deactivate","_hideModal","htmlElement","_this21","modalBody","activate","_this22","_triggerBackdropTransition","_this23","_this24","_resetAdjustments","_this25","currentTarget","_this26","_this$_element","isModalOverflowing","isBodyOverflowing","paddingLeft","paddingRight","_this27","showEvent","allReadyOpen","EVENT_KEY$5","EVENT_LOAD_DATA_API$1","Default$4","DefaultType$4","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_HIDE$2","EVENT_HIDDEN$2","EVENT_CLICK_DATA_API$1","EVENT_KEYDOWN_DISMISS","Offcanvas","_BaseComponent7","_super7","_this28","_this29","visibility","_this30","blur","_this31","_this32","_this33","uriAttributes","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","area","br","col","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","_ref7","createdDocument","_ref8","elementName","attributeList","allowedAttributes","allowedAttributeList","attributeName","nodeValue","regExp","attributeRegex","allowedAttribute","EVENT_KEY$4","DISALLOWED_ATTRIBUTES","DefaultType$3","template","title","delay","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","Event$2","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","SELECTOR_MODAL","_BaseComponent8","Tooltip","_super8","_this34","_isEnabled","_hoverState","_activeTrigger","tip","_setListeners","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","_disposePopper","_this35","isWithContent","shadowRoot","findShadowRoot","attachShadow","isInTheDom","getTitle","tipId","prefix","random","getElementById","getUID","attachment","_getAttachment","_addAttachmentClass","_tip$classList","_ref9","_resolvePossibleFunction","prevHoverState","_this36","_ref10","_cleanTipClass","setContent","_sanitizeAndSetContent","templateElement","setElementContent","textContent","_getDelegateConfig","_this37","_this38","_handlePopperPlacementChange","_getBasicClassPrefix","updateAttachment","_this39","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","basicClassPrefixRegex","tabClass","tClass","EVENT_KEY$3","Default$2","DefaultType$2","Event$1","_Tooltip","Popover","_super9","_getContent","EVENT_KEY$2","Default$1","DefaultType$1","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","SELECTOR_LINK_ITEMS","ScrollSpy","_BaseComponent9","_super10","_this40","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","_this41","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","innerHeight","maxScroll","_getOffsetHeight","_activate","_clear","queries","link","listGroup","navItem","spy","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","Tab","_BaseComponent10","_super11","_this42","listElement","itemSelector","hideEvent","_this43","active","isTransitioning","_transitionComplete","dropdownChild","dropdownElement","dropdown","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","autohide","Toast","_BaseComponent11","_super12","_this44","_hasMouseInteraction","_hasKeyboardInteraction","_this45","_clearTimeout","_maybeScheduleHide","_this46","_this47","isInteracting","_this48","_onInteraction"],"mappings":"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","file":"js/application-2b62312b75eeb7891c41.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 51);\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 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 var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","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 { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","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 getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\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)) : isElement(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 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 { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(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 getVariation(placement) {\n return placement.split('-')[1];\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}","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\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(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 { 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 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 { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\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 { 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(x * dpr) / dpr || 0,\n y: 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 isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\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;\n var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\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(_ref5) {\n var state = _ref5.state,\n options = _ref5.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 isFixed: state.options.strategy === 'fixed'\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 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 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 default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\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 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 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 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 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 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}","export { default as applyStyles } from \"./applyStyles.js\";\nexport { default as arrow } from \"./arrow.js\";\nexport { default as computeStyles } from \"./computeStyles.js\";\nexport { default as eventListeners } from \"./eventListeners.js\";\nexport { default as flip } from \"./flip.js\";\nexport { default as hide } from \"./hide.js\";\nexport { default as offset } from \"./offset.js\";\nexport { default as popperOffsets } from \"./popperOffsets.js\";\nexport { default as preventOverflow } from \"./preventOverflow.js\";","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\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","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};","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 getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\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 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, withinMaxClamp } 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 { min as mathMin, max as mathMax } 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 normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\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 = offset + overflow[mainSide];\n var max = offset - 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 - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\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 = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\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 _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\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}","export * from \"./enums.js\";\nexport * from \"./modifiers/index.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { popperGenerator, detectOverflow, createPopper as createPopperBase } from \"./createPopper.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper } from \"./popper.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\";","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 { 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}","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}","$(document).ready(function () {\n let band, perc, inset;\n let clipped = $('#tclip');\n let clipper= $('#pclip');\n if ( clipped.length && clipper.length ){\n clipping(clipped);\n $( window ).resize(function() {\n clipping(clipped);\n });\n }\n function clipping(clipped) {\n band = clipped.offset().left + clipped.width() - clipper.offset().left;\n perc = 100 - ( (band * 100) / clipped.width() );\n inset = '0 0 0 ' + perc + '%';\n clipped.attr('style','clip-path: inset(' + inset + ') !important');\n }\n\n});\n\n","$(document).ready(function () {\n $('#mobile_menu_button > div').click( function (){\n $('#mobile_menu_button > div').toggleClass('displayed');\n $('#nav_container').toggleClass('displayed');\n });\n $('.accordion-button').click( function (){\n $('.accordion-button').not( $(this) ).removeClass('collapsed');\n $(this).toggleClass('collapsed');\n });\n});\n","$(document).ready(function () {\n\n let scroller = $('#header');\n let tuffatrice = $('#tuffatrice');\n let nuvole = $('#nuvole');\n let nuvole2 = $('#nuvole2');\n let scogli = $('#scogli');\n let mare = $('#mare');\n $('.picture_element').css('transform','translate(0,0) rotate(0deg) scale(1,1)');\n $('.picture_element').css('opacity','1');\n tuffatrice.css('transform','translate(-5vw, 0) rotate(0deg) scale(1,1) !important');\n\n $(window).scroll(function() {\n if ( !$('.picture_element').hasClass('parallax') ){\n $('.picture_element').addClass('parallax');\n }\n var stickyTop = $(window).scrollTop();\n if (stickyTop > 0 ) {\n scroller.addClass('sticky');\n } else {\n if( scroller.hasClass('sticky') ){\n scroller.removeClass('sticky');\n }\n }\n if (stickyTop > 50 ) {\n $('#title_container').css('top','100%');\n } else {\n $('#title_container').css('top','85%');\n }\n var k = stickyTop*0.5;\n var k1 = k*0.0025;\n var tc = 5 - k1*3;\n tuffatrice.css('transform','translate(-'+ tc +'vw,' + k*1.1 + 'px) rotate(' + k*0.3 +'deg) scale(' + (1 - k1*0.75) +',' + (1 - k1*0.75) +')');\n nuvole.css('transform','rotate(-' + k*0.2 +'deg) translate(' + k*2.5+ 'px,' + k*1.5 + 'px) scale(' + (1 + k1*3) +')');\n nuvole2.css('transform','rotate(-' + k*0.1 +'deg) translate(' + k*3.5 + 'px,' + k*4 + 'px)');\n scogli.css('transform','translateY(' + k*0.5 + 'px) scale(' + (1.1 - (k1 * 0.1)) +')');\n mare.css('transform','translateY(' + k*0.35 + 'px) scale(' + (1 + k1) +')');\n\n $('#home_sections').find('.picture_holder').each( function (e){\n var pic = $(this);\n var pictop = pic.scrollTop();\n if ( stickyTop >= pictop + 150){\n pic.css('transform','translateX(0)');\n }\n });\n });\n\n});\n","$(document).ready(function(){\n let owl = $('.owl-carousel');\n owl.owlCarousel({\n loop:true,\n margin:0,\n autoWidth:true,\n nav:false,\n responsive:{\n 0:{\n items:1\n },\n 600:{\n items:3\n },\n 1000:{\n items:4\n }\n }\n });\n owl.on('mousewheel', '.owl-stage', function (e) {\n if (e.deltaY>0) {\n owl.trigger('next.owl');\n } else {\n owl.trigger('prev.owl');\n }\n e.preventDefault();\n });\n});","$(document).ready(function(){\n let theForm = $('#form_rdg');\n let theLoader = $('#form_loader');\n let theModal = $(\"#form_modal\");\n\n theForm.submit(function() {\n theLoader.fadeIn();\n $.ajax({\n data: $(this).serialize(),\n type: $(this).attr('method'),\n url: $(this).attr('action'),\n error: function () {\n theLoader.fadeOut();\n }\n });\n });\n\n theForm.on(\"successed\", function (e) {\n theModal.modal('show');\n theLoader.fadeOut();\n });\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\";","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);","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (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});","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 48;","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 * Owl Carousel v2.3.4\n * Copyright 2013-2018 David Deutsch\n * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE\n */\n\n/**\n * Owl carousel\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n * @todo Lazy Load Icon\n * @todo prevent animationend bubling\n * @todo itemsScaleUp\n * @todo Test Zepto\n * @todo stagePadding calculate wrong active classes\n */\n;\n\n(function ($, window, document, undefined) {\n /**\n * Creates a carousel.\n * @class The Owl Carousel.\n * @public\n * @param {HTMLElement|jQuery} element - The element to create the carousel for.\n * @param {Object} [options] - The options\n */\n function Owl(element, options) {\n /**\n * Current settings for the carousel.\n * @public\n */\n this.settings = null;\n /**\n * Current options set by the caller including defaults.\n * @public\n */\n\n this.options = $.extend({}, Owl.Defaults, options);\n /**\n * Plugin element.\n * @public\n */\n\n this.$element = $(element);\n /**\n * Proxied event handlers.\n * @protected\n */\n\n this._handlers = {};\n /**\n * References to the running plugins of this carousel.\n * @protected\n */\n\n this._plugins = {};\n /**\n * Currently suppressed events to prevent them from being retriggered.\n * @protected\n */\n\n this._supress = {};\n /**\n * Absolute current position.\n * @protected\n */\n\n this._current = null;\n /**\n * Animation speed in milliseconds.\n * @protected\n */\n\n this._speed = null;\n /**\n * Coordinates of all items in pixel.\n * @todo The name of this member is missleading.\n * @protected\n */\n\n this._coordinates = [];\n /**\n * Current breakpoint.\n * @todo Real media queries would be nice.\n * @protected\n */\n\n this._breakpoint = null;\n /**\n * Current width of the plugin element.\n */\n\n this._width = null;\n /**\n * All real items.\n * @protected\n */\n\n this._items = [];\n /**\n * All cloned items.\n * @protected\n */\n\n this._clones = [];\n /**\n * Merge values of all items.\n * @todo Maybe this could be part of a plugin.\n * @protected\n */\n\n this._mergers = [];\n /**\n * Widths of all items.\n */\n\n this._widths = [];\n /**\n * Invalidated parts within the update process.\n * @protected\n */\n\n this._invalidated = {};\n /**\n * Ordered list of workers for the update process.\n * @protected\n */\n\n this._pipe = [];\n /**\n * Current state information for the drag operation.\n * @todo #261\n * @protected\n */\n\n this._drag = {\n time: null,\n target: null,\n pointer: null,\n stage: {\n start: null,\n current: null\n },\n direction: null\n };\n /**\n * Current state information and their tags.\n * @type {Object}\n * @protected\n */\n\n this._states = {\n current: {},\n tags: {\n 'initializing': ['busy'],\n 'animating': ['busy'],\n 'dragging': ['interacting']\n }\n };\n $.each(['onResize', 'onThrottledResize'], $.proxy(function (i, handler) {\n this._handlers[handler] = $.proxy(this[handler], this);\n }, this));\n $.each(Owl.Plugins, $.proxy(function (key, plugin) {\n this._plugins[key.charAt(0).toLowerCase() + key.slice(1)] = new plugin(this);\n }, this));\n $.each(Owl.Workers, $.proxy(function (priority, worker) {\n this._pipe.push({\n 'filter': worker.filter,\n 'run': $.proxy(worker.run, this)\n });\n }, this));\n this.setup();\n this.initialize();\n }\n /**\n * Default options for the carousel.\n * @public\n */\n\n\n Owl.Defaults = {\n items: 3,\n loop: false,\n center: false,\n rewind: false,\n checkVisibility: true,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n freeDrag: false,\n margin: 0,\n stagePadding: 0,\n merge: false,\n mergeFit: true,\n autoWidth: false,\n startPosition: 0,\n rtl: false,\n smartSpeed: 250,\n fluidSpeed: false,\n dragEndSpeed: false,\n responsive: {},\n responsiveRefreshRate: 200,\n responsiveBaseElement: window,\n fallbackEasing: 'swing',\n slideTransition: '',\n info: false,\n nestedItemSelector: false,\n itemElement: 'div',\n stageElement: 'div',\n refreshClass: 'owl-refresh',\n loadedClass: 'owl-loaded',\n loadingClass: 'owl-loading',\n rtlClass: 'owl-rtl',\n responsiveClass: 'owl-responsive',\n dragClass: 'owl-drag',\n itemClass: 'owl-item',\n stageClass: 'owl-stage',\n stageOuterClass: 'owl-stage-outer',\n grabClass: 'owl-grab'\n };\n /**\n * Enumeration for width.\n * @public\n * @readonly\n * @enum {String}\n */\n\n Owl.Width = {\n Default: 'default',\n Inner: 'inner',\n Outer: 'outer'\n };\n /**\n * Enumeration for types.\n * @public\n * @readonly\n * @enum {String}\n */\n\n Owl.Type = {\n Event: 'event',\n State: 'state'\n };\n /**\n * Contains all registered plugins.\n * @public\n */\n\n Owl.Plugins = {};\n /**\n * List of workers involved in the update process.\n */\n\n Owl.Workers = [{\n filter: ['width', 'settings'],\n run: function run() {\n this._width = this.$element.width();\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function run(cache) {\n cache.current = this._items && this._items[this.relative(this._current)];\n }\n }, {\n filter: ['items', 'settings'],\n run: function run() {\n this.$stage.children('.cloned').remove();\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function run(cache) {\n var margin = this.settings.margin || '',\n grid = !this.settings.autoWidth,\n rtl = this.settings.rtl,\n css = {\n 'width': 'auto',\n 'margin-left': rtl ? margin : '',\n 'margin-right': rtl ? '' : margin\n };\n !grid && this.$stage.children().css(css);\n cache.css = css;\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function run(cache) {\n var width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,\n merge = null,\n iterator = this._items.length,\n grid = !this.settings.autoWidth,\n widths = [];\n cache.items = {\n merge: false,\n width: width\n };\n\n while (iterator--) {\n merge = this._mergers[iterator];\n merge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge;\n cache.items.merge = merge > 1 || cache.items.merge;\n widths[iterator] = !grid ? this._items[iterator].width() : width * merge;\n }\n\n this._widths = widths;\n }\n }, {\n filter: ['items', 'settings'],\n run: function run() {\n var clones = [],\n items = this._items,\n settings = this.settings,\n // TODO: Should be computed from number of min width items in stage\n view = Math.max(settings.items * 2, 4),\n size = Math.ceil(items.length / 2) * 2,\n repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0,\n append = '',\n prepend = '';\n repeat /= 2;\n\n while (repeat > 0) {\n // Switch to only using appended clones\n clones.push(this.normalize(clones.length / 2, true));\n append = append + items[clones[clones.length - 1]][0].outerHTML;\n clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));\n prepend = items[clones[clones.length - 1]][0].outerHTML + prepend;\n repeat -= 1;\n }\n\n this._clones = clones;\n $(append).addClass('cloned').appendTo(this.$stage);\n $(prepend).addClass('cloned').prependTo(this.$stage);\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function run() {\n var rtl = this.settings.rtl ? 1 : -1,\n size = this._clones.length + this._items.length,\n iterator = -1,\n previous = 0,\n current = 0,\n coordinates = [];\n\n while (++iterator < size) {\n previous = coordinates[iterator - 1] || 0;\n current = this._widths[this.relative(iterator)] + this.settings.margin;\n coordinates.push(previous + current * rtl);\n }\n\n this._coordinates = coordinates;\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function run() {\n var padding = this.settings.stagePadding,\n coordinates = this._coordinates,\n css = {\n 'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,\n 'padding-left': padding || '',\n 'padding-right': padding || ''\n };\n this.$stage.css(css);\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function run(cache) {\n var iterator = this._coordinates.length,\n grid = !this.settings.autoWidth,\n items = this.$stage.children();\n\n if (grid && cache.items.merge) {\n while (iterator--) {\n cache.css.width = this._widths[this.relative(iterator)];\n items.eq(iterator).css(cache.css);\n }\n } else if (grid) {\n cache.css.width = cache.items.width;\n items.css(cache.css);\n }\n }\n }, {\n filter: ['items'],\n run: function run() {\n this._coordinates.length < 1 && this.$stage.removeAttr('style');\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function run(cache) {\n cache.current = cache.current ? this.$stage.children().index(cache.current) : 0;\n cache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current));\n this.reset(cache.current);\n }\n }, {\n filter: ['position'],\n run: function run() {\n this.animate(this.coordinates(this._current));\n }\n }, {\n filter: ['width', 'position', 'items', 'settings'],\n run: function run() {\n var rtl = this.settings.rtl ? 1 : -1,\n padding = this.settings.stagePadding * 2,\n begin = this.coordinates(this.current()) + padding,\n end = begin + this.width() * rtl,\n inner,\n outer,\n matches = [],\n i,\n n;\n\n for (i = 0, n = this._coordinates.length; i < n; i++) {\n inner = this._coordinates[i - 1] || 0;\n outer = Math.abs(this._coordinates[i]) + padding * rtl;\n\n if (this.op(inner, '<=', begin) && this.op(inner, '>', end) || this.op(outer, '<', begin) && this.op(outer, '>', end)) {\n matches.push(i);\n }\n }\n\n this.$stage.children('.active').removeClass('active');\n this.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active');\n this.$stage.children('.center').removeClass('center');\n\n if (this.settings.center) {\n this.$stage.children().eq(this.current()).addClass('center');\n }\n }\n }];\n /**\n * Create the stage DOM element\n */\n\n Owl.prototype.initializeStage = function () {\n this.$stage = this.$element.find('.' + this.settings.stageClass); // if the stage is already in the DOM, grab it and skip stage initialization\n\n if (this.$stage.length) {\n return;\n }\n\n this.$element.addClass(this.options.loadingClass); // create stage\n\n this.$stage = $('<' + this.settings.stageElement + '>', {\n \"class\": this.settings.stageClass\n }).wrap($('
', {\n \"class\": this.settings.stageOuterClass\n })); // append stage\n\n this.$element.append(this.$stage.parent());\n };\n /**\n * Create item DOM elements\n */\n\n\n Owl.prototype.initializeItems = function () {\n var $items = this.$element.find('.owl-item'); // if the items are already in the DOM, grab them and skip item initialization\n\n if ($items.length) {\n this._items = $items.get().map(function (item) {\n return $(item);\n });\n this._mergers = this._items.map(function () {\n return 1;\n });\n this.refresh();\n return;\n } // append content\n\n\n this.replace(this.$element.children().not(this.$stage.parent())); // check visibility\n\n if (this.isVisible()) {\n // update view\n this.refresh();\n } else {\n // invalidate width\n this.invalidate('width');\n }\n\n this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass);\n };\n /**\n * Initializes the carousel.\n * @protected\n */\n\n\n Owl.prototype.initialize = function () {\n this.enter('initializing');\n this.trigger('initialize');\n this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl);\n\n if (this.settings.autoWidth && !this.is('pre-loading')) {\n var imgs, nestedSelector, width;\n imgs = this.$element.find('img');\n nestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined;\n width = this.$element.children(nestedSelector).width();\n\n if (imgs.length && width <= 0) {\n this.preloadAutoWidthImages(imgs);\n }\n }\n\n this.initializeStage();\n this.initializeItems(); // register event handlers\n\n this.registerEventHandlers();\n this.leave('initializing');\n this.trigger('initialized');\n };\n /**\n * @returns {Boolean} visibility of $element\n * if you know the carousel will always be visible you can set `checkVisibility` to `false` to\n * prevent the expensive browser layout forced reflow the $element.is(':visible') does\n */\n\n\n Owl.prototype.isVisible = function () {\n return this.settings.checkVisibility ? this.$element.is(':visible') : true;\n };\n /**\n * Setups the current settings.\n * @todo Remove responsive classes. Why should adaptive designs be brought into IE8?\n * @todo Support for media queries by using `matchMedia` would be nice.\n * @public\n */\n\n\n Owl.prototype.setup = function () {\n var viewport = this.viewport(),\n overwrites = this.options.responsive,\n match = -1,\n settings = null;\n\n if (!overwrites) {\n settings = $.extend({}, this.options);\n } else {\n $.each(overwrites, function (breakpoint) {\n if (breakpoint <= viewport && breakpoint > match) {\n match = Number(breakpoint);\n }\n });\n settings = $.extend({}, this.options, overwrites[match]);\n\n if (typeof settings.stagePadding === 'function') {\n settings.stagePadding = settings.stagePadding();\n }\n\n delete settings.responsive; // responsive class\n\n if (settings.responsiveClass) {\n this.$element.attr('class', this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\\\S+\\\\s', 'g'), '$1' + match));\n }\n }\n\n this.trigger('change', {\n property: {\n name: 'settings',\n value: settings\n }\n });\n this._breakpoint = match;\n this.settings = settings;\n this.invalidate('settings');\n this.trigger('changed', {\n property: {\n name: 'settings',\n value: this.settings\n }\n });\n };\n /**\n * Updates option logic if necessery.\n * @protected\n */\n\n\n Owl.prototype.optionsLogic = function () {\n if (this.settings.autoWidth) {\n this.settings.stagePadding = false;\n this.settings.merge = false;\n }\n };\n /**\n * Prepares an item before add.\n * @todo Rename event parameter `content` to `item`.\n * @protected\n * @returns {jQuery|HTMLElement} - The item container.\n */\n\n\n Owl.prototype.prepare = function (item) {\n var event = this.trigger('prepare', {\n content: item\n });\n\n if (!event.data) {\n event.data = $('<' + this.settings.itemElement + '/>').addClass(this.options.itemClass).append(item);\n }\n\n this.trigger('prepared', {\n content: event.data\n });\n return event.data;\n };\n /**\n * Updates the view.\n * @public\n */\n\n\n Owl.prototype.update = function () {\n var i = 0,\n n = this._pipe.length,\n filter = $.proxy(function (p) {\n return this[p];\n }, this._invalidated),\n cache = {};\n\n while (i < n) {\n if (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) {\n this._pipe[i].run(cache);\n }\n\n i++;\n }\n\n this._invalidated = {};\n !this.is('valid') && this.enter('valid');\n };\n /**\n * Gets the width of the view.\n * @public\n * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return.\n * @returns {Number} - The width of the view in pixel.\n */\n\n\n Owl.prototype.width = function (dimension) {\n dimension = dimension || Owl.Width.Default;\n\n switch (dimension) {\n case Owl.Width.Inner:\n case Owl.Width.Outer:\n return this._width;\n\n default:\n return this._width - this.settings.stagePadding * 2 + this.settings.margin;\n }\n };\n /**\n * Refreshes the carousel primarily for adaptive purposes.\n * @public\n */\n\n\n Owl.prototype.refresh = function () {\n this.enter('refreshing');\n this.trigger('refresh');\n this.setup();\n this.optionsLogic();\n this.$element.addClass(this.options.refreshClass);\n this.update();\n this.$element.removeClass(this.options.refreshClass);\n this.leave('refreshing');\n this.trigger('refreshed');\n };\n /**\n * Checks window `resize` event.\n * @protected\n */\n\n\n Owl.prototype.onThrottledResize = function () {\n window.clearTimeout(this.resizeTimer);\n this.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate);\n };\n /**\n * Checks window `resize` event.\n * @protected\n */\n\n\n Owl.prototype.onResize = function () {\n if (!this._items.length) {\n return false;\n }\n\n if (this._width === this.$element.width()) {\n return false;\n }\n\n if (!this.isVisible()) {\n return false;\n }\n\n this.enter('resizing');\n\n if (this.trigger('resize').isDefaultPrevented()) {\n this.leave('resizing');\n return false;\n }\n\n this.invalidate('width');\n this.refresh();\n this.leave('resizing');\n this.trigger('resized');\n };\n /**\n * Registers event handlers.\n * @todo Check `msPointerEnabled`\n * @todo #261\n * @protected\n */\n\n\n Owl.prototype.registerEventHandlers = function () {\n if ($.support.transition) {\n this.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this));\n }\n\n if (this.settings.responsive !== false) {\n this.on(window, 'resize', this._handlers.onThrottledResize);\n }\n\n if (this.settings.mouseDrag) {\n this.$element.addClass(this.options.dragClass);\n this.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this));\n this.$stage.on('dragstart.owl.core selectstart.owl.core', function () {\n return false;\n });\n }\n\n if (this.settings.touchDrag) {\n this.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this));\n this.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this));\n }\n };\n /**\n * Handles `touchstart` and `mousedown` events.\n * @todo Horizontal swipe threshold as option\n * @todo #261\n * @protected\n * @param {Event} event - The event arguments.\n */\n\n\n Owl.prototype.onDragStart = function (event) {\n var stage = null;\n\n if (event.which === 3) {\n return;\n }\n\n if ($.support.transform) {\n stage = this.$stage.css('transform').replace(/.*\\(|\\)| /g, '').split(',');\n stage = {\n x: stage[stage.length === 16 ? 12 : 4],\n y: stage[stage.length === 16 ? 13 : 5]\n };\n } else {\n stage = this.$stage.position();\n stage = {\n x: this.settings.rtl ? stage.left + this.$stage.width() - this.width() + this.settings.margin : stage.left,\n y: stage.top\n };\n }\n\n if (this.is('animating')) {\n $.support.transform ? this.animate(stage.x) : this.$stage.stop();\n this.invalidate('position');\n }\n\n this.$element.toggleClass(this.options.grabClass, event.type === 'mousedown');\n this.speed(0);\n this._drag.time = new Date().getTime();\n this._drag.target = $(event.target);\n this._drag.stage.start = stage;\n this._drag.stage.current = stage;\n this._drag.pointer = this.pointer(event);\n $(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this));\n $(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function (event) {\n var delta = this.difference(this._drag.pointer, this.pointer(event));\n $(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this));\n\n if (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) {\n return;\n }\n\n event.preventDefault();\n this.enter('dragging');\n this.trigger('drag');\n }, this));\n };\n /**\n * Handles the `touchmove` and `mousemove` events.\n * @todo #261\n * @protected\n * @param {Event} event - The event arguments.\n */\n\n\n Owl.prototype.onDragMove = function (event) {\n var minimum = null,\n maximum = null,\n pull = null,\n delta = this.difference(this._drag.pointer, this.pointer(event)),\n stage = this.difference(this._drag.stage.start, delta);\n\n if (!this.is('dragging')) {\n return;\n }\n\n event.preventDefault();\n\n if (this.settings.loop) {\n minimum = this.coordinates(this.minimum());\n maximum = this.coordinates(this.maximum() + 1) - minimum;\n stage.x = ((stage.x - minimum) % maximum + maximum) % maximum + minimum;\n } else {\n minimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());\n maximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());\n pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;\n stage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull);\n }\n\n this._drag.stage.current = stage;\n this.animate(stage.x);\n };\n /**\n * Handles the `touchend` and `mouseup` events.\n * @todo #261\n * @todo Threshold for click event\n * @protected\n * @param {Event} event - The event arguments.\n */\n\n\n Owl.prototype.onDragEnd = function (event) {\n var delta = this.difference(this._drag.pointer, this.pointer(event)),\n stage = this._drag.stage.current,\n direction = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right';\n $(document).off('.owl.core');\n this.$element.removeClass(this.options.grabClass);\n\n if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {\n this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);\n this.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction));\n this.invalidate('position');\n this.update();\n this._drag.direction = direction;\n\n if (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) {\n this._drag.target.one('click.owl.core', function () {\n return false;\n });\n }\n }\n\n if (!this.is('dragging')) {\n return;\n }\n\n this.leave('dragging');\n this.trigger('dragged');\n };\n /**\n * Gets absolute position of the closest item for a coordinate.\n * @todo Setting `freeDrag` makes `closest` not reusable. See #165.\n * @protected\n * @param {Number} coordinate - The coordinate in pixel.\n * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`.\n * @return {Number} - The absolute position of the closest item.\n */\n\n\n Owl.prototype.closest = function (coordinate, direction) {\n var position = -1,\n pull = 30,\n width = this.width(),\n coordinates = this.coordinates();\n\n if (!this.settings.freeDrag) {\n // check closest item\n $.each(coordinates, $.proxy(function (index, value) {\n // on a left pull, check on current index\n if (direction === 'left' && coordinate > value - pull && coordinate < value + pull) {\n position = index; // on a right pull, check on previous index\n // to do so, subtract width from value and set position = index + 1\n } else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) {\n position = index + 1;\n } else if (this.op(coordinate, '<', value) && this.op(coordinate, '>', coordinates[index + 1] !== undefined ? coordinates[index + 1] : value - width)) {\n position = direction === 'left' ? index + 1 : index;\n }\n\n return position === -1;\n }, this));\n }\n\n if (!this.settings.loop) {\n // non loop boundries\n if (this.op(coordinate, '>', coordinates[this.minimum()])) {\n position = coordinate = this.minimum();\n } else if (this.op(coordinate, '<', coordinates[this.maximum()])) {\n position = coordinate = this.maximum();\n }\n }\n\n return position;\n };\n /**\n * Animates the stage.\n * @todo #270\n * @public\n * @param {Number} coordinate - The coordinate in pixels.\n */\n\n\n Owl.prototype.animate = function (coordinate) {\n var animate = this.speed() > 0;\n this.is('animating') && this.onTransitionEnd();\n\n if (animate) {\n this.enter('animating');\n this.trigger('translate');\n }\n\n if ($.support.transform3d && $.support.transition) {\n this.$stage.css({\n transform: 'translate3d(' + coordinate + 'px,0px,0px)',\n transition: this.speed() / 1000 + 's' + (this.settings.slideTransition ? ' ' + this.settings.slideTransition : '')\n });\n } else if (animate) {\n this.$stage.animate({\n left: coordinate + 'px'\n }, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this));\n } else {\n this.$stage.css({\n left: coordinate + 'px'\n });\n }\n };\n /**\n * Checks whether the carousel is in a specific state or not.\n * @param {String} state - The state to check.\n * @returns {Boolean} - The flag which indicates if the carousel is busy.\n */\n\n\n Owl.prototype.is = function (state) {\n return this._states.current[state] && this._states.current[state] > 0;\n };\n /**\n * Sets the absolute position of the current item.\n * @public\n * @param {Number} [position] - The new absolute position or nothing to leave it unchanged.\n * @returns {Number} - The absolute position of the current item.\n */\n\n\n Owl.prototype.current = function (position) {\n if (position === undefined) {\n return this._current;\n }\n\n if (this._items.length === 0) {\n return undefined;\n }\n\n position = this.normalize(position);\n\n if (this._current !== position) {\n var event = this.trigger('change', {\n property: {\n name: 'position',\n value: position\n }\n });\n\n if (event.data !== undefined) {\n position = this.normalize(event.data);\n }\n\n this._current = position;\n this.invalidate('position');\n this.trigger('changed', {\n property: {\n name: 'position',\n value: this._current\n }\n });\n }\n\n return this._current;\n };\n /**\n * Invalidates the given part of the update routine.\n * @param {String} [part] - The part to invalidate.\n * @returns {Array.} - The invalidated parts.\n */\n\n\n Owl.prototype.invalidate = function (part) {\n if ($.type(part) === 'string') {\n this._invalidated[part] = true;\n this.is('valid') && this.leave('valid');\n }\n\n return $.map(this._invalidated, function (v, i) {\n return i;\n });\n };\n /**\n * Resets the absolute position of the current item.\n * @public\n * @param {Number} position - The absolute position of the new item.\n */\n\n\n Owl.prototype.reset = function (position) {\n position = this.normalize(position);\n\n if (position === undefined) {\n return;\n }\n\n this._speed = 0;\n this._current = position;\n this.suppress(['translate', 'translated']);\n this.animate(this.coordinates(position));\n this.release(['translate', 'translated']);\n };\n /**\n * Normalizes an absolute or a relative position of an item.\n * @public\n * @param {Number} position - The absolute or relative position to normalize.\n * @param {Boolean} [relative=false] - Whether the given position is relative or not.\n * @returns {Number} - The normalized position.\n */\n\n\n Owl.prototype.normalize = function (position, relative) {\n var n = this._items.length,\n m = relative ? 0 : this._clones.length;\n\n if (!this.isNumeric(position) || n < 1) {\n position = undefined;\n } else if (position < 0 || position >= n + m) {\n position = ((position - m / 2) % n + n) % n + m / 2;\n }\n\n return position;\n };\n /**\n * Converts an absolute position of an item into a relative one.\n * @public\n * @param {Number} position - The absolute position to convert.\n * @returns {Number} - The converted position.\n */\n\n\n Owl.prototype.relative = function (position) {\n position -= this._clones.length / 2;\n return this.normalize(position, true);\n };\n /**\n * Gets the maximum position for the current item.\n * @public\n * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n * @returns {Number}\n */\n\n\n Owl.prototype.maximum = function (relative) {\n var settings = this.settings,\n maximum = this._coordinates.length,\n iterator,\n reciprocalItemsWidth,\n elementWidth;\n\n if (settings.loop) {\n maximum = this._clones.length / 2 + this._items.length - 1;\n } else if (settings.autoWidth || settings.merge) {\n iterator = this._items.length;\n\n if (iterator) {\n reciprocalItemsWidth = this._items[--iterator].width();\n elementWidth = this.$element.width();\n\n while (iterator--) {\n reciprocalItemsWidth += this._items[iterator].width() + this.settings.margin;\n\n if (reciprocalItemsWidth > elementWidth) {\n break;\n }\n }\n }\n\n maximum = iterator + 1;\n } else if (settings.center) {\n maximum = this._items.length - 1;\n } else {\n maximum = this._items.length - settings.items;\n }\n\n if (relative) {\n maximum -= this._clones.length / 2;\n }\n\n return Math.max(maximum, 0);\n };\n /**\n * Gets the minimum position for the current item.\n * @public\n * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n * @returns {Number}\n */\n\n\n Owl.prototype.minimum = function (relative) {\n return relative ? 0 : this._clones.length / 2;\n };\n /**\n * Gets an item at the specified relative position.\n * @public\n * @param {Number} [position] - The relative position of the item.\n * @return {jQuery|Array.} - The item at the given position or all items if no position was given.\n */\n\n\n Owl.prototype.items = function (position) {\n if (position === undefined) {\n return this._items.slice();\n }\n\n position = this.normalize(position, true);\n return this._items[position];\n };\n /**\n * Gets an item at the specified relative position.\n * @public\n * @param {Number} [position] - The relative position of the item.\n * @return {jQuery|Array.} - The item at the given position or all items if no position was given.\n */\n\n\n Owl.prototype.mergers = function (position) {\n if (position === undefined) {\n return this._mergers.slice();\n }\n\n position = this.normalize(position, true);\n return this._mergers[position];\n };\n /**\n * Gets the absolute positions of clones for an item.\n * @public\n * @param {Number} [position] - The relative position of the item.\n * @returns {Array.} - The absolute positions of clones for the item or all if no position was given.\n */\n\n\n Owl.prototype.clones = function (position) {\n var odd = this._clones.length / 2,\n even = odd + this._items.length,\n map = function map(index) {\n return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2;\n };\n\n if (position === undefined) {\n return $.map(this._clones, function (v, i) {\n return map(i);\n });\n }\n\n return $.map(this._clones, function (v, i) {\n return v === position ? map(i) : null;\n });\n };\n /**\n * Sets the current animation speed.\n * @public\n * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged.\n * @returns {Number} - The current animation speed in milliseconds.\n */\n\n\n Owl.prototype.speed = function (speed) {\n if (speed !== undefined) {\n this._speed = speed;\n }\n\n return this._speed;\n };\n /**\n * Gets the coordinate of an item.\n * @todo The name of this method is missleanding.\n * @public\n * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`.\n * @returns {Number|Array.} - The coordinate of the item in pixel or all coordinates.\n */\n\n\n Owl.prototype.coordinates = function (position) {\n var multiplier = 1,\n newPosition = position - 1,\n coordinate;\n\n if (position === undefined) {\n return $.map(this._coordinates, $.proxy(function (coordinate, index) {\n return this.coordinates(index);\n }, this));\n }\n\n if (this.settings.center) {\n if (this.settings.rtl) {\n multiplier = -1;\n newPosition = position + 1;\n }\n\n coordinate = this._coordinates[position];\n coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier;\n } else {\n coordinate = this._coordinates[newPosition] || 0;\n }\n\n coordinate = Math.ceil(coordinate);\n return coordinate;\n };\n /**\n * Calculates the speed for a translation.\n * @protected\n * @param {Number} from - The absolute position of the start item.\n * @param {Number} to - The absolute position of the target item.\n * @param {Number} [factor=undefined] - The time factor in milliseconds.\n * @returns {Number} - The time in milliseconds for the translation.\n */\n\n\n Owl.prototype.duration = function (from, to, factor) {\n if (factor === 0) {\n return 0;\n }\n\n return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs(factor || this.settings.smartSpeed);\n };\n /**\n * Slides to the specified item.\n * @public\n * @param {Number} position - The position of the item.\n * @param {Number} [speed] - The time in milliseconds for the transition.\n */\n\n\n Owl.prototype.to = function (position, speed) {\n var current = this.current(),\n revert = null,\n distance = position - this.relative(current),\n direction = (distance > 0) - (distance < 0),\n items = this._items.length,\n minimum = this.minimum(),\n maximum = this.maximum();\n\n if (this.settings.loop) {\n if (!this.settings.rewind && Math.abs(distance) > items / 2) {\n distance += direction * -1 * items;\n }\n\n position = current + distance;\n revert = ((position - minimum) % items + items) % items + minimum;\n\n if (revert !== position && revert - distance <= maximum && revert - distance > 0) {\n current = revert - distance;\n position = revert;\n this.reset(current);\n }\n } else if (this.settings.rewind) {\n maximum += 1;\n position = (position % maximum + maximum) % maximum;\n } else {\n position = Math.max(minimum, Math.min(maximum, position));\n }\n\n this.speed(this.duration(current, position, speed));\n this.current(position);\n\n if (this.isVisible()) {\n this.update();\n }\n };\n /**\n * Slides to the next item.\n * @public\n * @param {Number} [speed] - The time in milliseconds for the transition.\n */\n\n\n Owl.prototype.next = function (speed) {\n speed = speed || false;\n this.to(this.relative(this.current()) + 1, speed);\n };\n /**\n * Slides to the previous item.\n * @public\n * @param {Number} [speed] - The time in milliseconds for the transition.\n */\n\n\n Owl.prototype.prev = function (speed) {\n speed = speed || false;\n this.to(this.relative(this.current()) - 1, speed);\n };\n /**\n * Handles the end of an animation.\n * @protected\n * @param {Event} event - The event arguments.\n */\n\n\n Owl.prototype.onTransitionEnd = function (event) {\n // if css2 animation then event object is undefined\n if (event !== undefined) {\n event.stopPropagation(); // Catch only owl-stage transitionEnd event\n\n if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) {\n return false;\n }\n }\n\n this.leave('animating');\n this.trigger('translated');\n };\n /**\n * Gets viewport width.\n * @protected\n * @return {Number} - The width in pixel.\n */\n\n\n Owl.prototype.viewport = function () {\n var width;\n\n if (this.options.responsiveBaseElement !== window) {\n width = $(this.options.responsiveBaseElement).width();\n } else if (window.innerWidth) {\n width = window.innerWidth;\n } else if (document.documentElement && document.documentElement.clientWidth) {\n width = document.documentElement.clientWidth;\n } else {\n console.warn('Can not detect viewport width.');\n }\n\n return width;\n };\n /**\n * Replaces the current content.\n * @public\n * @param {HTMLElement|jQuery|String} content - The new content.\n */\n\n\n Owl.prototype.replace = function (content) {\n this.$stage.empty();\n this._items = [];\n\n if (content) {\n content = content instanceof jQuery ? content : $(content);\n }\n\n if (this.settings.nestedItemSelector) {\n content = content.find('.' + this.settings.nestedItemSelector);\n }\n\n content.filter(function () {\n return this.nodeType === 1;\n }).each($.proxy(function (index, item) {\n item = this.prepare(item);\n this.$stage.append(item);\n\n this._items.push(item);\n\n this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n }, this));\n this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0);\n this.invalidate('items');\n };\n /**\n * Adds an item.\n * @todo Use `item` instead of `content` for the event arguments.\n * @public\n * @param {HTMLElement|jQuery|String} content - The item content to add.\n * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end.\n */\n\n\n Owl.prototype.add = function (content, position) {\n var current = this.relative(this._current);\n position = position === undefined ? this._items.length : this.normalize(position, true);\n content = content instanceof jQuery ? content : $(content);\n this.trigger('add', {\n content: content,\n position: position\n });\n content = this.prepare(content);\n\n if (this._items.length === 0 || position === this._items.length) {\n this._items.length === 0 && this.$stage.append(content);\n this._items.length !== 0 && this._items[position - 1].after(content);\n\n this._items.push(content);\n\n this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n } else {\n this._items[position].before(content);\n\n this._items.splice(position, 0, content);\n\n this._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n }\n\n this._items[current] && this.reset(this._items[current].index());\n this.invalidate('items');\n this.trigger('added', {\n content: content,\n position: position\n });\n };\n /**\n * Removes an item by its position.\n * @todo Use `item` instead of `content` for the event arguments.\n * @public\n * @param {Number} position - The relative position of the item to remove.\n */\n\n\n Owl.prototype.remove = function (position) {\n position = this.normalize(position, true);\n\n if (position === undefined) {\n return;\n }\n\n this.trigger('remove', {\n content: this._items[position],\n position: position\n });\n\n this._items[position].remove();\n\n this._items.splice(position, 1);\n\n this._mergers.splice(position, 1);\n\n this.invalidate('items');\n this.trigger('removed', {\n content: null,\n position: position\n });\n };\n /**\n * Preloads images with auto width.\n * @todo Replace by a more generic approach\n * @protected\n */\n\n\n Owl.prototype.preloadAutoWidthImages = function (images) {\n images.each($.proxy(function (i, element) {\n this.enter('pre-loading');\n element = $(element);\n $(new Image()).one('load', $.proxy(function (e) {\n element.attr('src', e.target.src);\n element.css('opacity', 1);\n this.leave('pre-loading');\n !this.is('pre-loading') && !this.is('initializing') && this.refresh();\n }, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina'));\n }, this));\n };\n /**\n * Destroys the carousel.\n * @public\n */\n\n\n Owl.prototype.destroy = function () {\n this.$element.off('.owl.core');\n this.$stage.off('.owl.core');\n $(document).off('.owl.core');\n\n if (this.settings.responsive !== false) {\n window.clearTimeout(this.resizeTimer);\n this.off(window, 'resize', this._handlers.onThrottledResize);\n }\n\n for (var i in this._plugins) {\n this._plugins[i].destroy();\n }\n\n this.$stage.children('.cloned').remove();\n this.$stage.unwrap();\n this.$stage.children().contents().unwrap();\n this.$stage.children().unwrap();\n this.$stage.remove();\n this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\\\S+\\\\s', 'g'), '')).removeData('owl.carousel');\n };\n /**\n * Operators to calculate right-to-left and left-to-right.\n * @protected\n * @param {Number} [a] - The left side operand.\n * @param {String} [o] - The operator.\n * @param {Number} [b] - The right side operand.\n */\n\n\n Owl.prototype.op = function (a, o, b) {\n var rtl = this.settings.rtl;\n\n switch (o) {\n case '<':\n return rtl ? a > b : a < b;\n\n case '>':\n return rtl ? a < b : a > b;\n\n case '>=':\n return rtl ? a <= b : a >= b;\n\n case '<=':\n return rtl ? a >= b : a <= b;\n\n default:\n break;\n }\n };\n /**\n * Attaches to an internal event.\n * @protected\n * @param {HTMLElement} element - The event source.\n * @param {String} event - The event name.\n * @param {Function} listener - The event handler to attach.\n * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not.\n */\n\n\n Owl.prototype.on = function (element, event, listener, capture) {\n if (element.addEventListener) {\n element.addEventListener(event, listener, capture);\n } else if (element.attachEvent) {\n element.attachEvent('on' + event, listener);\n }\n };\n /**\n * Detaches from an internal event.\n * @protected\n * @param {HTMLElement} element - The event source.\n * @param {String} event - The event name.\n * @param {Function} listener - The attached event handler to detach.\n * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not.\n */\n\n\n Owl.prototype.off = function (element, event, listener, capture) {\n if (element.removeEventListener) {\n element.removeEventListener(event, listener, capture);\n } else if (element.detachEvent) {\n element.detachEvent('on' + event, listener);\n }\n };\n /**\n * Triggers a public event.\n * @todo Remove `status`, `relatedTarget` should be used instead.\n * @protected\n * @param {String} name - The event name.\n * @param {*} [data=null] - The event data.\n * @param {String} [namespace=carousel] - The event namespace.\n * @param {String} [state] - The state which is associated with the event.\n * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not.\n * @returns {Event} - The event arguments.\n */\n\n\n Owl.prototype.trigger = function (name, data, namespace, state, enter) {\n var status = {\n item: {\n count: this._items.length,\n index: this.current()\n }\n },\n handler = $.camelCase($.grep(['on', name, namespace], function (v) {\n return v;\n }).join('-').toLowerCase()),\n event = $.Event([name, 'owl', namespace || 'carousel'].join('.').toLowerCase(), $.extend({\n relatedTarget: this\n }, status, data));\n\n if (!this._supress[name]) {\n $.each(this._plugins, function (name, plugin) {\n if (plugin.onTrigger) {\n plugin.onTrigger(event);\n }\n });\n this.register({\n type: Owl.Type.Event,\n name: name\n });\n this.$element.trigger(event);\n\n if (this.settings && typeof this.settings[handler] === 'function') {\n this.settings[handler].call(this, event);\n }\n }\n\n return event;\n };\n /**\n * Enters a state.\n * @param name - The state name.\n */\n\n\n Owl.prototype.enter = function (name) {\n $.each([name].concat(this._states.tags[name] || []), $.proxy(function (i, name) {\n if (this._states.current[name] === undefined) {\n this._states.current[name] = 0;\n }\n\n this._states.current[name]++;\n }, this));\n };\n /**\n * Leaves a state.\n * @param name - The state name.\n */\n\n\n Owl.prototype.leave = function (name) {\n $.each([name].concat(this._states.tags[name] || []), $.proxy(function (i, name) {\n this._states.current[name]--;\n }, this));\n };\n /**\n * Registers an event or state.\n * @public\n * @param {Object} object - The event or state to register.\n */\n\n\n Owl.prototype.register = function (object) {\n if (object.type === Owl.Type.Event) {\n if (!$.event.special[object.name]) {\n $.event.special[object.name] = {};\n }\n\n if (!$.event.special[object.name].owl) {\n var _default = $.event.special[object.name]._default;\n\n $.event.special[object.name]._default = function (e) {\n if (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) {\n return _default.apply(this, arguments);\n }\n\n return e.namespace && e.namespace.indexOf('owl') > -1;\n };\n\n $.event.special[object.name].owl = true;\n }\n } else if (object.type === Owl.Type.State) {\n if (!this._states.tags[object.name]) {\n this._states.tags[object.name] = object.tags;\n } else {\n this._states.tags[object.name] = this._states.tags[object.name].concat(object.tags);\n }\n\n this._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function (tag, i) {\n return $.inArray(tag, this._states.tags[object.name]) === i;\n }, this));\n }\n };\n /**\n * Suppresses events.\n * @protected\n * @param {Array.} events - The events to suppress.\n */\n\n\n Owl.prototype.suppress = function (events) {\n $.each(events, $.proxy(function (index, event) {\n this._supress[event] = true;\n }, this));\n };\n /**\n * Releases suppressed events.\n * @protected\n * @param {Array.} events - The events to release.\n */\n\n\n Owl.prototype.release = function (events) {\n $.each(events, $.proxy(function (index, event) {\n delete this._supress[event];\n }, this));\n };\n /**\n * Gets unified pointer coordinates from event.\n * @todo #261\n * @protected\n * @param {Event} - The `mousedown` or `touchstart` event.\n * @returns {Object} - Contains `x` and `y` coordinates of current pointer position.\n */\n\n\n Owl.prototype.pointer = function (event) {\n var result = {\n x: null,\n y: null\n };\n event = event.originalEvent || event || window.event;\n event = event.touches && event.touches.length ? event.touches[0] : event.changedTouches && event.changedTouches.length ? event.changedTouches[0] : event;\n\n if (event.pageX) {\n result.x = event.pageX;\n result.y = event.pageY;\n } else {\n result.x = event.clientX;\n result.y = event.clientY;\n }\n\n return result;\n };\n /**\n * Determines if the input is a Number or something that can be coerced to a Number\n * @protected\n * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested\n * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number\n */\n\n\n Owl.prototype.isNumeric = function (number) {\n return !isNaN(parseFloat(number));\n };\n /**\n * Gets the difference of two vectors.\n * @todo #261\n * @protected\n * @param {Object} - The first vector.\n * @param {Object} - The second vector.\n * @returns {Object} - The difference.\n */\n\n\n Owl.prototype.difference = function (first, second) {\n return {\n x: first.x - second.x,\n y: first.y - second.y\n };\n };\n /**\n * The jQuery Plugin for the Owl Carousel\n * @todo Navigation plugin `next` and `prev`\n * @public\n */\n\n\n $.fn.owlCarousel = function (option) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.each(function () {\n var $this = $(this),\n data = $this.data('owl.carousel');\n\n if (!data) {\n data = new Owl(this, _typeof(option) == 'object' && option);\n $this.data('owl.carousel', data);\n $.each(['next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'], function (i, event) {\n data.register({\n type: Owl.Type.Event,\n name: event\n });\n data.$element.on(event + '.owl.carousel.core', $.proxy(function (e) {\n if (e.namespace && e.relatedTarget !== this) {\n this.suppress([event]);\n data[event].apply(this, [].slice.call(arguments, 1));\n this.release([event]);\n }\n }, data));\n });\n }\n\n if (typeof option == 'string' && option.charAt(0) !== '_') {\n data[option].apply(data, args);\n }\n });\n };\n /**\n * The constructor for the jQuery Plugin\n * @public\n */\n\n\n $.fn.owlCarousel.Constructor = Owl;\n})(window.Zepto || window.jQuery, window, document);\n/**\n * AutoRefresh Plugin\n * @version 2.3.4\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n\n\n;\n\n(function ($, window, document, undefined) {\n /**\n * Creates the auto refresh plugin.\n * @class The Auto Refresh Plugin\n * @param {Owl} carousel - The Owl Carousel\n */\n var AutoRefresh = function AutoRefresh(carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n /**\n * Refresh interval.\n * @protected\n * @type {number}\n */\n\n this._interval = null;\n /**\n * Whether the element is currently visible or not.\n * @protected\n * @type {Boolean}\n */\n\n this._visible = null;\n /**\n * All event handlers.\n * @protected\n * @type {Object}\n */\n\n this._handlers = {\n 'initialized.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.autoRefresh) {\n this.watch();\n }\n }, this)\n }; // set default options\n\n this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options); // register event handlers\n\n this._core.$element.on(this._handlers);\n };\n /**\n * Default options.\n * @public\n */\n\n\n AutoRefresh.Defaults = {\n autoRefresh: true,\n autoRefreshInterval: 500\n };\n /**\n * Watches the element.\n */\n\n AutoRefresh.prototype.watch = function () {\n if (this._interval) {\n return;\n }\n\n this._visible = this._core.isVisible();\n this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval);\n };\n /**\n * Refreshes the element.\n */\n\n\n AutoRefresh.prototype.refresh = function () {\n if (this._core.isVisible() === this._visible) {\n return;\n }\n\n this._visible = !this._visible;\n\n this._core.$element.toggleClass('owl-hidden', !this._visible);\n\n this._visible && this._core.invalidate('width') && this._core.refresh();\n };\n /**\n * Destroys the plugin.\n */\n\n\n AutoRefresh.prototype.destroy = function () {\n var handler, property;\n window.clearInterval(this._interval);\n\n for (handler in this._handlers) {\n this._core.$element.off(handler, this._handlers[handler]);\n }\n\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n\n $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh;\n})(window.Zepto || window.jQuery, window, document);\n/**\n * Lazy Plugin\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n\n\n;\n\n(function ($, window, document, undefined) {\n /**\n * Creates the lazy plugin.\n * @class The Lazy Plugin\n * @param {Owl} carousel - The Owl Carousel\n */\n var Lazy = function Lazy(carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n /**\n * Already loaded items.\n * @protected\n * @type {Array.}\n */\n\n this._loaded = [];\n /**\n * Event handlers.\n * @protected\n * @type {Object}\n */\n\n this._handlers = {\n 'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function (e) {\n if (!e.namespace) {\n return;\n }\n\n if (!this._core.settings || !this._core.settings.lazyLoad) {\n return;\n }\n\n if (e.property && e.property.name == 'position' || e.type == 'initialized') {\n var settings = this._core.settings,\n n = settings.center && Math.ceil(settings.items / 2) || settings.items,\n i = settings.center && n * -1 || 0,\n position = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i,\n clones = this._core.clones().length,\n load = $.proxy(function (i, v) {\n this.load(v);\n }, this); //TODO: Need documentation for this new option\n\n\n if (settings.lazyLoadEager > 0) {\n n += settings.lazyLoadEager; // If the carousel is looping also preload images that are to the \"left\"\n\n if (settings.loop) {\n position -= settings.lazyLoadEager;\n n++;\n }\n }\n\n while (i++ < n) {\n this.load(clones / 2 + this._core.relative(position));\n clones && $.each(this._core.clones(this._core.relative(position)), load);\n position++;\n }\n }\n }, this)\n }; // set the default options\n\n this._core.options = $.extend({}, Lazy.Defaults, this._core.options); // register event handler\n\n this._core.$element.on(this._handlers);\n };\n /**\n * Default options.\n * @public\n */\n\n\n Lazy.Defaults = {\n lazyLoad: false,\n lazyLoadEager: 0\n };\n /**\n * Loads all resources of an item at the specified position.\n * @param {Number} position - The absolute position of the item.\n * @protected\n */\n\n Lazy.prototype.load = function (position) {\n var $item = this._core.$stage.children().eq(position),\n $elements = $item && $item.find('.owl-lazy');\n\n if (!$elements || $.inArray($item.get(0), this._loaded) > -1) {\n return;\n }\n\n $elements.each($.proxy(function (index, element) {\n var $element = $(element),\n image,\n url = window.devicePixelRatio > 1 && $element.attr('data-src-retina') || $element.attr('data-src') || $element.attr('data-srcset');\n\n this._core.trigger('load', {\n element: $element,\n url: url\n }, 'lazy');\n\n if ($element.is('img')) {\n $element.one('load.owl.lazy', $.proxy(function () {\n $element.css('opacity', 1);\n\n this._core.trigger('loaded', {\n element: $element,\n url: url\n }, 'lazy');\n }, this)).attr('src', url);\n } else if ($element.is('source')) {\n $element.one('load.owl.lazy', $.proxy(function () {\n this._core.trigger('loaded', {\n element: $element,\n url: url\n }, 'lazy');\n }, this)).attr('srcset', url);\n } else {\n image = new Image();\n image.onload = $.proxy(function () {\n $element.css({\n 'background-image': 'url(\"' + url + '\")',\n 'opacity': '1'\n });\n\n this._core.trigger('loaded', {\n element: $element,\n url: url\n }, 'lazy');\n }, this);\n image.src = url;\n }\n }, this));\n\n this._loaded.push($item.get(0));\n };\n /**\n * Destroys the plugin.\n * @public\n */\n\n\n Lazy.prototype.destroy = function () {\n var handler, property;\n\n for (handler in this.handlers) {\n this._core.$element.off(handler, this.handlers[handler]);\n }\n\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n\n $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy;\n})(window.Zepto || window.jQuery, window, document);\n/**\n * AutoHeight Plugin\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n\n\n;\n\n(function ($, window, document, undefined) {\n /**\n * Creates the auto height plugin.\n * @class The Auto Height Plugin\n * @param {Owl} carousel - The Owl Carousel\n */\n var AutoHeight = function AutoHeight(carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n this._previousHeight = null;\n /**\n * All event handlers.\n * @protected\n * @type {Object}\n */\n\n this._handlers = {\n 'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.autoHeight) {\n this.update();\n }\n }, this),\n 'changed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.autoHeight && e.property.name === 'position') {\n this.update();\n }\n }, this),\n 'loaded.owl.lazy': $.proxy(function (e) {\n if (e.namespace && this._core.settings.autoHeight && e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) {\n this.update();\n }\n }, this)\n }; // set default options\n\n this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options); // register event handlers\n\n this._core.$element.on(this._handlers);\n\n this._intervalId = null;\n var refThis = this; // These changes have been taken from a PR by gavrochelegnou proposed in #1575\n // and have been made compatible with the latest jQuery version\n\n $(window).on('load', function () {\n if (refThis._core.settings.autoHeight) {\n refThis.update();\n }\n }); // Autoresize the height of the carousel when window is resized\n // When carousel has images, the height is dependent on the width\n // and should also change on resize\n\n $(window).resize(function () {\n if (refThis._core.settings.autoHeight) {\n if (refThis._intervalId != null) {\n clearTimeout(refThis._intervalId);\n }\n\n refThis._intervalId = setTimeout(function () {\n refThis.update();\n }, 250);\n }\n });\n };\n /**\n * Default options.\n * @public\n */\n\n\n AutoHeight.Defaults = {\n autoHeight: false,\n autoHeightClass: 'owl-height'\n };\n /**\n * Updates the view.\n */\n\n AutoHeight.prototype.update = function () {\n var start = this._core._current,\n end = start + this._core.settings.items,\n lazyLoadEnabled = this._core.settings.lazyLoad,\n visible = this._core.$stage.children().toArray().slice(start, end),\n heights = [],\n maxheight = 0;\n\n $.each(visible, function (index, item) {\n heights.push($(item).height());\n });\n maxheight = Math.max.apply(null, heights);\n\n if (maxheight <= 1 && lazyLoadEnabled && this._previousHeight) {\n maxheight = this._previousHeight;\n }\n\n this._previousHeight = maxheight;\n\n this._core.$stage.parent().height(maxheight).addClass(this._core.settings.autoHeightClass);\n };\n\n AutoHeight.prototype.destroy = function () {\n var handler, property;\n\n for (handler in this._handlers) {\n this._core.$element.off(handler, this._handlers[handler]);\n }\n\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] !== 'function' && (this[property] = null);\n }\n };\n\n $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight;\n})(window.Zepto || window.jQuery, window, document);\n/**\n * Video Plugin\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n\n\n;\n\n(function ($, window, document, undefined) {\n /**\n * Creates the video plugin.\n * @class The Video Plugin\n * @param {Owl} carousel - The Owl Carousel\n */\n var Video = function Video(carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n /**\n * Cache all video URLs.\n * @protected\n * @type {Object}\n */\n\n this._videos = {};\n /**\n * Current playing item.\n * @protected\n * @type {jQuery}\n */\n\n this._playing = null;\n /**\n * All event handlers.\n * @todo The cloned content removale is too late\n * @protected\n * @type {Object}\n */\n\n this._handlers = {\n 'initialized.owl.carousel': $.proxy(function (e) {\n if (e.namespace) {\n this._core.register({\n type: 'state',\n name: 'playing',\n tags: ['interacting']\n });\n }\n }, this),\n 'resize.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.video && this.isInFullScreen()) {\n e.preventDefault();\n }\n }, this),\n 'refreshed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.is('resizing')) {\n this._core.$stage.find('.cloned .owl-video-frame').remove();\n }\n }, this),\n 'changed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && e.property.name === 'position' && this._playing) {\n this.stop();\n }\n }, this),\n 'prepared.owl.carousel': $.proxy(function (e) {\n if (!e.namespace) {\n return;\n }\n\n var $element = $(e.content).find('.owl-video');\n\n if ($element.length) {\n $element.css('display', 'none');\n this.fetch($element, $(e.content));\n }\n }, this)\n }; // set default options\n\n this._core.options = $.extend({}, Video.Defaults, this._core.options); // register event handlers\n\n this._core.$element.on(this._handlers);\n\n this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function (e) {\n this.play(e);\n }, this));\n };\n /**\n * Default options.\n * @public\n */\n\n\n Video.Defaults = {\n video: false,\n videoHeight: false,\n videoWidth: false\n };\n /**\n * Gets the video ID and the type (YouTube/Vimeo/vzaar only).\n * @protected\n * @param {jQuery} target - The target containing the video data.\n * @param {jQuery} item - The item containing the video.\n */\n\n Video.prototype.fetch = function (target, item) {\n var type = function () {\n if (target.attr('data-vimeo-id')) {\n return 'vimeo';\n } else if (target.attr('data-vzaar-id')) {\n return 'vzaar';\n } else {\n return 'youtube';\n }\n }(),\n id = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'),\n width = target.attr('data-width') || this._core.settings.videoWidth,\n height = target.attr('data-height') || this._core.settings.videoHeight,\n url = target.attr('href');\n\n if (url) {\n /*\n \t\tParses the id's out of the following urls (and probably more):\n \t\thttps://www.youtube.com/watch?v=:id\n \t\thttps://youtu.be/:id\n \t\thttps://vimeo.com/:id\n \t\thttps://vimeo.com/channels/:channel/:id\n \t\thttps://vimeo.com/groups/:group/videos/:id\n \t\thttps://app.vzaar.com/videos/:id\n \t\t\tVisual example: https://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F\n */\n id = url.match(/(http:|https:|)\\/\\/(player.|www.|app.)?(vimeo\\.com|youtu(be\\.com|\\.be|be\\.googleapis\\.com|be\\-nocookie\\.com)|vzaar\\.com)\\/(video\\/|videos\\/|embed\\/|channels\\/.+\\/|groups\\/.+\\/|watch\\?v=|v\\/)?([A-Za-z0-9._%-]*)(\\&\\S+)?/);\n\n if (id[3].indexOf('youtu') > -1) {\n type = 'youtube';\n } else if (id[3].indexOf('vimeo') > -1) {\n type = 'vimeo';\n } else if (id[3].indexOf('vzaar') > -1) {\n type = 'vzaar';\n } else {\n throw new Error('Video URL not supported.');\n }\n\n id = id[6];\n } else {\n throw new Error('Missing video URL.');\n }\n\n this._videos[url] = {\n type: type,\n id: id,\n width: width,\n height: height\n };\n item.attr('data-video', url);\n this.thumbnail(target, this._videos[url]);\n };\n /**\n * Creates video thumbnail.\n * @protected\n * @param {jQuery} target - The target containing the video data.\n * @param {Object} info - The video info object.\n * @see `fetch`\n */\n\n\n Video.prototype.thumbnail = function (target, video) {\n var tnLink,\n icon,\n path,\n dimensions = video.width && video.height ? 'width:' + video.width + 'px;height:' + video.height + 'px;' : '',\n customTn = target.find('img'),\n srcType = 'src',\n lazyClass = '',\n settings = this._core.settings,\n create = function create(path) {\n icon = '
';\n\n if (settings.lazyLoad) {\n tnLink = $('
', {\n \"class\": 'owl-video-tn ' + lazyClass,\n \"srcType\": path\n });\n } else {\n tnLink = $('
', {\n \"class\": \"owl-video-tn\",\n \"style\": 'opacity:1;background-image:url(' + path + ')'\n });\n }\n\n target.after(tnLink);\n target.after(icon);\n }; // wrap video content into owl-video-wrapper div\n\n\n target.wrap($('
', {\n \"class\": \"owl-video-wrapper\",\n \"style\": dimensions\n }));\n\n if (this._core.settings.lazyLoad) {\n srcType = 'data-src';\n lazyClass = 'owl-lazy';\n } // custom thumbnail\n\n\n if (customTn.length) {\n create(customTn.attr(srcType));\n customTn.remove();\n return false;\n }\n\n if (video.type === 'youtube') {\n path = \"//img.youtube.com/vi/\" + video.id + \"/hqdefault.jpg\";\n create(path);\n } else if (video.type === 'vimeo') {\n $.ajax({\n type: 'GET',\n url: '//vimeo.com/api/v2/video/' + video.id + '.json',\n jsonp: 'callback',\n dataType: 'jsonp',\n success: function success(data) {\n path = data[0].thumbnail_large;\n create(path);\n }\n });\n } else if (video.type === 'vzaar') {\n $.ajax({\n type: 'GET',\n url: '//vzaar.com/api/videos/' + video.id + '.json',\n jsonp: 'callback',\n dataType: 'jsonp',\n success: function success(data) {\n path = data.framegrab_url;\n create(path);\n }\n });\n }\n };\n /**\n * Stops the current video.\n * @public\n */\n\n\n Video.prototype.stop = function () {\n this._core.trigger('stop', null, 'video');\n\n this._playing.find('.owl-video-frame').remove();\n\n this._playing.removeClass('owl-video-playing');\n\n this._playing = null;\n\n this._core.leave('playing');\n\n this._core.trigger('stopped', null, 'video');\n };\n /**\n * Starts the current video.\n * @public\n * @param {Event} event - The event arguments.\n */\n\n\n Video.prototype.play = function (event) {\n var target = $(event.target),\n item = target.closest('.' + this._core.settings.itemClass),\n video = this._videos[item.attr('data-video')],\n width = video.width || '100%',\n height = video.height || this._core.$stage.height(),\n html,\n iframe;\n\n if (this._playing) {\n return;\n }\n\n this._core.enter('playing');\n\n this._core.trigger('play', null, 'video');\n\n item = this._core.items(this._core.relative(item.index()));\n\n this._core.reset(item.index());\n\n html = $('');\n html.attr('height', height);\n html.attr('width', width);\n\n if (video.type === 'youtube') {\n html.attr('src', '//www.youtube.com/embed/' + video.id + '?autoplay=1&rel=0&v=' + video.id);\n } else if (video.type === 'vimeo') {\n html.attr('src', '//player.vimeo.com/video/' + video.id + '?autoplay=1');\n } else if (video.type === 'vzaar') {\n html.attr('src', '//view.vzaar.com/' + video.id + '/player?autoplay=true');\n }\n\n iframe = $(html).wrap('
').insertAfter(item.find('.owl-video'));\n this._playing = item.addClass('owl-video-playing');\n };\n /**\n * Checks whether an video is currently in full screen mode or not.\n * @todo Bad style because looks like a readonly method but changes members.\n * @protected\n * @returns {Boolean}\n */\n\n\n Video.prototype.isInFullScreen = function () {\n var element = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;\n return element && $(element).parent().hasClass('owl-video-frame');\n };\n /**\n * Destroys the plugin.\n */\n\n\n Video.prototype.destroy = function () {\n var handler, property;\n\n this._core.$element.off('click.owl.video');\n\n for (handler in this._handlers) {\n this._core.$element.off(handler, this._handlers[handler]);\n }\n\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n\n $.fn.owlCarousel.Constructor.Plugins.Video = Video;\n})(window.Zepto || window.jQuery, window, document);\n/**\n * Animate Plugin\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n\n\n;\n\n(function ($, window, document, undefined) {\n /**\n * Creates the animate plugin.\n * @class The Navigation Plugin\n * @param {Owl} scope - The Owl Carousel\n */\n var Animate = function Animate(scope) {\n this.core = scope;\n this.core.options = $.extend({}, Animate.Defaults, this.core.options);\n this.swapping = true;\n this.previous = undefined;\n this.next = undefined;\n this.handlers = {\n 'change.owl.carousel': $.proxy(function (e) {\n if (e.namespace && e.property.name == 'position') {\n this.previous = this.core.current();\n this.next = e.property.value;\n }\n }, this),\n 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function (e) {\n if (e.namespace) {\n this.swapping = e.type == 'translated';\n }\n }, this),\n 'translate.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) {\n this.swap();\n }\n }, this)\n };\n this.core.$element.on(this.handlers);\n };\n /**\n * Default options.\n * @public\n */\n\n\n Animate.Defaults = {\n animateOut: false,\n animateIn: false\n };\n /**\n * Toggles the animation classes whenever an translations starts.\n * @protected\n * @returns {Boolean|undefined}\n */\n\n Animate.prototype.swap = function () {\n if (this.core.settings.items !== 1) {\n return;\n }\n\n if (!$.support.animation || !$.support.transition) {\n return;\n }\n\n this.core.speed(0);\n var left,\n clear = $.proxy(this.clear, this),\n previous = this.core.$stage.children().eq(this.previous),\n next = this.core.$stage.children().eq(this.next),\n incoming = this.core.settings.animateIn,\n outgoing = this.core.settings.animateOut;\n\n if (this.core.current() === this.previous) {\n return;\n }\n\n if (outgoing) {\n left = this.core.coordinates(this.previous) - this.core.coordinates(this.next);\n previous.one($.support.animation.end, clear).css({\n 'left': left + 'px'\n }).addClass('animated owl-animated-out').addClass(outgoing);\n }\n\n if (incoming) {\n next.one($.support.animation.end, clear).addClass('animated owl-animated-in').addClass(incoming);\n }\n };\n\n Animate.prototype.clear = function (e) {\n $(e.target).css({\n 'left': ''\n }).removeClass('animated owl-animated-out owl-animated-in').removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut);\n this.core.onTransitionEnd();\n };\n /**\n * Destroys the plugin.\n * @public\n */\n\n\n Animate.prototype.destroy = function () {\n var handler, property;\n\n for (handler in this.handlers) {\n this.core.$element.off(handler, this.handlers[handler]);\n }\n\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n\n $.fn.owlCarousel.Constructor.Plugins.Animate = Animate;\n})(window.Zepto || window.jQuery, window, document);\n/**\n * Autoplay Plugin\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author Artus Kolanowski\n * @author David Deutsch\n * @author Tom De Caluwé\n * @license The MIT License (MIT)\n */\n\n\n;\n\n(function ($, window, document, undefined) {\n /**\n * Creates the autoplay plugin.\n * @class The Autoplay Plugin\n * @param {Owl} scope - The Owl Carousel\n */\n var Autoplay = function Autoplay(carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n /**\n * The autoplay timeout id.\n * @type {Number}\n */\n\n this._call = null;\n /**\n * Depending on the state of the plugin, this variable contains either\n * the start time of the timer or the current timer value if it's\n * paused. Since we start in a paused state we initialize the timer\n * value.\n * @type {Number}\n */\n\n this._time = 0;\n /**\n * Stores the timeout currently used.\n * @type {Number}\n */\n\n this._timeout = 0;\n /**\n * Indicates whenever the autoplay is paused.\n * @type {Boolean}\n */\n\n this._paused = true;\n /**\n * All event handlers.\n * @protected\n * @type {Object}\n */\n\n this._handlers = {\n 'changed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && e.property.name === 'settings') {\n if (this._core.settings.autoplay) {\n this.play();\n } else {\n this.stop();\n }\n } else if (e.namespace && e.property.name === 'position' && this._paused) {\n // Reset the timer. This code is triggered when the position\n // of the carousel was changed through user interaction.\n this._time = 0;\n }\n }, this),\n 'initialized.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.autoplay) {\n this.play();\n }\n }, this),\n 'play.owl.autoplay': $.proxy(function (e, t, s) {\n if (e.namespace) {\n this.play(t, s);\n }\n }, this),\n 'stop.owl.autoplay': $.proxy(function (e) {\n if (e.namespace) {\n this.stop();\n }\n }, this),\n 'mouseover.owl.autoplay': $.proxy(function () {\n if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n this.pause();\n }\n }, this),\n 'mouseleave.owl.autoplay': $.proxy(function () {\n if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n this.play();\n }\n }, this),\n 'touchstart.owl.core': $.proxy(function () {\n if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n this.pause();\n }\n }, this),\n 'touchend.owl.core': $.proxy(function () {\n if (this._core.settings.autoplayHoverPause) {\n this.play();\n }\n }, this)\n }; // register event handlers\n\n this._core.$element.on(this._handlers); // set default options\n\n\n this._core.options = $.extend({}, Autoplay.Defaults, this._core.options);\n };\n /**\n * Default options.\n * @public\n */\n\n\n Autoplay.Defaults = {\n autoplay: false,\n autoplayTimeout: 5000,\n autoplayHoverPause: false,\n autoplaySpeed: false\n };\n /**\n * Transition to the next slide and set a timeout for the next transition.\n * @private\n * @param {Number} [speed] - The animation speed for the animations.\n */\n\n Autoplay.prototype._next = function (speed) {\n this._call = window.setTimeout($.proxy(this._next, this, speed), this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read());\n\n if (this._core.is('interacting') || document.hidden) {\n return;\n }\n\n this._core.next(speed || this._core.settings.autoplaySpeed);\n };\n /**\n * Reads the current timer value when the timer is playing.\n * @public\n */\n\n\n Autoplay.prototype.read = function () {\n return new Date().getTime() - this._time;\n };\n /**\n * Starts the autoplay.\n * @public\n * @param {Number} [timeout] - The interval before the next animation starts.\n * @param {Number} [speed] - The animation speed for the animations.\n */\n\n\n Autoplay.prototype.play = function (timeout, speed) {\n var elapsed;\n\n if (!this._core.is('rotating')) {\n this._core.enter('rotating');\n }\n\n timeout = timeout || this._core.settings.autoplayTimeout; // Calculate the elapsed time since the last transition. If the carousel\n // wasn't playing this calculation will yield zero.\n\n elapsed = Math.min(this._time % (this._timeout || timeout), timeout);\n\n if (this._paused) {\n // Start the clock.\n this._time = this.read();\n this._paused = false;\n } else {\n // Clear the active timeout to allow replacement.\n window.clearTimeout(this._call);\n } // Adjust the origin of the timer to match the new timeout value.\n\n\n this._time += this.read() % timeout - elapsed;\n this._timeout = timeout;\n this._call = window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed);\n };\n /**\n * Stops the autoplay.\n * @public\n */\n\n\n Autoplay.prototype.stop = function () {\n if (this._core.is('rotating')) {\n // Reset the clock.\n this._time = 0;\n this._paused = true;\n window.clearTimeout(this._call);\n\n this._core.leave('rotating');\n }\n };\n /**\n * Pauses the autoplay.\n * @public\n */\n\n\n Autoplay.prototype.pause = function () {\n if (this._core.is('rotating') && !this._paused) {\n // Pause the clock.\n this._time = this.read();\n this._paused = true;\n window.clearTimeout(this._call);\n }\n };\n /**\n * Destroys the plugin.\n */\n\n\n Autoplay.prototype.destroy = function () {\n var handler, property;\n this.stop();\n\n for (handler in this._handlers) {\n this._core.$element.off(handler, this._handlers[handler]);\n }\n\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n\n $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay;\n})(window.Zepto || window.jQuery, window, document);\n/**\n * Navigation Plugin\n * @version 2.3.4\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n\n\n;\n\n(function ($, window, document, undefined) {\n 'use strict';\n /**\n * Creates the navigation plugin.\n * @class The Navigation Plugin\n * @param {Owl} carousel - The Owl Carousel.\n */\n\n var Navigation = function Navigation(carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n /**\n * Indicates whether the plugin is initialized or not.\n * @protected\n * @type {Boolean}\n */\n\n this._initialized = false;\n /**\n * The current paging indexes.\n * @protected\n * @type {Array}\n */\n\n this._pages = [];\n /**\n * All DOM elements of the user interface.\n * @protected\n * @type {Object}\n */\n\n this._controls = {};\n /**\n * Markup for an indicator.\n * @protected\n * @type {Array.}\n */\n\n this._templates = [];\n /**\n * The carousel element.\n * @type {jQuery}\n */\n\n this.$element = this._core.$element;\n /**\n * Overridden methods of the carousel.\n * @protected\n * @type {Object}\n */\n\n this._overrides = {\n next: this._core.next,\n prev: this._core.prev,\n to: this._core.to\n };\n /**\n * All event handlers.\n * @protected\n * @type {Object}\n */\n\n this._handlers = {\n 'prepared.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.dotsData) {\n this._templates.push('
' + $(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '
');\n }\n }, this),\n 'added.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.dotsData) {\n this._templates.splice(e.position, 0, this._templates.pop());\n }\n }, this),\n 'remove.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.dotsData) {\n this._templates.splice(e.position, 1);\n }\n }, this),\n 'changed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && e.property.name == 'position') {\n this.draw();\n }\n }, this),\n 'initialized.owl.carousel': $.proxy(function (e) {\n if (e.namespace && !this._initialized) {\n this._core.trigger('initialize', null, 'navigation');\n\n this.initialize();\n this.update();\n this.draw();\n this._initialized = true;\n\n this._core.trigger('initialized', null, 'navigation');\n }\n }, this),\n 'refreshed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._initialized) {\n this._core.trigger('refresh', null, 'navigation');\n\n this.update();\n this.draw();\n\n this._core.trigger('refreshed', null, 'navigation');\n }\n }, this)\n }; // set default options\n\n this._core.options = $.extend({}, Navigation.Defaults, this._core.options); // register event handlers\n\n this.$element.on(this._handlers);\n };\n /**\n * Default options.\n * @public\n * @todo Rename `slideBy` to `navBy`\n */\n\n\n Navigation.Defaults = {\n nav: false,\n navText: ['', ''],\n navSpeed: false,\n navElement: 'button type=\"button\" role=\"presentation\"',\n navContainer: false,\n navContainerClass: 'owl-nav',\n navClass: ['owl-prev', 'owl-next'],\n slideBy: 1,\n dotClass: 'owl-dot',\n dotsClass: 'owl-dots',\n dots: true,\n dotsEach: false,\n dotsData: false,\n dotsSpeed: false,\n dotsContainer: false\n };\n /**\n * Initializes the layout of the plugin and extends the carousel.\n * @protected\n */\n\n Navigation.prototype.initialize = function () {\n var override,\n settings = this._core.settings; // create DOM structure for relative navigation\n\n this._controls.$relative = (settings.navContainer ? $(settings.navContainer) : $('
').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled');\n this._controls.$previous = $('<' + settings.navElement + '>').addClass(settings.navClass[0]).html(settings.navText[0]).prependTo(this._controls.$relative).on('click', $.proxy(function (e) {\n this.prev(settings.navSpeed);\n }, this));\n this._controls.$next = $('<' + settings.navElement + '>').addClass(settings.navClass[1]).html(settings.navText[1]).appendTo(this._controls.$relative).on('click', $.proxy(function (e) {\n this.next(settings.navSpeed);\n }, this)); // create DOM structure for absolute navigation\n\n if (!settings.dotsData) {\n this._templates = [$('