{"version":3,"sources":["../../node_modules/tippy.js/dist/tippy.all.js","../../vendor/d3r/core/resources/javascript/jquery/ui/jquery.ui.widget.js","../../vendor/d3r/core/resources/javascript/jquery/plugins/jquery.event.mobile.js","../../vendor/d3r/core/resources/javascript/jquery/plugins/jquery.cleverlabels.js","../../vendor/d3r/core/resources/javascript/jquery/d3r/d3r.slider.js","../../vendor/d3r/core/resources/javascript/jquery/d3r/d3r.scrollable.js","../../vendor/d3r/core/resources/javascript/d3r.js"],"names":["global","factory","exports","module","define","amd","tippy","this","isBrowser","window","isIE","test","navigator","userAgent","browser","supported","supportsTouch","usingTouch","dynamicInputDetection","iOS","platform","MSStream","onUserInputChange","selectors","POPPER","TOOLTIP","CONTENT","BACKDROP","ARROW","ROUND_ARROW","REFERENCE","defaults","placement","livePlacement","trigger","animation","html","animateFill","arrow","delay","duration","interactive","interactiveBorder","theme","size","distance","offset","hideOnClick","multiple","followCursor","inertia","updateDuration","sticky","appendTo","document","body","zIndex","touchHold","performance","dynamicTitle","flip","flipBehavior","arrowType","arrowTransform","maxWidth","target","allowTitleHTML","popperOptions","createPopperInstanceOnInit","onShow","onShown","onHide","onHidden","defaultsKeys","Object","keys","isObjectLiteral","value","toString","call","toArray","slice","prefix","property","prefixes","upperProp","charAt","toUpperCase","i","length","_prefix","prefixedProp","style","div","createElement","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","key","Constructor","protoProps","staticProps","prototype","_extends","assign","arguments","source","hasOwnProperty","getInnerElements","popper","select","s","querySelector","tooltip","backdrop","content","removeTitle","el","title","getAttribute","setAttribute","removeAttribute","isBrowser$1","longerTimeoutBrowsers","timeoutDuration","indexOf","debounce","Promise","fn","called","resolve","then","scheduled","setTimeout","isFunction","functionToCheck","getStyleComputedProperty","element","nodeType","css","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","ownerDocument","_getStyleComputedProp","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE$1","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","upperSide","undefined","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","createClass$1","defineProperty$1","obj","_extends$1","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","refRect","rects","sortedAreas","map","area","_ref","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","prop","findIndex","cur","match","forEach","console","warn","enabled","update","isDestroyed","instance","arrowStyles","attributes","flipped","options","positionFixed","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","toCheck","destroy","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","defaultView","attachToScrollParents","event","callback","scrollParents","isBody","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","index","concat","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","_data$offsets$arrow","arrowElement","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","invertTop","invertLeft","applyStyle","onLoad","modifierOptions","Defaults","Popper","_this","TypeError","classCallCheck$1","requestAnimationFrame","bind","jquery","getPopperPlacement","transformNumbersBasedOnPlacementAxis","type","numbers","isReverse","scale","translate","transformAxis","X","Y","computeArrowTransform","getAxis","re","getNumbers","matches","computedTransform","getOffsetDistanceInPx","Utils","PopperUtils","Element","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","querySelectorAll","item","matches$1","closest","parentSelector","selector","getValue","isArray","setVisibilityState","els","applyTransitionDuration","Boolean","focus","scrollX","pageXOffset","scrollY","pageYOffset","scroll","Tippy","config","_key","classCallCheck","destroyed","visible","_","mutationObservers","k","_getInnerElements","hasAttribute","refObj","visibility","_mount","_hasFollowCursorBehavior","popperInstance","lastTriggerEvent","followCursorListener","lastMouseMoveEvent","classList","add","_makeSticky","_onTransitionEnd","id","_this2","_getInnerElements2","remove","isPreparingToShow","_this3","destroyTargetInstances","listeners","listener","handler","_tippy","attr","child","observer","disconnect","_createDelegateChildTippy","targetEl","_enter","_this4","_clearDelayTimeouts","wait","show","_setFollowCursorListener","margin","showTimeout","_leave","_this5","hideTimeout","_getEventListeners","_this6","onTrigger","onMouseLeave","onMouseMove","referenceCursorIsOver","cursorIsOverPopper","cursorIsOverReference","clientX","clientY","borderWithDistance","exceeds","cursorIsOutsideInteractiveBorder","onBlur","relatedTarget","onDelegateShow","onDelegateHide","_createPopperInstance","_this7","arrowSelector","_addMutationObserver","childList","subtree","characterData","updateAlreadyCalled","reflow","updatePopperPosition","appendChild","clearTimeout","_this8","_$lastMouseMoveEvent","_this9","updatePosition","MutationObserver","observe","toggleListeners","action","transitionendListener","idCounter","createTooltips","acc","evaluateOptions","instanceOptions","val","JSON","parse","getIndividualOptions","t","innerHTML","templateId","createPopperElement","eventType","handlers","on","createTrigger","_reference","hideAllPoppers","excludeTippy","eventListenersBound","useCapture","one","time","onDocumentTouch","onDocumentMouseMove","now","isClickTrigger","isMultiple","activeElement","blur","tippyInstance","maxTouchPoints","msMaxTouchPoints","bindEventListeners","classNames","references","NodeList","getArrayOfElements","firstReference","tooltips","destroyAll","disableAnimations","head","insertBefore","firstChild","styleSheet","cssText","createTextNode","injectCSS","$","cleanData","_cleanData","elems","elem","triggerHandler","_remove","keepData","each","widget","base","fullName","namespace","Widget","expr","_createWidget","basePrototype","extend","widgetName","widgetEventPrefix","widgetBaseClass","bridge","object","isMethodCall","args","returnValue","apply","methodValue","option","_init","disabled","_getCreateOptions","self","_create","_trigger","metadata","get","unbind","removeData","removeAttr","removeClass","_setOptions","_setOption","enable","disable","orig","Event","originalEvent","isDefaultPrevented","jQuery","support","orientation","touch","supportTouch","touchStartEvent","touchStopEvent","touchMoveEvent","special","scrollstart","setup","scrolling","timer","thisObject","originalType","dispatch","tap","$this","which","moved","touching","origPos","pageX","pageY","moveHandler","abs","swipe","stop","touches","Date","getTime","coords","origin","preventDefault","special_event","get_orientation","last_orientation","win","orientationchange","teardown","handleObj","old_handler","scrollstop","taphold","swipeleft","swiperight","sourceEvent","noop","cleverlabels","override","$el","labeltext","init","defaultOptions","text","allowAsterisk","html5Support","$dummy","inputClass","$height","outerHeight","outerWidth","wrap","before","clearval","opacity","fillval","submit","addClass","placeholder","fillcleverlabels","clearcleverlabels","slider","page","wrapper","next","prev","count","nav","navItem","navActiveClass","autoplay","autostop","autodelay","equalHeights","debug","removeClasses","disableSelect","onInitCallback","onSelectCallback","_debug","slides","itemsPerPage","_setupPages","prevent","join","active","eq","playing","proxy","_initNav","_updateNav","_updateHeights","_bindSwipes","play","mouseleave","mouseenter","classnames","_unbindSwipes","diff","exitClass","enterClass","slide","_next","_prev","setInterval","clearInterval","first","items","empty","append","clone","splice","navItems","log","scrollable","track","disabledClass","activeClass","hiddenClass","paginate","autorefresh","beforeSlide","afterSlide","perPage","nextButton","prevButton","resize","_updatePages","_updateButtons","_updateHidden","_updateActive","off","_indexIsValid","when","done","refresh","multiplier","_nextIndex","_nextOrStart","_prevIndex","$target","is","hasClass","autoclose","location","$options","$option","checkValidity","message","confirm","pathname","animate","url","newwindow","open"],"mappings":"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","file":"../../../javascript/libs/common.js","sourcesContent":["/*!\n* Tippy.js v2.6.0\n* (c) 2017-2018 atomiks\n* MIT\n*/\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.tippy = factory());\n}(this, (function () { 'use strict';\n\nvar styles = \".tippy-touch{cursor:pointer!important}.tippy-notransition{transition:none!important}.tippy-popper{max-width:350px;-webkit-perspective:700px;perspective:700px;z-index:9999;outline:0;transition-timing-function:cubic-bezier(.165,.84,.44,1);pointer-events:none;line-height:1.4}.tippy-popper[data-html]{max-width:96%;max-width:calc(100% - 20px)}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 90%;transform-origin:0 90%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-50%,25%);transform:scale(6) translate(-50%,25%);opacity:1}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1) translate(-50%,25%);transform:scale(1) translate(-50%,25%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px) rotateX(0);transform:translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(90deg);transform:translateY(0) rotateX(90deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -90%;transform-origin:0 -90%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-50%,-125%);transform:scale(6) translate(-50%,-125%);opacity:1}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1) translate(-50%,-125%);transform:scale(1) translate(-50%,-125%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateY(10px) rotateX(0);transform:translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(-90deg);transform:translateY(0) rotateX(-90deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:100% 0;transform-origin:100% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(40%,-50%);transform:scale(6) translate(40%,-50%);opacity:1}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1.5) translate(40%,-50%);transform:scale(1.5) translate(40%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px) rotateY(0);transform:translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(-90deg);transform:translateX(0) rotateY(-90deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-100% 0;transform-origin:-100% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-140%,-50%);transform:scale(6) translate(-140%,-50%);opacity:1}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1.5) translate(-140%,-50%);transform:scale(1.5) translate(-140%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateX(10px) rotateY(0);transform:translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(90deg);transform:translateX(0) rotateY(90deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;text-align:center;will-change:transform;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-animatefill] .tippy-content{transition:-webkit-clip-path cubic-bezier(.46,.1,.52,.98);transition:clip-path cubic-bezier(.46,.1,.52,.98);transition:clip-path cubic-bezier(.46,.1,.52,.98),-webkit-clip-path cubic-bezier(.46,.1,.52,.98)}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.53,2,.36,.85)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:26%;left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:\\\"\\\";float:left;padding-top:100%}body:not(.tippy-touch) .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(100% 100% at 50% 50%);clip-path:ellipse(100% 100% at 50% 50%)}body:not(.tippy-touch) .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(5% 50% at 50% 50%);clip-path:ellipse(5% 50% at 50% 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=right] .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(135% 100% at 0 50%);clip-path:ellipse(135% 100% at 0 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=right] .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(40% 100% at 0 50%);clip-path:ellipse(40% 100% at 0 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=left] .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(135% 100% at 100% 50%);clip-path:ellipse(135% 100% at 100% 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=left] .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(40% 100% at 100% 50%);clip-path:ellipse(40% 100% at 100% 50%)}@media (max-width:360px){.tippy-popper{max-width:96%;max-width:calc(100% - 20px)}}\";\n\nvar version = \"2.6.0\";\n\nvar isBrowser = typeof window !== 'undefined';\n\nvar isIE = isBrowser && /MSIE |Trident\\//.test(navigator.userAgent);\n\nvar browser = {};\n\nif (isBrowser) {\n  browser.supported = 'requestAnimationFrame' in window;\n  browser.supportsTouch = 'ontouchstart' in window;\n  browser.usingTouch = false;\n  browser.dynamicInputDetection = true;\n  browser.iOS = /iPhone|iPad|iPod/.test(navigator.platform) && !window.MSStream;\n  browser.onUserInputChange = function () {};\n}\n\n/**\n * Selector constants used for grabbing elements\n */\nvar selectors = {\n  POPPER: '.tippy-popper',\n  TOOLTIP: '.tippy-tooltip',\n  CONTENT: '.tippy-content',\n  BACKDROP: '.tippy-backdrop',\n  ARROW: '.tippy-arrow',\n  ROUND_ARROW: '.tippy-roundarrow',\n  REFERENCE: '[data-tippy]'\n};\n\nvar defaults = {\n  placement: 'top',\n  livePlacement: true,\n  trigger: 'mouseenter focus',\n  animation: 'shift-away',\n  html: false,\n  animateFill: true,\n  arrow: false,\n  delay: [0, 20],\n  duration: [350, 300],\n  interactive: false,\n  interactiveBorder: 2,\n  theme: 'dark',\n  size: 'regular',\n  distance: 10,\n  offset: 0,\n  hideOnClick: true,\n  multiple: false,\n  followCursor: false,\n  inertia: false,\n  updateDuration: 350,\n  sticky: false,\n  appendTo: function appendTo() {\n    return document.body;\n  },\n  zIndex: 9999,\n  touchHold: false,\n  performance: false,\n  dynamicTitle: false,\n  flip: true,\n  flipBehavior: 'flip',\n  arrowType: 'sharp',\n  arrowTransform: '',\n  maxWidth: '',\n  target: null,\n  allowTitleHTML: true,\n  popperOptions: {},\n  createPopperInstanceOnInit: false,\n  onShow: function onShow() {},\n  onShown: function onShown() {},\n  onHide: function onHide() {},\n  onHidden: function onHidden() {}\n};\n\n/**\n * The keys of the defaults object for reducing down into a new object\n * Used in `getIndividualOptions()`\n */\nvar defaultsKeys = browser.supported && Object.keys(defaults);\n\n/**\n * Determines if a value is an object literal\n * @param {*} value\n * @return {Boolean}\n */\nfunction isObjectLiteral(value) {\n  return {}.toString.call(value) === '[object Object]';\n}\n\n/**\n * Ponyfill for Array.from\n * @param {*} value\n * @return {Array}\n */\nfunction toArray(value) {\n  return [].slice.call(value);\n}\n\n/**\n * Returns an array of elements based on the selector input\n * @param {String|Element|Element[]|NodeList|Object} selector\n * @return {Element[]}\n */\nfunction getArrayOfElements(selector) {\n  if (selector instanceof Element || isObjectLiteral(selector)) {\n    return [selector];\n  }\n\n  if (selector instanceof NodeList) {\n    return toArray(selector);\n  }\n\n  if (Array.isArray(selector)) {\n    return selector;\n  }\n\n  try {\n    return toArray(document.querySelectorAll(selector));\n  } catch (_) {\n    return [];\n  }\n}\n\n/**\n * Polyfills needed props/methods for a virtual reference object\n * NOTE: in v3.0 this will be pure\n * @param {Object} reference\n */\nfunction polyfillVirtualReferenceProps(reference) {\n  reference.refObj = true;\n  reference.attributes = reference.attributes || {};\n  reference.setAttribute = function (key, val) {\n    reference.attributes[key] = val;\n  };\n  reference.getAttribute = function (key) {\n    return reference.attributes[key];\n  };\n  reference.removeAttribute = function (key) {\n    delete reference.attributes[key];\n  };\n  reference.hasAttribute = function (key) {\n    return key in reference.attributes;\n  };\n  reference.addEventListener = function () {};\n  reference.removeEventListener = function () {};\n  reference.classList = {\n    classNames: {},\n    add: function add(key) {\n      return reference.classList.classNames[key] = true;\n    },\n    remove: function remove(key) {\n      delete reference.classList.classNames[key];\n      return true;\n    },\n    contains: function contains(key) {\n      return key in reference.classList.classNames;\n    }\n  };\n}\n\n/**\n * Returns the supported prefixed property - only `webkit` is needed, `moz`, `ms` and `o` are obsolete\n * @param {String} property\n * @return {String} - browser supported prefixed property\n */\nfunction prefix(property) {\n  var prefixes = ['', 'webkit'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var _prefix = prefixes[i];\n    var prefixedProp = _prefix ? _prefix + upperProp : property;\n    if (typeof document.body.style[prefixedProp] !== 'undefined') {\n      return prefixedProp;\n    }\n  }\n\n  return null;\n}\n\n/**\n * Creates a div element\n * @return {Element}\n */\nfunction div() {\n  return document.createElement('div');\n}\n\n/**\n * Creates a popper element then returns it\n * @param {Number} id - the popper id\n * @param {String} title - the tooltip's `title` attribute\n * @param {Object} options - individual options\n * @return {Element} - the popper element\n */\nfunction createPopperElement(id, title, options) {\n  var popper = div();\n  popper.setAttribute('class', 'tippy-popper');\n  popper.setAttribute('role', 'tooltip');\n  popper.setAttribute('id', 'tippy-' + id);\n  popper.style.zIndex = options.zIndex;\n  popper.style.maxWidth = options.maxWidth;\n\n  var tooltip = div();\n  tooltip.setAttribute('class', 'tippy-tooltip');\n  tooltip.setAttribute('data-size', options.size);\n  tooltip.setAttribute('data-animation', options.animation);\n  tooltip.setAttribute('data-state', 'hidden');\n  options.theme.split(' ').forEach(function (t) {\n    tooltip.classList.add(t + '-theme');\n  });\n\n  var content = div();\n  content.setAttribute('class', 'tippy-content');\n\n  if (options.arrow) {\n    var arrow = div();\n    arrow.style[prefix('transform')] = options.arrowTransform;\n\n    if (options.arrowType === 'round') {\n      arrow.classList.add('tippy-roundarrow');\n      arrow.innerHTML = '<svg viewBox=\"0 0 24 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3 8s2.021-.015 5.253-4.218C9.584 2.051 10.797 1.007 12 1c1.203-.007 2.416 1.035 3.761 2.782C19.012 8.005 21 8 21 8H3z\"/></svg>';\n    } else {\n      arrow.classList.add('tippy-arrow');\n    }\n\n    tooltip.appendChild(arrow);\n  }\n\n  if (options.animateFill) {\n    // Create animateFill circle element for animation\n    tooltip.setAttribute('data-animatefill', '');\n    var backdrop = div();\n    backdrop.classList.add('tippy-backdrop');\n    backdrop.setAttribute('data-state', 'hidden');\n    tooltip.appendChild(backdrop);\n  }\n\n  if (options.inertia) {\n    // Change transition timing function cubic bezier\n    tooltip.setAttribute('data-inertia', '');\n  }\n\n  if (options.interactive) {\n    tooltip.setAttribute('data-interactive', '');\n  }\n\n  var html = options.html;\n  if (html) {\n    var templateId = void 0;\n\n    if (html instanceof Element) {\n      content.appendChild(html);\n      templateId = '#' + (html.id || 'tippy-html-template');\n    } else {\n      // trick linters: https://github.com/atomiks/tippyjs/issues/197\n      content[true && 'innerHTML'] = document.querySelector(html)[true && 'innerHTML'];\n      templateId = html;\n    }\n\n    popper.setAttribute('data-html', '');\n    tooltip.setAttribute('data-template-id', templateId);\n\n    if (options.interactive) {\n      popper.setAttribute('tabindex', '-1');\n    }\n  } else {\n    content[options.allowTitleHTML ? 'innerHTML' : 'textContent'] = title;\n  }\n\n  tooltip.appendChild(content);\n  popper.appendChild(tooltip);\n\n  return popper;\n}\n\n/**\n * Creates a trigger by adding the necessary event listeners to the reference element\n * @param {String} eventType - the custom event specified in the `trigger` setting\n * @param {Element} reference\n * @param {Object} handlers - the handlers for each event\n * @param {Object} options\n * @return {Array} - array of listener objects\n */\nfunction createTrigger(eventType, reference, handlers, options) {\n  var onTrigger = handlers.onTrigger,\n      onMouseLeave = handlers.onMouseLeave,\n      onBlur = handlers.onBlur,\n      onDelegateShow = handlers.onDelegateShow,\n      onDelegateHide = handlers.onDelegateHide;\n\n  var listeners = [];\n\n  if (eventType === 'manual') return listeners;\n\n  var on = function on(eventType, handler) {\n    reference.addEventListener(eventType, handler);\n    listeners.push({ event: eventType, handler: handler });\n  };\n\n  if (!options.target) {\n    on(eventType, onTrigger);\n\n    if (browser.supportsTouch && options.touchHold) {\n      on('touchstart', onTrigger);\n      on('touchend', onMouseLeave);\n    }\n    if (eventType === 'mouseenter') {\n      on('mouseleave', onMouseLeave);\n    }\n    if (eventType === 'focus') {\n      on(isIE ? 'focusout' : 'blur', onBlur);\n    }\n  } else {\n    if (browser.supportsTouch && options.touchHold) {\n      on('touchstart', onDelegateShow);\n      on('touchend', onDelegateHide);\n    }\n    if (eventType === 'mouseenter') {\n      on('mouseover', onDelegateShow);\n      on('mouseout', onDelegateHide);\n    }\n    if (eventType === 'focus') {\n      on('focusin', onDelegateShow);\n      on('focusout', onDelegateHide);\n    }\n    if (eventType === 'click') {\n      on('click', onDelegateShow);\n    }\n  }\n\n  return listeners;\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\n\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Returns an object of settings to override global settings\n * @param {Element} reference\n * @param {Object} instanceOptions\n * @return {Object} - individual options\n */\nfunction getIndividualOptions(reference, instanceOptions) {\n  var options = defaultsKeys.reduce(function (acc, key) {\n    var val = reference.getAttribute('data-tippy-' + key.toLowerCase()) || instanceOptions[key];\n\n    // Convert strings to booleans\n    if (val === 'false') val = false;\n    if (val === 'true') val = true;\n\n    // Convert number strings to true numbers\n    if (isFinite(val) && !isNaN(parseFloat(val))) {\n      val = parseFloat(val);\n    }\n\n    // Convert array strings to actual arrays\n    if (key !== 'target' && typeof val === 'string' && val.trim().charAt(0) === '[') {\n      val = JSON.parse(val);\n    }\n\n    acc[key] = val;\n\n    return acc;\n  }, {});\n\n  return _extends({}, instanceOptions, options);\n}\n\n/**\n * Evaluates/modifies the options object for appropriate behavior\n * @param {Element|Object} reference\n * @param {Object} options\n * @return {Object} modified/evaluated options\n */\nfunction evaluateOptions(reference, options) {\n  // animateFill is disabled if an arrow is true\n  if (options.arrow) {\n    options.animateFill = false;\n  }\n\n  if (options.appendTo && typeof options.appendTo === 'function') {\n    options.appendTo = options.appendTo();\n  }\n\n  if (typeof options.html === 'function') {\n    options.html = options.html(reference);\n  }\n\n  return options;\n}\n\n/**\n * Returns inner elements of the popper element\n * @param {Element} popper\n * @return {Object}\n */\nfunction getInnerElements(popper) {\n  var select = function select(s) {\n    return popper.querySelector(s);\n  };\n  return {\n    tooltip: select(selectors.TOOLTIP),\n    backdrop: select(selectors.BACKDROP),\n    content: select(selectors.CONTENT),\n    arrow: select(selectors.ARROW) || select(selectors.ROUND_ARROW)\n  };\n}\n\n/**\n * Removes the title from an element, setting `data-original-title`\n * appropriately\n * @param {Element} el\n */\nfunction removeTitle(el) {\n  var title = el.getAttribute('title');\n  // Only set `data-original-title` attr if there is a title\n  if (title) {\n    el.setAttribute('data-original-title', title);\n  }\n  el.removeAttribute('title');\n}\n\n/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.4\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser$1 = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser$1 && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser$1 && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var css = getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser$1 && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser$1 && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE$1(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE$1(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE$1(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE$1(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck$1 = function classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass$1 = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\nvar defineProperty$1 = function defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends$1 = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends$1({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE$1(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE$1(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop, 10);\n    var marginLeft = parseFloat(styles.marginLeft, 10);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE$1()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends$1({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var styles = getComputedStyle(element);\n  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  // Avoid blurry text by using full pixel integers.\n  // For pixel-perfect positioning, top/bottom prefers rounded\n  // values, while left/right prefers floored values.\n  var offsets = {\n    left: Math.floor(popper.left),\n    top: Math.round(popper.top),\n    bottom: Math.round(popper.bottom),\n    right: Math.floor(popper.right)\n  };\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends$1({}, attributes, data.attributes);\n  data.styles = _extends$1({}, styles, data.styles);\n  data.arrowStyles = _extends$1({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty$1(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty$1(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends$1({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  var transformProp = getSupportedPropertyName('transform');\n  var popperStyles = data.instance.popper.style; // assignment to help minification\n  var top = popperStyles.top,\n      left = popperStyles.left,\n      transform = popperStyles[transformProp];\n\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty$1({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty$1({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends$1({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty$1({}, side, reference[side]),\n      end: defineProperty$1({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends$1({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport'\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck$1(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends$1({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends$1({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends$1({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends$1({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass$1(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedules an update. It will run on the next UI update available.\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\n/**\n * Triggers document reflow.\n * Use void because some minifiers or engines think simply accessing the property\n * is unnecessary.\n * @param {Element} popper\n */\nfunction reflow(popper) {\n  void popper.offsetHeight;\n}\n\n/**\n * Wrapper util for popper position updating.\n * Updates the popper's position and invokes the callback on update.\n * Hackish workaround until Popper 2.0's update() becomes sync.\n * @param {Popper} popperInstance\n * @param {Function} callback: to run once popper's position was updated\n * @param {Boolean} updateAlreadyCalled: was scheduleUpdate() already called?\n */\nfunction updatePopperPosition(popperInstance, callback, updateAlreadyCalled) {\n  var popper = popperInstance.popper,\n      options = popperInstance.options;\n\n  var onCreate = options.onCreate;\n  var onUpdate = options.onUpdate;\n\n  options.onCreate = options.onUpdate = function () {\n    reflow(popper), callback && callback(), onUpdate();\n    options.onCreate = onCreate;\n    options.onUpdate = onUpdate;\n  };\n\n  if (!updateAlreadyCalled) {\n    popperInstance.scheduleUpdate();\n  }\n}\n\n/**\n * Returns the core placement ('top', 'bottom', 'left', 'right') of a popper\n * @param {Element} popper\n * @return {String}\n */\nfunction getPopperPlacement(popper) {\n  return popper.getAttribute('x-placement').replace(/-.+/, '');\n}\n\n/**\n * Determines if the mouse's cursor is outside the interactive border\n * @param {MouseEvent} event\n * @param {Element} popper\n * @param {Object} options\n * @return {Boolean}\n */\nfunction cursorIsOutsideInteractiveBorder(event, popper, options) {\n  if (!popper.getAttribute('x-placement')) return true;\n\n  var x = event.clientX,\n      y = event.clientY;\n  var interactiveBorder = options.interactiveBorder,\n      distance = options.distance;\n\n\n  var rect = popper.getBoundingClientRect();\n  var placement = getPopperPlacement(popper);\n  var borderWithDistance = interactiveBorder + distance;\n\n  var exceeds = {\n    top: rect.top - y > interactiveBorder,\n    bottom: y - rect.bottom > interactiveBorder,\n    left: rect.left - x > interactiveBorder,\n    right: x - rect.right > interactiveBorder\n  };\n\n  switch (placement) {\n    case 'top':\n      exceeds.top = rect.top - y > borderWithDistance;\n      break;\n    case 'bottom':\n      exceeds.bottom = y - rect.bottom > borderWithDistance;\n      break;\n    case 'left':\n      exceeds.left = rect.left - x > borderWithDistance;\n      break;\n    case 'right':\n      exceeds.right = x - rect.right > borderWithDistance;\n      break;\n  }\n\n  return exceeds.top || exceeds.bottom || exceeds.left || exceeds.right;\n}\n\n/**\n * Transforms the `arrowTransform` numbers based on the placement axis\n * @param {String} type 'scale' or 'translate'\n * @param {Number[]} numbers\n * @param {Boolean} isVertical\n * @param {Boolean} isReverse\n * @return {String}\n */\nfunction transformNumbersBasedOnPlacementAxis(type, numbers, isVertical, isReverse) {\n  if (!numbers.length) return '';\n\n  var transforms = {\n    scale: function () {\n      if (numbers.length === 1) {\n        return '' + numbers[0];\n      } else {\n        return isVertical ? numbers[0] + ', ' + numbers[1] : numbers[1] + ', ' + numbers[0];\n      }\n    }(),\n    translate: function () {\n      if (numbers.length === 1) {\n        return isReverse ? -numbers[0] + 'px' : numbers[0] + 'px';\n      } else {\n        if (isVertical) {\n          return isReverse ? numbers[0] + 'px, ' + -numbers[1] + 'px' : numbers[0] + 'px, ' + numbers[1] + 'px';\n        } else {\n          return isReverse ? -numbers[1] + 'px, ' + numbers[0] + 'px' : numbers[1] + 'px, ' + numbers[0] + 'px';\n        }\n      }\n    }()\n  };\n\n  return transforms[type];\n}\n\n/**\n * Transforms the `arrowTransform` x or y axis based on the placement axis\n * @param {String} axis 'X', 'Y', ''\n * @param {Boolean} isVertical\n * @return {String}\n */\nfunction transformAxis(axis, isVertical) {\n  if (!axis) return '';\n  var map = {\n    X: 'Y',\n    Y: 'X'\n  };\n  return isVertical ? axis : map[axis];\n}\n\n/**\n * Computes and applies the necessary arrow transform\n * @param {Element} popper\n * @param {Element} arrow\n * @param {String} arrowTransform\n */\nfunction computeArrowTransform(popper, arrow, arrowTransform) {\n  var placement = getPopperPlacement(popper);\n  var isVertical = placement === 'top' || placement === 'bottom';\n  var isReverse = placement === 'right' || placement === 'bottom';\n\n  var getAxis = function getAxis(re) {\n    var match = arrowTransform.match(re);\n    return match ? match[1] : '';\n  };\n\n  var getNumbers = function getNumbers(re) {\n    var match = arrowTransform.match(re);\n    return match ? match[1].split(',').map(parseFloat) : [];\n  };\n\n  var re = {\n    translate: /translateX?Y?\\(([^)]+)\\)/,\n    scale: /scaleX?Y?\\(([^)]+)\\)/\n  };\n\n  var matches = {\n    translate: {\n      axis: getAxis(/translate([XY])/),\n      numbers: getNumbers(re.translate)\n    },\n    scale: {\n      axis: getAxis(/scale([XY])/),\n      numbers: getNumbers(re.scale)\n    }\n  };\n\n  var computedTransform = arrowTransform.replace(re.translate, 'translate' + transformAxis(matches.translate.axis, isVertical) + '(' + transformNumbersBasedOnPlacementAxis('translate', matches.translate.numbers, isVertical, isReverse) + ')').replace(re.scale, 'scale' + transformAxis(matches.scale.axis, isVertical) + '(' + transformNumbersBasedOnPlacementAxis('scale', matches.scale.numbers, isVertical, isReverse) + ')');\n\n  arrow.style[prefix('transform')] = computedTransform;\n}\n\n/**\n * Returns the distance taking into account the default distance due to\n * the transform: translate setting in CSS\n * @param {Number} distance\n * @return {String}\n */\nfunction getOffsetDistanceInPx(distance) {\n  return -(distance - defaults.distance) + 'px';\n}\n\nvar matches = {};\n\nif (isBrowser) {\n  var e = Element.prototype;\n  matches = e.matches || e.matchesSelector || e.webkitMatchesSelector || e.mozMatchesSelector || e.msMatchesSelector || function (s) {\n    var matches = (this.document || this.ownerDocument).querySelectorAll(s);\n    var i = matches.length;\n    while (--i >= 0 && matches.item(i) !== this) {} // eslint-disable-line no-empty\n    return i > -1;\n  };\n}\n\nvar matches$1 = matches;\n\n/**\n * Ponyfill to get the closest parent element\n * @param {Element} element - child of parent to be returned\n * @param {String} parentSelector - selector to match the parent if found\n * @return {Element}\n */\nfunction closest(element, parentSelector) {\n  var fn = Element.prototype.closest || function (selector) {\n    var el = this;\n    while (el) {\n      if (matches$1.call(el, selector)) {\n        return el;\n      }\n      el = el.parentElement;\n    }\n  };\n\n  return fn.call(element, parentSelector);\n}\n\n/**\n * Returns the value taking into account the value being either a number or array\n * @param {Number|Array} value\n * @param {Number} index\n * @return {Number}\n */\nfunction getValue(value, index) {\n  return Array.isArray(value) ? value[index] : value;\n}\n\n/**\n * Sets the visibility state of an element for transition to begin\n * @param {Element[]} els - array of elements\n * @param {String} type - 'visible' or 'hidden'\n */\nfunction setVisibilityState(els, type) {\n  els.forEach(function (el) {\n    if (!el) return;\n    el.setAttribute('data-state', type);\n  });\n}\n\n/**\n * Sets the transition property to each element\n * @param {Element[]} els - Array of elements\n * @param {String} value\n */\nfunction applyTransitionDuration(els, value) {\n  els.filter(Boolean).forEach(function (el) {\n    el.style[prefix('transitionDuration')] = value + 'ms';\n  });\n}\n\n/**\n * Focuses an element while preventing a scroll jump if it's not entirely within the viewport\n * @param {Element} el\n */\nfunction focus(el) {\n  var x = window.scrollX || window.pageXOffset;\n  var y = window.scrollY || window.pageYOffset;\n  el.focus();\n  scroll(x, y);\n}\n\nvar key = {};\nvar store = function store(data) {\n  return function (k) {\n    return k === key && data;\n  };\n};\n\nvar Tippy = function () {\n  function Tippy(config) {\n    classCallCheck(this, Tippy);\n\n    for (var _key in config) {\n      this[_key] = config[_key];\n    }\n\n    this.state = {\n      destroyed: false,\n      visible: false,\n      enabled: true\n    };\n\n    this._ = store({\n      mutationObservers: []\n    });\n  }\n\n  /**\n   * Enables the tooltip to allow it to show or hide\n   * @memberof Tippy\n   * @public\n   */\n\n\n  createClass(Tippy, [{\n    key: 'enable',\n    value: function enable() {\n      this.state.enabled = true;\n    }\n\n    /**\n     * Disables the tooltip from showing or hiding, but does not destroy it\n     * @memberof Tippy\n     * @public\n     */\n\n  }, {\n    key: 'disable',\n    value: function disable() {\n      this.state.enabled = false;\n    }\n\n    /**\n     * Shows the tooltip\n     * @param {Number} duration in milliseconds\n     * @memberof Tippy\n     * @public\n     */\n\n  }, {\n    key: 'show',\n    value: function show(duration) {\n      var _this = this;\n\n      if (this.state.destroyed || !this.state.enabled) return;\n\n      var popper = this.popper,\n          reference = this.reference,\n          options = this.options;\n\n      var _getInnerElements = getInnerElements(popper),\n          tooltip = _getInnerElements.tooltip,\n          backdrop = _getInnerElements.backdrop,\n          content = _getInnerElements.content;\n\n      // If the `dynamicTitle` option is true, the instance is allowed\n      // to be created with an empty title. Make sure that the tooltip\n      // content is not empty before showing it\n\n\n      if (options.dynamicTitle && !reference.getAttribute('data-original-title')) {\n        return;\n      }\n\n      // Do not show tooltip if reference contains 'disabled' attribute. FF fix for #221\n      if (reference.hasAttribute('disabled')) return;\n\n      // Destroy tooltip if the reference element is no longer on the DOM\n      if (!reference.refObj && !document.documentElement.contains(reference)) {\n        this.destroy();\n        return;\n      }\n\n      options.onShow.call(popper, this);\n\n      duration = getValue(duration !== undefined ? duration : options.duration, 0);\n\n      // Prevent a transition when popper changes position\n      applyTransitionDuration([popper, tooltip, backdrop], 0);\n\n      popper.style.visibility = 'visible';\n      this.state.visible = true;\n\n      _mount.call(this, function () {\n        if (!_this.state.visible) return;\n\n        if (!_hasFollowCursorBehavior.call(_this)) {\n          // FIX: Arrow will sometimes not be positioned correctly. Force another update.\n          _this.popperInstance.scheduleUpdate();\n        }\n\n        // Set initial position near the cursor\n        if (_hasFollowCursorBehavior.call(_this)) {\n          _this.popperInstance.disableEventListeners();\n          var delay = getValue(options.delay, 0);\n          var lastTriggerEvent = _this._(key).lastTriggerEvent;\n          if (lastTriggerEvent) {\n            _this._(key).followCursorListener(delay && _this._(key).lastMouseMoveEvent ? _this._(key).lastMouseMoveEvent : lastTriggerEvent);\n          }\n        }\n\n        // Re-apply transition durations\n        applyTransitionDuration([tooltip, backdrop, backdrop ? content : null], duration);\n\n        if (backdrop) {\n          getComputedStyle(backdrop)[prefix('transform')];\n        }\n\n        if (options.interactive) {\n          reference.classList.add('tippy-active');\n        }\n\n        if (options.sticky) {\n          _makeSticky.call(_this);\n        }\n\n        setVisibilityState([tooltip, backdrop], 'visible');\n\n        _onTransitionEnd.call(_this, duration, function () {\n          if (!options.updateDuration) {\n            tooltip.classList.add('tippy-notransition');\n          }\n\n          if (options.interactive) {\n            focus(popper);\n          }\n\n          reference.setAttribute('aria-describedby', 'tippy-' + _this.id);\n\n          options.onShown.call(popper, _this);\n        });\n      });\n    }\n\n    /**\n     * Hides the tooltip\n     * @param {Number} duration in milliseconds\n     * @memberof Tippy\n     * @public\n     */\n\n  }, {\n    key: 'hide',\n    value: function hide(duration) {\n      var _this2 = this;\n\n      if (this.state.destroyed || !this.state.enabled) return;\n\n      var popper = this.popper,\n          reference = this.reference,\n          options = this.options;\n\n      var _getInnerElements2 = getInnerElements(popper),\n          tooltip = _getInnerElements2.tooltip,\n          backdrop = _getInnerElements2.backdrop,\n          content = _getInnerElements2.content;\n\n      options.onHide.call(popper, this);\n\n      duration = getValue(duration !== undefined ? duration : options.duration, 1);\n\n      if (!options.updateDuration) {\n        tooltip.classList.remove('tippy-notransition');\n      }\n\n      if (options.interactive) {\n        reference.classList.remove('tippy-active');\n      }\n\n      popper.style.visibility = 'hidden';\n      this.state.visible = false;\n\n      applyTransitionDuration([tooltip, backdrop, backdrop ? content : null], duration);\n\n      setVisibilityState([tooltip, backdrop], 'hidden');\n\n      if (options.interactive && options.trigger.indexOf('click') > -1) {\n        focus(reference);\n      }\n\n      _onTransitionEnd.call(this, duration, function () {\n        if (_this2.state.visible || !options.appendTo.contains(popper)) return;\n\n        if (!_this2._(key).isPreparingToShow) {\n          document.removeEventListener('mousemove', _this2._(key).followCursorListener);\n          _this2._(key).lastMouseMoveEvent = null;\n        }\n\n        if (_this2.popperInstance) {\n          _this2.popperInstance.disableEventListeners();\n        }\n\n        reference.removeAttribute('aria-describedby');\n\n        options.appendTo.removeChild(popper);\n\n        options.onHidden.call(popper, _this2);\n      });\n    }\n\n    /**\n     * Destroys the tooltip instance\n     * @param {Boolean} destroyTargetInstances - relevant only when destroying delegates\n     * @memberof Tippy\n     * @public\n     */\n\n  }, {\n    key: 'destroy',\n    value: function destroy() {\n      var _this3 = this;\n\n      var destroyTargetInstances = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n      if (this.state.destroyed) return;\n\n      // Ensure the popper is hidden\n      if (this.state.visible) {\n        this.hide(0);\n      }\n\n      this.listeners.forEach(function (listener) {\n        _this3.reference.removeEventListener(listener.event, listener.handler);\n      });\n\n      // Restore title\n      if (this.title) {\n        this.reference.setAttribute('title', this.title);\n      }\n\n      delete this.reference._tippy;\n\n      var attributes = ['data-original-title', 'data-tippy', 'data-tippy-delegate'];\n      attributes.forEach(function (attr) {\n        _this3.reference.removeAttribute(attr);\n      });\n\n      if (this.options.target && destroyTargetInstances) {\n        toArray(this.reference.querySelectorAll(this.options.target)).forEach(function (child) {\n          return child._tippy && child._tippy.destroy();\n        });\n      }\n\n      if (this.popperInstance) {\n        this.popperInstance.destroy();\n      }\n\n      this._(key).mutationObservers.forEach(function (observer) {\n        observer.disconnect();\n      });\n\n      this.state.destroyed = true;\n    }\n  }]);\n  return Tippy;\n}();\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n * Standalone functions to be called with the instance's `this` context to make\n * them truly private and not accessible on the prototype\n */\n\n/**\n * Determines if the tooltip instance has followCursor behavior\n * @return {Boolean}\n * @memberof Tippy\n * @private\n */\nfunction _hasFollowCursorBehavior() {\n  var lastTriggerEvent = this._(key).lastTriggerEvent;\n  return this.options.followCursor && !browser.usingTouch && lastTriggerEvent && lastTriggerEvent.type !== 'focus';\n}\n\n/**\n * Creates the Tippy instance for the child target of the delegate container\n * @param {Event} event\n * @memberof Tippy\n * @private\n */\nfunction _createDelegateChildTippy(event) {\n  var targetEl = closest(event.target, this.options.target);\n  if (targetEl && !targetEl._tippy) {\n    var title = targetEl.getAttribute('title') || this.title;\n    if (title) {\n      targetEl.setAttribute('title', title);\n      tippy(targetEl, _extends({}, this.options, { target: null }));\n      _enter.call(targetEl._tippy, event);\n    }\n  }\n}\n\n/**\n * Method used by event listeners to invoke the show method, taking into account delays and\n * the `wait` option\n * @param {Event} event\n * @memberof Tippy\n * @private\n */\nfunction _enter(event) {\n  var _this4 = this;\n\n  var options = this.options;\n\n\n  _clearDelayTimeouts.call(this);\n\n  if (this.state.visible) return;\n\n  // Is a delegate, create Tippy instance for the child target\n  if (options.target) {\n    _createDelegateChildTippy.call(this, event);\n    return;\n  }\n\n  this._(key).isPreparingToShow = true;\n\n  if (options.wait) {\n    options.wait.call(this.popper, this.show.bind(this), event);\n    return;\n  }\n\n  // If the tooltip has a delay, we need to be listening to the mousemove as soon as the trigger\n  // event is fired so that it's in the correct position upon mount.\n  if (_hasFollowCursorBehavior.call(this)) {\n    if (!this._(key).followCursorListener) {\n      _setFollowCursorListener.call(this);\n    }\n\n    var _getInnerElements3 = getInnerElements(this.popper),\n        arrow = _getInnerElements3.arrow;\n\n    if (arrow) arrow.style.margin = '0';\n    document.addEventListener('mousemove', this._(key).followCursorListener);\n  }\n\n  var delay = getValue(options.delay, 0);\n\n  if (delay) {\n    this._(key).showTimeout = setTimeout(function () {\n      _this4.show();\n    }, delay);\n  } else {\n    this.show();\n  }\n}\n\n/**\n * Method used by event listeners to invoke the hide method, taking into account delays\n * @memberof Tippy\n * @private\n */\nfunction _leave() {\n  var _this5 = this;\n\n  _clearDelayTimeouts.call(this);\n\n  if (!this.state.visible) return;\n\n  this._(key).isPreparingToShow = false;\n\n  var delay = getValue(this.options.delay, 1);\n\n  if (delay) {\n    this._(key).hideTimeout = setTimeout(function () {\n      if (_this5.state.visible) {\n        _this5.hide();\n      }\n    }, delay);\n  } else {\n    this.hide();\n  }\n}\n\n/**\n * Returns relevant listeners for the instance\n * @return {Object} of listeners\n * @memberof Tippy\n * @private\n */\nfunction _getEventListeners() {\n  var _this6 = this;\n\n  var onTrigger = function onTrigger(event) {\n    if (!_this6.state.enabled) return;\n\n    var shouldStopEvent = browser.supportsTouch && browser.usingTouch && ['mouseenter', 'mouseover', 'focus'].indexOf(event.type) > -1;\n\n    if (shouldStopEvent && _this6.options.touchHold) return;\n\n    _this6._(key).lastTriggerEvent = event;\n\n    // Toggle show/hide when clicking click-triggered tooltips\n    if (event.type === 'click' && _this6.options.hideOnClick !== 'persistent' && _this6.state.visible) {\n      _leave.call(_this6);\n    } else {\n      _enter.call(_this6, event);\n    }\n  };\n\n  var onMouseLeave = function onMouseLeave(event) {\n    if (['mouseleave', 'mouseout'].indexOf(event.type) > -1 && browser.supportsTouch && browser.usingTouch && _this6.options.touchHold) return;\n\n    if (_this6.options.interactive) {\n      var hide = _leave.bind(_this6);\n\n      var onMouseMove = function onMouseMove(event) {\n        var referenceCursorIsOver = closest(event.target, selectors.REFERENCE);\n        var cursorIsOverPopper = closest(event.target, selectors.POPPER) === _this6.popper;\n        var cursorIsOverReference = referenceCursorIsOver === _this6.reference;\n\n        if (cursorIsOverPopper || cursorIsOverReference) return;\n\n        if (cursorIsOutsideInteractiveBorder(event, _this6.popper, _this6.options)) {\n          document.body.removeEventListener('mouseleave', hide);\n          document.removeEventListener('mousemove', onMouseMove);\n\n          _leave.call(_this6, onMouseMove);\n        }\n      };\n\n      document.body.addEventListener('mouseleave', hide);\n      document.addEventListener('mousemove', onMouseMove);\n      return;\n    }\n\n    _leave.call(_this6);\n  };\n\n  var onBlur = function onBlur(event) {\n    if (event.target !== _this6.reference || browser.usingTouch) return;\n\n    if (_this6.options.interactive) {\n      if (!event.relatedTarget) return;\n      if (closest(event.relatedTarget, selectors.POPPER)) return;\n    }\n\n    _leave.call(_this6);\n  };\n\n  var onDelegateShow = function onDelegateShow(event) {\n    if (closest(event.target, _this6.options.target)) {\n      _enter.call(_this6, event);\n    }\n  };\n\n  var onDelegateHide = function onDelegateHide(event) {\n    if (closest(event.target, _this6.options.target)) {\n      _leave.call(_this6);\n    }\n  };\n\n  return {\n    onTrigger: onTrigger,\n    onMouseLeave: onMouseLeave,\n    onBlur: onBlur,\n    onDelegateShow: onDelegateShow,\n    onDelegateHide: onDelegateHide\n  };\n}\n\n/**\n * Creates and returns a new popper instance\n * @return {Popper}\n * @memberof Tippy\n * @private\n */\nfunction _createPopperInstance() {\n  var _this7 = this;\n\n  var popper = this.popper,\n      reference = this.reference,\n      options = this.options;\n\n  var _getInnerElements4 = getInnerElements(popper),\n      tooltip = _getInnerElements4.tooltip;\n\n  var popperOptions = options.popperOptions;\n\n  var arrowSelector = options.arrowType === 'round' ? selectors.ROUND_ARROW : selectors.ARROW;\n  var arrow = tooltip.querySelector(arrowSelector);\n\n  var config = _extends({\n    placement: options.placement\n  }, popperOptions || {}, {\n    modifiers: _extends({}, popperOptions ? popperOptions.modifiers : {}, {\n      arrow: _extends({\n        element: arrowSelector\n      }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.arrow : {}),\n      flip: _extends({\n        enabled: options.flip,\n        padding: options.distance + 5 /* 5px from viewport boundary */\n        , behavior: options.flipBehavior\n      }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.flip : {}),\n      offset: _extends({\n        offset: options.offset\n      }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.offset : {})\n    }),\n    onCreate: function onCreate() {\n      tooltip.style[getPopperPlacement(popper)] = getOffsetDistanceInPx(options.distance);\n\n      if (arrow && options.arrowTransform) {\n        computeArrowTransform(popper, arrow, options.arrowTransform);\n      }\n    },\n    onUpdate: function onUpdate() {\n      var styles = tooltip.style;\n      styles.top = '';\n      styles.bottom = '';\n      styles.left = '';\n      styles.right = '';\n      styles[getPopperPlacement(popper)] = getOffsetDistanceInPx(options.distance);\n\n      if (arrow && options.arrowTransform) {\n        computeArrowTransform(popper, arrow, options.arrowTransform);\n      }\n    }\n  });\n\n  _addMutationObserver.call(this, {\n    target: popper,\n    callback: function callback() {\n      _this7.popperInstance.update();\n    },\n    options: {\n      childList: true,\n      subtree: true,\n      characterData: true\n    }\n  });\n\n  return new Popper(reference, popper, config);\n}\n\n/**\n * Appends the popper element to the DOM, updating or creating the popper instance\n * @param {Function} callback\n * @memberof Tippy\n * @private\n */\nfunction _mount(callback) {\n  var options = this.options;\n\n\n  if (!this.popperInstance) {\n    this.popperInstance = _createPopperInstance.call(this);\n    if (!options.livePlacement) {\n      this.popperInstance.disableEventListeners();\n    }\n  } else {\n    this.popperInstance.scheduleUpdate();\n    if (options.livePlacement && !_hasFollowCursorBehavior.call(this)) {\n      this.popperInstance.enableEventListeners();\n    }\n  }\n\n  // If the instance previously had followCursor behavior, it will be positioned incorrectly\n  // if triggered by `focus` afterwards - update the reference back to the real DOM element\n  if (!_hasFollowCursorBehavior.call(this)) {\n    var _getInnerElements5 = getInnerElements(this.popper),\n        arrow = _getInnerElements5.arrow;\n\n    if (arrow) arrow.style.margin = '';\n    this.popperInstance.reference = this.reference;\n  }\n\n  updatePopperPosition(this.popperInstance, callback, true);\n\n  if (!options.appendTo.contains(this.popper)) {\n    options.appendTo.appendChild(this.popper);\n  }\n}\n\n/**\n * Clears the show and hide delay timeouts\n * @memberof Tippy\n * @private\n */\nfunction _clearDelayTimeouts() {\n  var _ref = this._(key),\n      showTimeout = _ref.showTimeout,\n      hideTimeout = _ref.hideTimeout;\n\n  clearTimeout(showTimeout);\n  clearTimeout(hideTimeout);\n}\n\n/**\n * Sets the mousemove event listener function for `followCursor` option\n * @memberof Tippy\n * @private\n */\nfunction _setFollowCursorListener() {\n  var _this8 = this;\n\n  this._(key).followCursorListener = function (event) {\n    var _$lastMouseMoveEvent = _this8._(key).lastMouseMoveEvent = event,\n        clientX = _$lastMouseMoveEvent.clientX,\n        clientY = _$lastMouseMoveEvent.clientY;\n\n    if (!_this8.popperInstance) return;\n\n    _this8.popperInstance.reference = {\n      getBoundingClientRect: function getBoundingClientRect() {\n        return {\n          width: 0,\n          height: 0,\n          top: clientY,\n          left: clientX,\n          right: clientX,\n          bottom: clientY\n        };\n      },\n      clientWidth: 0,\n      clientHeight: 0\n    };\n\n    _this8.popperInstance.scheduleUpdate();\n  };\n}\n\n/**\n * Updates the popper's position on each animation frame\n * @memberof Tippy\n * @private\n */\nfunction _makeSticky() {\n  var _this9 = this;\n\n  var applyTransitionDuration$$1 = function applyTransitionDuration$$1() {\n    _this9.popper.style[prefix('transitionDuration')] = _this9.options.updateDuration + 'ms';\n  };\n\n  var removeTransitionDuration = function removeTransitionDuration() {\n    _this9.popper.style[prefix('transitionDuration')] = '';\n  };\n\n  var updatePosition = function updatePosition() {\n    if (_this9.popperInstance) {\n      _this9.popperInstance.update();\n    }\n\n    applyTransitionDuration$$1();\n\n    if (_this9.state.visible) {\n      requestAnimationFrame(updatePosition);\n    } else {\n      removeTransitionDuration();\n    }\n  };\n\n  updatePosition();\n}\n\n/**\n * Adds a mutation observer to an element and stores it in the instance\n * @param {Object}\n * @memberof Tippy\n * @private\n */\nfunction _addMutationObserver(_ref2) {\n  var target = _ref2.target,\n      callback = _ref2.callback,\n      options = _ref2.options;\n\n  if (!window.MutationObserver) return;\n\n  var observer = new MutationObserver(callback);\n  observer.observe(target, options);\n\n  this._(key).mutationObservers.push(observer);\n}\n\n/**\n * Fires the callback functions once the CSS transition ends for `show` and `hide` methods\n * @param {Number} duration\n * @param {Function} callback - callback function to fire once transition completes\n * @memberof Tippy\n * @private\n */\nfunction _onTransitionEnd(duration, callback) {\n  // Make callback synchronous if duration is 0\n  if (!duration) {\n    return callback();\n  }\n\n  var _getInnerElements6 = getInnerElements(this.popper),\n      tooltip = _getInnerElements6.tooltip;\n\n  var toggleListeners = function toggleListeners(action, listener) {\n    if (!listener) return;\n    tooltip[action + 'EventListener']('transition' in document.body.style ? 'transitionend' : 'webkitTransitionEnd', listener);\n  };\n\n  var listener = function listener(e) {\n    if (e.target === tooltip) {\n      toggleListeners('remove', listener);\n      callback();\n    }\n  };\n\n  toggleListeners('remove', this._(key).transitionendListener);\n  toggleListeners('add', listener);\n\n  this._(key).transitionendListener = listener;\n}\n\nvar idCounter = 1;\n\n/**\n * Creates tooltips for each reference element\n * @param {Element[]} els\n * @param {Object} config\n * @return {Tippy[]} Array of Tippy instances\n */\nfunction createTooltips(els, config) {\n  return els.reduce(function (acc, reference) {\n    var id = idCounter;\n\n    var options = evaluateOptions(reference, config.performance ? config : getIndividualOptions(reference, config));\n\n    var title = reference.getAttribute('title');\n\n    // Don't create an instance when:\n    // * the `title` attribute is falsy (null or empty string), and\n    // * it's not a delegate for tooltips, and\n    // * there is no html template specified, and\n    // * `dynamicTitle` option is false\n    if (!title && !options.target && !options.html && !options.dynamicTitle) {\n      return acc;\n    }\n\n    // Delegates should be highlighted as different\n    reference.setAttribute(options.target ? 'data-tippy-delegate' : 'data-tippy', '');\n\n    removeTitle(reference);\n\n    var popper = createPopperElement(id, title, options);\n\n    var tippy = new Tippy({\n      id: id,\n      reference: reference,\n      popper: popper,\n      options: options,\n      title: title,\n      popperInstance: null\n    });\n\n    if (options.createPopperInstanceOnInit) {\n      tippy.popperInstance = _createPopperInstance.call(tippy);\n      tippy.popperInstance.disableEventListeners();\n    }\n\n    var listeners = _getEventListeners.call(tippy);\n    tippy.listeners = options.trigger.trim().split(' ').reduce(function (acc, eventType) {\n      return acc.concat(createTrigger(eventType, reference, listeners, options));\n    }, []);\n\n    // Update tooltip content whenever the title attribute on the reference changes\n    if (options.dynamicTitle) {\n      _addMutationObserver.call(tippy, {\n        target: reference,\n        callback: function callback() {\n          var _getInnerElements = getInnerElements(popper),\n              content = _getInnerElements.content;\n\n          var title = reference.getAttribute('title');\n          if (title) {\n            content[options.allowTitleHTML ? 'innerHTML' : 'textContent'] = tippy.title = title;\n            removeTitle(reference);\n          }\n        },\n\n        options: {\n          attributes: true\n        }\n      });\n    }\n\n    // Shortcuts\n    reference._tippy = tippy;\n    popper._tippy = tippy;\n    popper._reference = reference;\n\n    acc.push(tippy);\n\n    idCounter++;\n\n    return acc;\n  }, []);\n}\n\n/**\n * Hides all poppers\n * @param {Tippy} excludeTippy - tippy to exclude if needed\n */\nfunction hideAllPoppers(excludeTippy) {\n  var poppers = toArray(document.querySelectorAll(selectors.POPPER));\n\n  poppers.forEach(function (popper) {\n    var tippy = popper._tippy;\n    if (!tippy) return;\n\n    var options = tippy.options;\n\n\n    if ((options.hideOnClick === true || options.trigger.indexOf('focus') > -1) && (!excludeTippy || popper !== excludeTippy.popper)) {\n      tippy.hide();\n    }\n  });\n}\n\n/**\n * Adds the needed event listeners\n */\nfunction bindEventListeners(useCapture) {\n  var onDocumentTouch = function onDocumentTouch() {\n    if (browser.usingTouch) return;\n\n    browser.usingTouch = true;\n\n    if (browser.iOS) {\n      document.body.classList.add('tippy-touch');\n    }\n\n    if (browser.dynamicInputDetection && window.performance) {\n      document.addEventListener('mousemove', onDocumentMouseMove);\n    }\n\n    browser.onUserInputChange('touch');\n  };\n\n  var onDocumentMouseMove = function () {\n    var time = void 0;\n\n    return function () {\n      var now = performance.now();\n\n      // Chrome 60+ is 1 mousemove per animation frame, use 20ms time difference\n      if (now - time < 20) {\n        browser.usingTouch = false;\n        document.removeEventListener('mousemove', onDocumentMouseMove);\n        if (!browser.iOS) {\n          document.body.classList.remove('tippy-touch');\n        }\n        browser.onUserInputChange('mouse');\n      }\n\n      time = now;\n    };\n  }();\n\n  var onDocumentClick = function onDocumentClick(event) {\n    // Simulated events dispatched on the document\n    if (!(event.target instanceof Element)) {\n      return hideAllPoppers();\n    }\n\n    var reference = closest(event.target, selectors.REFERENCE);\n    var popper = closest(event.target, selectors.POPPER);\n\n    if (popper && popper._tippy && popper._tippy.options.interactive) {\n      return;\n    }\n\n    if (reference && reference._tippy) {\n      var options = reference._tippy.options;\n\n      var isClickTrigger = options.trigger.indexOf('click') > -1;\n      var isMultiple = options.multiple;\n\n      // Hide all poppers except the one belonging to the element that was clicked\n      if (!isMultiple && browser.usingTouch || !isMultiple && isClickTrigger) {\n        return hideAllPoppers(reference._tippy);\n      }\n\n      if (options.hideOnClick !== true || isClickTrigger) {\n        return;\n      }\n    }\n\n    hideAllPoppers();\n  };\n\n  var onWindowBlur = function onWindowBlur() {\n    var _document = document,\n        el = _document.activeElement;\n\n    if (el && el.blur && matches$1.call(el, selectors.REFERENCE)) {\n      el.blur();\n    }\n  };\n\n  var onWindowResize = function onWindowResize() {\n    toArray(document.querySelectorAll(selectors.POPPER)).forEach(function (popper) {\n      var tippyInstance = popper._tippy;\n      if (tippyInstance && !tippyInstance.options.livePlacement) {\n        tippyInstance.popperInstance.scheduleUpdate();\n      }\n    });\n  };\n\n  document.addEventListener('click', onDocumentClick, useCapture);\n  document.addEventListener('touchstart', onDocumentTouch);\n  window.addEventListener('blur', onWindowBlur);\n  window.addEventListener('resize', onWindowResize);\n\n  if (!browser.supportsTouch && (navigator.maxTouchPoints || navigator.msMaxTouchPoints)) {\n    document.addEventListener('pointerdown', onDocumentTouch);\n  }\n}\n\nvar eventListenersBound = false;\nvar useCapture = false;\n\n/**\n * Exported module\n * @param {String|Element|Element[]|NodeList|Object} selector\n * @param {Object} options\n * @param {Boolean} one - create one tooltip\n * @return {Object}\n */\nfunction tippy(selector, options, one) {\n  if (browser.supported && !eventListenersBound) {\n    bindEventListeners(useCapture);\n    eventListenersBound = true;\n  }\n\n  if (isObjectLiteral(selector)) {\n    polyfillVirtualReferenceProps(selector);\n  }\n\n  options = _extends({}, defaults, options);\n\n  var references = getArrayOfElements(selector);\n  var firstReference = references[0];\n\n  return {\n    selector: selector,\n    options: options,\n    tooltips: browser.supported ? createTooltips(one && firstReference ? [firstReference] : references, options) : [],\n    destroyAll: function destroyAll() {\n      this.tooltips.forEach(function (tooltip) {\n        return tooltip.destroy();\n      });\n      this.tooltips = [];\n    }\n  };\n}\n\ntippy.version = version;\ntippy.browser = browser;\ntippy.defaults = defaults;\ntippy.one = function (selector, options) {\n  return tippy(selector, options, true).tooltips[0];\n};\ntippy.disableAnimations = function () {\n  defaults.updateDuration = defaults.duration = 0;\n  defaults.animateFill = false;\n};\ntippy.useCapture = function () {\n  useCapture = true;\n};\n\n/**\n * Injects CSS styles to document head\n * @param {String} css\n */\nfunction injectCSS() {\n  var css = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n  if (isBrowser && browser.supported) {\n    var head = document.head || document.querySelector('head');\n    var style = document.createElement('style');\n    style.type = 'text/css';\n    head.insertBefore(style, head.firstChild);\n\n    if (style.styleSheet) {\n      style.styleSheet.cssText = css;\n    } else {\n      style.appendChild(document.createTextNode(css));\n    }\n  }\n}\n\ninjectCSS(styles);\n\nreturn tippy;\n\n})));\n","/*!\n * jQuery UI Widget 1.8.24\n *\n * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://jquery.org/license\n *\n * http://docs.jquery.com/UI/Widget\n */\n(function( $, undefined ) {\n\n// jQuery 1.4+\nif ( $.cleanData ) {\n\tvar _cleanData = $.cleanData;\n\t$.cleanData = function( elems ) {\n\t\tfor ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {\n\t\t\ttry {\n\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t// http://bugs.jquery.com/ticket/8235\n\t\t\t} catch( e ) {}\n\t\t}\n\t\t_cleanData( elems );\n\t};\n} else {\n\tvar _remove = $.fn.remove;\n\t$.fn.remove = function( selector, keepData ) {\n\t\treturn this.each(function() {\n\t\t\tif ( !keepData ) {\n\t\t\t\tif ( !selector || $.filter( selector, [ this ] ).length ) {\n\t\t\t\t\t$( \"*\", this ).add( [ this ] ).each(function() {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$( this ).triggerHandler( \"remove\" );\n\t\t\t\t\t\t// http://bugs.jquery.com/ticket/8235\n\t\t\t\t\t\t} catch( e ) {}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn _remove.call( $(this), selector, keepData );\n\t\t});\n\t};\n}\n\n$.widget = function( name, base, prototype ) {\n\tvar namespace = name.split( \".\" )[ 0 ],\n\t\tfullName;\n\tname = name.split( \".\" )[ 1 ];\n\tfullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\t// create selector for plugin\n\t$.expr[ \":\" ][ fullName ] = function( elem ) {\n\t\treturn !!$.data( elem, name );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\t$[ namespace ][ name ] = function( options, element ) {\n\t\t// allow instantiation without initializing for simple inheritance\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\n\tvar basePrototype = new base();\n\t// we need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n//\t$.each( basePrototype, function( key, val ) {\n//\t\tif ( $.isPlainObject(val) ) {\n//\t\t\tbasePrototype[ key ] = $.extend( {}, val );\n//\t\t}\n//\t});\n\tbasePrototype.options = $.extend( true, {}, basePrototype.options );\n\t$[ namespace ][ name ].prototype = $.extend( true, basePrototype, {\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,\n\t\twidgetBaseClass: fullName\n\t}, prototype );\n\n\t$.widget.bridge( name, $[ namespace ][ name ] );\n};\n\n$.widget.bridge = function( name, object ) {\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\",\n\t\t\targs = Array.prototype.slice.call( arguments, 1 ),\n\t\t\treturnValue = this;\n\n\t\t// allow multiple hashes to be passed on init\n\t\toptions = !isMethodCall && args.length ?\n\t\t\t$.extend.apply( null, [ true, options ].concat(args) ) :\n\t\t\toptions;\n\n\t\t// prevent calls to internal methods\n\t\tif ( isMethodCall && options.charAt( 0 ) === \"_\" ) {\n\t\t\treturn returnValue;\n\t\t}\n\n\t\tif ( isMethodCall ) {\n\t\t\tthis.each(function() {\n\t\t\t\tvar instance = $.data( this, name ),\n\t\t\t\t\tmethodValue = instance && $.isFunction( instance[options] ) ?\n\t\t\t\t\t\tinstance[ options ].apply( instance, args ) :\n\t\t\t\t\t\tinstance;\n\t\t\t\t// TODO: add this back in 1.9 and use $.error() (see #5972)\n//\t\t\t\tif ( !instance ) {\n//\t\t\t\t\tthrow \"cannot call methods on \" + name + \" prior to initialization; \" +\n//\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\";\n//\t\t\t\t}\n//\t\t\t\tif ( !$.isFunction( instance[options] ) ) {\n//\t\t\t\t\tthrow \"no such method '\" + options + \"' for \" + name + \" widget instance\";\n//\t\t\t\t}\n//\t\t\t\tvar methodValue = instance[ options ].apply( instance, args );\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\treturnValue = methodValue;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.each(function() {\n\t\t\t\tvar instance = $.data( this, name );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} )._init();\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, name, new object( options, this ) );\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( options, element ) {\n\t// allow instantiation without initializing for simple inheritance\n\tif ( arguments.length ) {\n\t\tthis._createWidget( options, element );\n\t}\n};\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\toptions: {\n\t\tdisabled: false\n\t},\n\t_createWidget: function( options, element ) {\n\t\t// $.widget.bridge stores the plugin instance, but we do it anyway\n\t\t// so that it's stored even before the _create function runs\n\t\t$.data( element, this.widgetName, this );\n\t\tthis.element = $( element );\n\t\tthis.options = $.extend( true, {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tvar self = this;\n\t\tthis.element.bind( \"remove.\" + this.widgetName, function() {\n\t\t\tself.destroy();\n\t\t});\n\n\t\tthis._create();\n\t\tthis._trigger( \"create\" );\n\t\tthis._init();\n\t},\n\t_getCreateOptions: function() {\n\t\treturn $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];\n\t},\n\t_create: function() {},\n\t_init: function() {},\n\n\tdestroy: function() {\n\t\tthis.element\n\t\t\t.unbind( \".\" + this.widgetName )\n\t\t\t.removeData( this.widgetName );\n\t\tthis.widget()\n\t\t\t.unbind( \".\" + this.widgetName )\n\t\t\t.removeAttr( \"aria-disabled\" )\n\t\t\t.removeClass(\n\t\t\t\tthis.widgetBaseClass + \"-disabled \" +\n\t\t\t\t\"ui-state-disabled\" );\n\t},\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key;\n\n\t\tif ( arguments.length === 0 ) {\n\t\t\t// don't return a reference to the internal hash\n\t\t\treturn $.extend( {}, this.options );\n\t\t}\n\n\t\tif  (typeof key === \"string\" ) {\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn this.options[ key ];\n\t\t\t}\n\t\t\toptions = {};\n\t\t\toptions[ key ] = value;\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\t_setOptions: function( options ) {\n\t\tvar self = this;\n\t\t$.each( options, function( key, value ) {\n\t\t\tself._setOption( key, value );\n\t\t});\n\n\t\treturn this;\n\t},\n\t_setOption: function( key, value ) {\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.widget()\n\t\t\t\t[ value ? \"addClass\" : \"removeClass\"](\n\t\t\t\t\tthis.widgetBaseClass + \"-disabled\" + \" \" +\n\t\t\t\t\t\"ui-state-disabled\" )\n\t\t\t\t.attr( \"aria-disabled\", value );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tenable: function() {\n\t\treturn this._setOption( \"disabled\", false );\n\t},\n\tdisable: function() {\n\t\treturn this._setOption( \"disabled\", true );\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig,\n\t\t\tcallback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\t\t// the original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\n\t\treturn !( $.isFunction(callback) &&\n\t\t\tcallback.call( this.element[0], event, data ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n})( jQuery );\n","/*\n* jQuery Mobile Framework : events\n* Copyright (c) jQuery Project\n* Dual licensed under the MIT or GPL Version 2 licenses.\n* http://jquery.org/license\n*/\n(function($, undefined ) {\n    $.extend( $.support, {\n    orientation: \"orientation\" in window,\n    touch: \"ontouchend\" in document\n    });\n\n    // add new event shortcuts\n    $.each( \"touchstart touchmove touchend orientationchange tap taphold swipe swipeleft swiperight scrollstart scrollstop\".split( \" \" ), function( i, name ) {\n    $.fn[ name ] = function( fn ) {\n        return fn ? this.bind( name, fn ) : this.trigger( name );\n    };\n    });\n\n    var supportTouch = $.support.touch,\n    scrollEvent = \"touchmove scroll\",\n    touchStartEvent = supportTouch ? \"touchstart\" : \"mousedown\",\n    touchStopEvent = supportTouch ? \"touchend\" : \"mouseup\",\n    touchMoveEvent = supportTouch ? \"touchmove\" : \"mousemove\";\n\n    // also handles scrollstop\n    $.event.special.scrollstart = {\n    enabled: true,\n\n    setup: function() {\n        var thisObject = this,\n            $this = $( thisObject ),\n            scrolling,\n            timer;\n\n        function trigger( event, state ) {\n            scrolling = state;\n            var originalType = event.type;\n            event.type = scrolling ? \"scrollstart\" : \"scrollstop\";\n            $.event.dispatch.call( thisObject, event );\n            event.type = originalType;\n        }\n\n        // iPhone triggers scroll after a small delay; use touchmove instead\n        $this.bind( scrollEvent, function( event ) {\n            if ( !$.event.special.scrollstart.enabled ) {\n                return;\n            }\n\n            if ( !scrolling ) {\n                trigger( event, true );\n            }\n\n            clearTimeout( timer );\n            timer = setTimeout(function() {\n                trigger( event, false );\n            }, 50 );\n        });\n    }\n    };\n\n    // also handles taphold\n    $.event.special.tap = {\n    setup: function() {\n        var thisObject = this,\n            $this = $( thisObject );\n\n        $this\n            .bind( touchStartEvent, function( event ) {\n                if ( event.which && event.which !== 1 ) {\n                    return;\n                }\n\n                var moved = false,\n                    touching = true,\n                    origPos = [ event.pageX, event.pageY ],\n                    originalType,\n                    timer;\n\n                function moveHandler() {\n                    if ((Math.abs(origPos[0] - event.pageX) > 10) ||\n                        (Math.abs(origPos[1] - event.pageY) > 10)) {\n                        moved = true;\n                    }\n                }\n\n                timer = setTimeout(function() {\n                    if ( touching && !moved ) {\n                        originalType = event.type;\n                        event.type = \"taphold\";\n                        $.event.dispatch.call( thisObject, event );\n                        event.type = originalType;\n                    }\n                }, 750 );\n\n                $this\n                    .one( touchMoveEvent, moveHandler)\n                    .one( touchStopEvent, function( event ) {\n                        $this.unbind( touchMoveEvent, moveHandler );\n                        clearTimeout( timer );\n                        touching = false;\n\n                        if ( !moved ) {\n                            originalType = event.type;\n                            event.type = \"tap\";\n                            $.event.dispatch.call( thisObject, event );\n                            event.type = originalType;\n                        }\n                    });\n            });\n    }\n    };\n\n    // also handles swipeleft, swiperight\n    $.event.special.swipe = {\n    setup: function() {\n        var thisObject = this,\n            $this = $( thisObject );\n\n        $this\n            .bind( touchStartEvent, function( event ) {\n                var data = event.originalEvent.touches ?\n                        event.originalEvent.touches[ 0 ] :\n                        event,\n                    start = {\n                        time: (new Date).getTime(),\n                        coords: [ data.pageX, data.pageY ],\n                        origin: $( event.target )\n                    },\n                    stop;\n\n                function moveHandler( event ) {\n                    if ( !start ) {\n                        return;\n                    }\n\n                    var data = event.originalEvent.touches ?\n                            event.originalEvent.touches[ 0 ] :\n                            event;\n                    stop = {\n                            time: (new Date).getTime(),\n                            coords: [ data.pageX, data.pageY ]\n                    };\n\n                    // prevent scrolling\n                    if ( Math.abs( start.coords[0] - stop.coords[0] ) > 10 ) {\n                        event.preventDefault();\n                    }\n                }\n\n                $(this)\n                    .bind( touchMoveEvent, moveHandler )\n                    .one( touchStopEvent, function( event ) {\n                        $this.unbind( touchMoveEvent, moveHandler );\n                        if ( start && stop ) {\n                            if ( stop.time - start.time < 1000 &&\n                                    Math.abs( start.coords[0] - stop.coords[0]) > 30 &&\n                                    Math.abs( start.coords[1] - stop.coords[1]) < 75 ) {\n                                start.origin\n                                .trigger( \"swipe\" )\n                                .trigger( start.coords[0] > stop.coords[0] ? \"swipeleft\" : \"swiperight\" );\n                            }\n                        }\n                        start = stop = undefined;\n                    });\n            });\n    }\n    };\n\n    (function($){\n    // \"Cowboy\" Ben Alman\n\n    var win = $(window),\n        special_event,\n        get_orientation,\n        last_orientation;\n\n    $.event.special.orientationchange = special_event = {\n        setup: function(){\n            // If the event is supported natively, return false so that jQuery\n            // will bind to the event using DOM methods.\n            if ( $.support.orientation ) { return false; }\n\n            // Get the current orientation to avoid initial double-triggering.\n            last_orientation = get_orientation();\n\n            // Because the orientationchange event doesn't exist, simulate the\n            // event by testing window dimensions on resize.\n            win.bind( \"resize\", handler );\n        },\n        teardown: function(){\n            // If the event is not supported natively, return false so that\n            // jQuery will unbind the event using DOM methods.\n            if ( $.support.orientation ) { return false; }\n\n            // Because the orientationchange event doesn't exist, unbind the\n            // resize event handler.\n            win.unbind( \"resize\", handler );\n        },\n        add: function( handleObj ) {\n            // Save a reference to the bound event handler.\n            var old_handler = handleObj.handler;\n\n            handleObj.handler = function( event ) {\n                // Modify event object, adding the .orientation property.\n                event.orientation = get_orientation();\n\n                // Call the originally-bound event handler and return its result.\n                return old_handler.apply( this, arguments );\n            };\n        }\n    };\n\n    // If the event is not supported natively, this handler will be bound to\n    // the window resize event to simulate the orientationchange event.\n    function handler() {\n        // Get the current orientation.\n        var orientation = get_orientation();\n\n        if ( orientation !== last_orientation ) {\n            // The orientation has changed, so trigger the orientationchange event.\n            last_orientation = orientation;\n            win.trigger( \"orientationchange\" );\n        }\n    };\n\n    // Get the current page orientation. This method is exposed publicly, should it\n    // be needed, as jQuery.event.special.orientationchange.orientation()\n    special_event.orientation = get_orientation = function() {\n        var elem = document.documentElement;\n        return elem && elem.clientWidth / elem.clientHeight < 1.1 ? \"portrait\" : \"landscape\";\n    };\n\n    })(jQuery);\n\n    $.each({\n    scrollstop: \"scrollstart\",\n    taphold: \"tap\",\n    swipeleft: \"swipe\",\n    swiperight: \"swipe\"\n    }, function( event, sourceEvent ) {\n    $.event.special[ event ] = {\n        setup: function() {\n            $( this ).bind( sourceEvent, $.noop );\n        }\n    };\n    });\n\n})( jQuery );\n","/* D3R Cleverlabels\nYou will need some styling in your css a bit like this:\n\ndiv.field input.cleverlabel,\ndiv.field textarea.cleverlabel {\n    background: #F0F0F0;\n    color: #A0A0A0;\n    border-color: #E1E1E1;\n}\ndiv.password .cleverpassword {\n    position: relative;\n}\ndiv.password input.password {\n    position: relative;\n}\ndiv.password input.cleverlabel {\n    position: absolute;\n    z-index: 0;\n    left: 0;\n    bottom: 0;\n}\n.js div.field .form_note {\n    display: none;\n}\n*/\n(function($) {\n    $.cleverlabels = function(el, override, options) {\n        var base = this;\n\n        base.$el = $(el);\n        base.el = el;\n        base.labeltext = override;\n\n        base.$el.data(\"cleverlabels\", base);\n\n        base.init = function() {\n            base.override = override;\n            base.options = $.extend({},$.cleverlabels.defaultOptions, options);\n            if (undefined === base.labeltext) {\n                base.labeltext = base.$el.attr('placeholder');\n            }\n            if (undefined === base.labeltext || base.labeltext.length < 1) {\n                base.labeltext = $('#'+base.$el.attr('id')+'_note').text();\n            }\n            if (undefined === base.labeltext || base.labeltext.length < 1) {\n                base.labeltext = $('label[for='+base.$el.attr('id')+']').text();\n                if(base.options.allowAsterisk !== true) {\n                    base.labeltext = base.labeltext.replace(/\\*/,\"\");\n                }\n            }\n\n            if (undefined !== base.labeltext ) {\n                base.labeltext = $('<span>').html(base.labeltext + \"&nbsp;\").text();\n            }\n\n            if (!$.cleverlabels.html5Support()) {\n                if ('password' == base.$el.attr('type')) {\n                    var $dummy = $('<input type=\"text\" value=\"'+base.labeltext+'\" class=\"'+base.options.inputClass+' cleverlabel\"/>');\n                    var $height = (base.$el.outerHeight() === 0) ? 'auto' : base.$el.outerHeight();\n                    $dummy.css({width: base.$el.outerWidth(), height: $height});\n                    $dummy.focus(function(e){\n                        base.$el.focus();\n                    });\n                    base.$el.wrap('<div class=\"cleverpassword\"></div>');\n                    base.$el.before($dummy);\n\n                    base.clearval = function() {\n                        base.$el.css({opacity:1});\n                        $dummy.css({opacity: 0});\n                    };\n                    base.fillval = function() {\n                        if (base.$el.val() === '') {\n                            base.$el.css({opacity:0});\n                            $dummy.css({opacity: 1});\n                        }\n                    };\n                }\n                base.fillval();\n                base.$el.bind('focus', base.clearval);\n                base.$el.bind('blur change', base.fillval);\n                base.$el.closest('form').submit(base.clearval);\n            } else if (base.$el.attr('placeholder') != base.labeltext) {\n                base.$el.attr('placeholder', base.labeltext);\n            }\n        };\n\n        base.clearval = function() {\n            if (base.$el.val() == base.labeltext) {\n                base.$el.val('');\n                base.$el.removeClass('cleverlabel');\n            }\n        };\n\n        base.fillval = function() {\n            base.$el.removeClass('cleverlabel');\n            if (base.$el.val() === '' || base.$el.val() === base.labeltext) {\n                base.$el.val(base.labeltext);\n                base.$el.addClass('cleverlabel');\n            }\n        };\n\n        base.init();\n    };\n\n    $.cleverlabels.defaultOptions = {\n        allowAsterisk: false,\n        inputClass: 'input'\n    };\n\n    $.cleverlabels.html5Support = function() {\n        if ('undefined' == typeof $.support.placeholder) {\n            $.support.placeholder = 'placeholder' in document.createElement('input');\n        }\n        return $.support.placeholder;\n    };\n\n    $.fn.cleverlabels = function(override, options){\n        return this.each(function(){\n            (new $.cleverlabels(this, override, options));\n        });\n    };\n\n    $.fn.fillcleverlabels = function(){\n        if (!$.cleverlabels.html5Support()) {\n            return this.each(function(){\n                if (!!$(this).data('cleverlabels')) {\n                    $(this).data('cleverlabels').fillval();\n                }\n            });\n        }\n        return this;\n    };\n\n    $.fn.clearcleverlabels = function(){\n        if (!$.cleverlabels.html5Support()) {\n            return this.each(function(){\n                if (!!$(this).data('cleverlabels')) {\n                    $(this).data('cleverlabels').clearval();\n                }\n            });\n        }\n        return this;\n    };\n})(jQuery);\n","/**\n * Copyright D3R 2013\n * http://d3r.com\n * dom@d3r.com\n *\n * Dependencies: jQuery, jquery.widget.js, jquery.mobile.events.js\n */\n(function($) {\n    var slider = {\n        options: {\n            item            : \".grid > *\",\n            page            : false,\n            wrapper         : \".grid\",\n            next            : \".slider__next\",\n            prev            : \".slider__prev\",\n            count           : \".slider__count\",\n            index           : \".slider__index\",\n            nav             : \".slider__nav\",\n            navItem         : \".slider__nav__item\",\n            navActiveClass  : \"slider__nav__item--active\",\n            autoplay        : false,\n            autostop        : false,\n            autodelay       : 5000,\n            equalHeights    : false,\n            debug           : false,\n            removeClasses   : false,\n            disableSelect   : true,\n            onInitCallback  : $.noop,\n            onSelectCallback: $.noop\n        },\n        _init: function() {\n            var widget = this;\n            this._debug('Slider :: INIT');\n\n            this.slides = $(this.options.item, this.element);\n            this._debug(this.slides);\n            if (!!this.options.page) {\n                this.itemsPerPage = 0;\n                this.wrapper = $(this.options.wrapper, this.element);\n                this._setupPages();\n            }\n\n            if (this.slides.length > 1) {\n                this.element.addClass('slider--enabled');\n\n                this.slides.addClass('slider__slide');\n\n                this._debug('Slider :: INIT', this.slides);\n\n                var prevent = ['dragstart'];\n\n                if (this.options.disableSelect) {\n                    prevent.push('selectstart');\n                }\n\n                $(this.element).bind(prevent.join(' '), function(e) {\n                    e.preventDefault();\n                });\n\n                var active = this.slides.filter('.slider__slide--active');\n\n                if (active.length) {\n                    this.active = active.eq(0);\n                } else {\n                    this.active = this.slides.eq(0).addClass('slider__slide--active');\n                }\n\n                this.index = this.slides.index(this.active);\n\n                this.playing = false;\n\n                if (!!this.options.next) {\n                    $(this.options.next, this.element).bind('click', $.proxy(this, 'next'));\n                }\n                if (!!this.options.prev) {\n                    $(this.options.prev, this.element).bind('click', $.proxy(this, 'prev'));\n                }\n\n                if (!!this.options.nav) {\n                    this._initNav();\n                    if (!!this.options.count) {\n                        $(this.options.count, this.element).text(this.slides.length);\n                    }\n                    this._updateNav();\n                }\n\n                // delay this because we need to wait for font replacement\n                if (this.options.equalHeights) {\n                    this._updateHeights();\n                }\n\n                // Unbind the swipes when not scrolling as jquery mobile doesn;t seem to be capable of not firing them.\n                // $(window).bind('scrollstart', $.proxy(this, '_unbindSwipes')).bind('scrollstop', $.proxy(this, '_bindSwipes'));\n\n                this._bindSwipes();\n\n                if (this.options.autoplay) {\n                    this.play();\n                    this.element.mouseleave($.proxy(this, 'play'));\n                    if (this.options.autostop) {\n                        this.element.mouseenter($.proxy(this, 'stop'));\n                    }\n                }\n\n                $(window).on('blur', function(e) {\n                    if (widget.playing) {\n                        $(window).on('blur', $.proxy(this, 'play'));\n                    }\n                    $.proxy(this, 'stop');\n                });\n\n                widget.options.onInitCallback();\n            }\n        },\n        destroy: function() {\n            this._debug('Slider :: DESTROY');\n\n            if (this.options.removeClasses) {\n                this.element.removeClass('slider--enabled');\n                this.slides.removeClass(function(index, classnames) {\n                    return (classnames.match (/\\bslider\\S+/g) || []).join(' ');\n                });\n            }\n\n            this._unbindSwipes();\n\n            $(this.options.next, this.element).unbind('click', $.proxy(this, 'next'));\n            $(this.options.prev, this.element).unbind('click', $.proxy(this, 'prev'));\n        },\n        select: function(index, diff) {\n            this._debug('Slider :: SELECT', index);\n            if (this.slides.length <= index || this.index === index) return;\n\n            if (!diff) diff = index - this.index;\n\n            var widget = this,\n                next = this.slides.eq(index),\n                exitClass,\n                enterClass;\n\n            this._trigger('beforeSlide', null, {index: index, slide: next});\n\n            if (diff >= 0) {\n                // from the right\n                exitClass = 'slider__slide--exit-left';\n                enterClass = 'slider__slide--enter-right';\n            } else {\n                // from the left\n                exitClass = 'slider__slide--exit-right';\n                enterClass = 'slider__slide--enter-left';\n            }\n\n            widget.slides.removeClass('slider__slide--enter-left slider__slide--enter-right slider__slide--exit-left slider__slide--exit-right');\n            next.addClass(enterClass);\n            widget.active.addClass(exitClass);\n\n            // Need the classes to be added in a separate moment\n            window.setTimeout(function() {\n                widget.active.removeClass('slider__slide--active');\n                next.addClass('slider__slide--active');\n                widget.active = next;\n                widget.index = index;\n                if (!!widget.options.nav) {\n                    widget._updateNav();\n                }\n                widget._trigger('afterSlide', null, {index: index, slide: next});\n                widget.options.onSelectCallback();\n            }, 50);\n        },\n        next: function(e) {\n            e.preventDefault();\n            this.stop();\n            this._next();\n        },\n        prev: function(e) {\n            e.preventDefault();\n            this.stop();\n            this._prev();\n        },\n        _next: function() {\n            this.select((this.index + 1) % this.slides.length, 1);\n        },\n        _prev: function() {\n            this.select((this.index + this.slides.length - 1) % this.slides.length, -1);\n        },\n        play: function() {\n            this._debug('Slider :: PLAY');\n            if (!this.playing) this.playing = setInterval($.proxy(this, '_next'), this.options.autodelay);\n        },\n        stop: function() {\n            this._debug('Slider :: STOP');\n            if (this.playing) {\n                clearInterval(this.playing);\n                this.playing = false;\n            }\n        },\n        _setupPages: function() {\n            this._debug('Slider :: SETUP PAGES');\n            var count = Math.round(this.wrapper.innerWidth() / this.slides.outerWidth());\n            if (count !== this.itemsPerPage && this.itemsPerPage < this.slides.length) {\n                var page = $(this.options.page,this.element).first();\n                this.itemsPerPage = count;\n                var items = this.slides.toArray();\n                this.wrapper.empty();\n                while (items.length > 0) {\n                    this.wrapper.append(page.clone().append(items.splice(0, count)).addClass('slider__slide'));\n                }\n                this.slides = this.wrapper.children();\n                // $(window).bind('resize', $.proxy(this, '_setupPages'));\n            }\n        },\n        _bindSwipes: function() {\n            this._debug('Slider :: BIND SWIPES');\n            this.slides.bind('swipeleft', $.proxy(this, 'next'));\n            this.slides.bind('swiperight', $.proxy(this, 'prev'));\n        },\n        _unbindSwipes: function() {\n            this._debug('Slider :: UNBIND SWIPES');\n            this.slides.unbind('swipeleft', $.proxy(this, 'next'));\n            this.slides.unbind('swiperight', $.proxy(this, 'prev'));\n        },\n        _initNav: function() {\n            this._debug('Slider :: INIT NAV');\n            var widget = this;\n            if (!!this.options.nav) {\n                this.nav = $(this.options.nav, this.element);\n                this.navItems = $(widget.options.navItem, this.nav);\n                this.nav.on('click', widget.options.navItem, function(e) {\n                    e.preventDefault();\n                    var index = $(this).index();\n                    if (index !== widget.index) {\n                        widget.stop();\n                        widget.select(index);\n                    }\n                });\n            }\n        },\n        _updateNav: function() {\n            if (!!this.options.index) {\n                $(this.options.index, this.element).text(this.index + 1);\n            }\n            if (!!this.options.nav) {\n                this.navItems.removeClass(this.options.navActiveClass);\n                this.navItems.eq(this.index).addClass(this.options.navActiveClass);\n            }\n        },\n        _updateHeights: function() {\n            this._debug('Slider :: UPDATE HEIGHTS', this.element.height());\n            this.slides.css('height', 'auto');\n            this.slides.css('height', this.element.innerHeight());\n        },\n        _debug: function() {\n            if (true === this.options.debug && !!window.console && !!window.console.log){\n                window.console.log.apply(window.console, arguments);\n            }\n        }\n    };\n    $.widget('d3r.slider', slider);\n})(jQuery);\n","/**\n * Copyright D3R 2013\n * http://d3r.com\n * dom@d3r.com\n *\n * Dependencies: jQuery, jquery.widget.js, jquery.mobile.events.js\n */\n(function($) {\n    var scrollable = {\n        options: {\n            track            : \".scrollable__track\",\n            slide            : \".scrollable__slide\",\n            next            : \".scrollable__next\",\n            prev            : \".scrollable__prev\",\n            count           : \".scrollable__count\",\n            index           : \".scrollable__index\",\n            nav             : \".scrollable__nav\",\n            navItem         : \".scrollable__nav__item\",\n            navActiveClass  : \"scrollable__nav__item--active\",\n            disabledClass   : \"scrollable--disabled\",\n            activeClass     : \"scrollable__slide--active\",\n            hiddenClass     : \"scrollable__slide--hidden\",\n            paginate        : false,\n            autorefresh     : true,\n            autoplay        : false,\n            autostop        : false,\n            autodelay       : 5000,\n            debug           : false,\n            beforeSlide     : false,\n            afterSlide      : false\n        },\n        _init: function() {\n            this._debug('Scrollable :: INIT');\n\n            var widget = this;\n\n            this.slides = $(this.options.slide, this.element);\n            this.track = $(this.options.track, this.element);\n\n            this._debug(this.slides);\n\n            if (!!this.options.page) {\n                this.itemsPerPage = 0;\n                this.wrapper = $(this.options.wrapper, this.element);\n                this._setupPages();\n            }\n\n            if (this.slides.length > 1) {\n\n                this._debug('Scrollable :: INIT', this.slides);\n\n                $(this.element).bind('dragstart selectstart', function(e) {\n                    e.preventDefault();\n                });\n\n                this.active = this.slides.eq(0);\n\n                this.index = this.slides.index(this.active);\n\n                if (this.options.paginate) {\n                    this.perPage = Math.round(this.track.outerWidth() / this.active.outerWidth());\n                }\n\n                this.playing = false;\n\n                if (!!this.options.next) {\n                    this.nextButton = $(this.options.next, this.element).on('click', $.proxy(this, 'next'));\n                }\n                if (!!this.options.prev) {\n                    this.prevButton = $(this.options.prev, this.element).on('click', $.proxy(this, 'prev'));\n                }\n\n                if (!!this.options.nav) {\n                    this._initNav();\n                    if (!!this.options.count) {\n                        $(this.options.count, this.element).text(this.slides.length);\n                    }\n                    this._updateNav();\n                }\n\n                if (this.options.autorefresh) {\n                    $(window).resize($.proxy(this, 'refresh'));\n                }\n\n                // Unbind the swipes when not scrolling as jquery mobile doesn;t seem to be capable of not firing them.\n                // $(window).bind('scrollstart', $.proxy(this, '_unbindSwipes')).bind('scrollstop', $.proxy(this, '_bindSwipes'));\n\n                this._bindSwipes();\n                this._updatePages();\n                this._updateButtons();\n                this._updateHidden();\n                this._updateActive();\n\n                if (this.options.autoplay) {\n                    this.play();\n                    this.element.mouseleave($.proxy(this, 'play'));\n                    if (this.options.autostop) {\n                        this.element.mouseenter($.proxy(this, 'stop'));\n                    }\n                }\n\n                // This is a hack to disable transitions of elements on page load\n                window.setTimeout(function() {\n                    widget.element.addClass('scrollable--enabled');\n                }, 1);\n            }\n        },\n        destroy: function() {\n            this._debug('Scrollable :: DESTROY');\n\n            if (!!this.options.next) {\n                $(this.options.next, this.element).off('click', $.proxy(this, 'next'));\n            }\n            if (!!this.options.prev) {\n                $(this.options.prev, this.element).off('click', $.proxy(this, 'prev'));\n            }\n            if (this.options.autorefresh) {\n                $(window).off('resize', $.proxy(this, 'refresh'));\n            }\n        },\n        select: function(index) {\n            this._debug('Scrollable :: SELECT', index);\n            if (!this._indexIsValid(index)) return;\n            // this._trigger('beforeSlide', null, {index: index, slide: next});\n\n            this.active = this.slides.eq(index);\n            this.index = index;\n            var widget = this;\n\n            $.when($.isFunction(this.options.beforeSlide) && this.options.beforeSlide.call(widget)).done(function() {\n                widget.refresh();\n                widget._updateNav();\n                widget._updateHidden();\n                widget._updateActive();\n                if ($.isFunction(widget.options.afterSlide)) {\n                    widget.options.afterSlide.call(widget)\n                }\n                if (widget.options.autoplay) {\n                    widget.play();\n                }\n            });\n        },\n        refresh: function() {\n            this._debug('Scrollable :: REFRESH');\n            var multiplier = this.active.outerWidth() / this.track.outerWidth();\n            this.track.css({\n                transform: \"translateX(-\" + (this.index * 100 * multiplier) + \"%)\"\n            });\n            this._updatePages();\n            this._updateButtons();\n        },\n        next: function(e) {\n            if (!!e) e.preventDefault();\n            this.stop();\n            this.select(this._nextIndex());\n        },\n        _nextOrStart: function() {\n            if (this._indexIsValid(this._nextIndex())) {\n                this.next();\n            } else {\n                this.select(0);\n            }\n        },\n        _nextIndex: function() {\n            var index = this.index + 1;\n            if (this.options.paginate) {\n                index = this.index + this.itemsPerPage;\n            }\n            return index;\n        },\n        prev: function(e) {\n            if (!!e) e.preventDefault();\n            this.stop();\n            this.select(this._prevIndex());\n        },\n        _prevIndex: function() {\n            var index = this.index - 1;\n            if (this.options.paginate) {\n                index = this.index - this.itemsPerPage;\n\n                if (index > 0 && index < this.itemsPerPage) {\n                    index = 0;\n                }\n                if (index >= this.slides.length) {\n                    index = this.slides.length - 1;\n                }\n            } else if (index > this.slides.length - this.itemsPerPage) {\n                index = this.slides.length - this.itemsPerPage;\n            }\n            return index;\n        },\n        play: function() {\n            this._debug('Scrollable :: PLAY');\n            if (!this.playing) this.playing = setInterval($.proxy(this, '_nextOrStart'), this.options.autodelay);\n        },\n        stop: function() {\n            this._debug('Scrollable :: STOP');\n            if (this.playing) {\n                clearInterval(this.playing);\n                this.playing = false;\n            }\n        },\n        _updatePages: function() {\n            this._debug('Scrollable :: UPDATE PAGES');\n            this.itemsPerPage = Math.round(this.track.innerWidth() / this.slides.outerWidth());\n        },\n        _updateHidden: function() {\n            this.slides.removeClass(this.options.hiddenClass);\n            if (this.index > 0) {\n                this.slides.slice(0, this.index).addClass(this.options.hiddenClass);\n            }\n            this.slides.slice(this.index + this.itemsPerPage).addClass(this.options.hiddenClass);\n        },\n        _updateActive: function() {\n            this.slides.removeClass(this.options.activeClass);\n            this.active.addClass(this.options.activeClass);\n        },\n        _bindSwipes: function() {\n            this._debug('Scrollable :: BIND SWIPES');\n            this.element.bind('swipeleft', $.proxy(this, 'next'));\n            this.element.bind('swiperight', $.proxy(this, 'prev'));\n        },\n        _unbindSwipes: function() {\n            this._debug('Scrollable :: UNBIND SWIPES');\n            this.element.bind('swipeleft', $.proxy(this, 'next'));\n            this.element.bind('swiperight', $.proxy(this, 'prev'));\n        },\n        _updateButtons: function() {\n            this.prevButton[this._indexIsValid(this._prevIndex()) ? 'removeClass' : 'addClass'](this.options.disabledClass);\n            this.nextButton[this._indexIsValid(this._nextIndex()) ? 'removeClass' : 'addClass'](this.options.disabledClass);\n            this.element[\n                this._indexIsValid(this._nextIndex()) || this._indexIsValid(this._prevIndex())\n                    ? 'removeClass'\n                    : 'addClass'\n                ]('scrollable--static');\n        },\n        _indexIsValid: function(index) {\n            if (index < 0) return false;\n            if (!this.options.paginate) return index <= (this.slides.length - this.itemsPerPage);\n            return index + 1 <= this.slides.length;\n        },\n        _initNav: function() {\n            this._debug('Scrollable :: INIT NAV');\n            var widget = this;\n            if (!!this.options.nav) {\n                this.nav = $(this.options.nav, this.element);\n                this.navItems = $(widget.options.navItem, this.nav);\n                this.nav.on('click', widget.options.navItem, function(e) {\n                    e.preventDefault();\n                    var index = $(this).index();\n                    if (index !== widget.index) {\n                        widget.stop();\n                        widget.select(index);\n                    }\n                });\n            }\n        },\n        _updateNav: function() {\n            if (!!this.options.index) {\n                $(this.options.index, this.element).text(this.index + 1);\n            }\n            if (!!this.options.nav) {\n                this.navItems.removeClass(this.options.navActiveClass);\n                this.navItems.eq(this.index).addClass(this.options.navActiveClass);\n            }\n        },\n        // _updateHeights: function() {\n        //     this._debug('Scrollable :: UPDATE HEIGHTS', this.element.height());\n        //     this.slides.css('height', 'auto');\n        //     this.slides.css('height', this.element.innerHeight());\n        // },\n        _debug: function() {\n            if (true === this.options.debug && !!window.console && !!window.console.log){\n                window.console.log.apply(window.console, arguments);\n            }\n        }\n    };\n    $.widget('d3r.scrollable', scrollable);\n})(jQuery);\n","/*\n * Copyright 2014 D3R Ltd\n * http://d3r.com\n *\n * D3R Standard Javascript\n *\n * You'll want at least:\n\n    .js .d3r-show,\n    .js .d3r-hide {\n        cursor: pointer;\n    }\n    .js .d3r-hidden {\n        display: none;\n    }\n    .js .d3r-shown {\n        display: block;\n    }\n    .d3r-chooser {\n\n    }\n        .d3r-chooser-option,\n        .d3r-multichooser-option {\n            display: none;\n        }\n *\n */\n\n// hidey showey\n$(document).on('click', '.d3r-show, .d3r-hide', function(e) {\n    var $this = $(this),\n        $target;\n    if ($this.is('a')) e.preventDefault();\n    if (!!$this.data('target')) {\n        $target = $('#'+$this.data('target'));\n    } else if (!!$this.attr('href') && \"#\" == $this.attr('href')[0]) {\n        $target = $($this.attr('href'));\n    }\n    if ($target.length) {\n        var hide = $this.hasClass('d3r-hide');\n        $target[hide ? 'toggleClass' : 'addClass']('d3r-shown');\n        $this[hide ? 'toggleClass' : 'addClass']('d3r-active');\n    }\n    if ($target.hasClass('d3r-shown') && $this.hasClass('d3r-autoclose')) {\n        var autoclose = function(e) {\n            if (!$.contains($target[0], e.target)) {\n                if ($target.hasClass('d3r-shown')) {\n                    e.preventDefault();\n                    $target.removeClass('d3r-shown');\n                    $this.removeClass('d3r-active');\n                }\n                $(document).off('click', autoclose);\n            }\n        };\n        $(document).on('click', autoclose);\n    }\n});\n// redirect from dropdowns\n$(document).on('change', 'select.d3r-redirector', function(e) {\n    window.location.assign($(this).val());\n});\n// display things based on dropdowns\n$(document).on('change', 'select.d3r-chooser', function(e) {\n    var $this = $(this),\n        $options = $('.d3r-chooser-option').filter('[data-chooser=\"'+$this.attr('id')+'\"]');\n    $options.removeClass('d3r-shown');\n\n    var selectors = ['[data-chooservalue=\"' + $this.val() + '\"]'];\n\n    if ($this.val()) {\n        selectors.push('#' + $this.val());\n    }\n\n    $options.filter(selectors.join(',')).addClass('d3r-shown');\n});\n$(document).on('change', 'select.d3r-multichooser', function(e) {\n    var $this = $(this),\n        $options = $('.d3r-multichooser-option').filter('[data-multichooser=\"'+$this.attr('id')+'\"]'),\n        $option = $('option:selected', this);\n    $options.removeClass('d3r-shown');\n    $.each($option.data('values').split(' '), function(index, val) {\n        var selectors = ['[data-chooservalue=\"' + val + '\"]'];\n\n        if (val) {\n            selectors.push('#' + val);\n        }\n\n        $options.filter(selectors.join(',')).addClass('d3r-shown');\n    });\n});\n$(document).on('change', 'input[type=\"radio\"].d3r-chooser', function(e) {\n    var $this = $(this),\n        $options = $('.d3r-chooser-option').filter('[data-chooser=\"'+$this.attr('name')+'\"]');\n    $options.removeClass('d3r-shown');\n\n    if ($this.is(':checked')) {\n        var selectors = ['[data-chooservalue=\"' + $this.val() + '\"]'];\n\n        if ($this.val()) {\n            selectors.push('#' + $this.val());\n        }\n\n        $options.filter(selectors.join(',')).addClass('d3r-shown');\n    }\n});\n\n$('input[type=\"radio\"].d3r-chooser:checked').trigger('change');\n\n$(document).on('click', '.d3r-submit', function(e) {\n    var $this = $(this);\n\n    // If the form is invalid, don't disable the button.\n    if ($this.closest('form') &&\n        !$this.closest('form')[0].checkValidity()) {\n        return;\n    }\n    // The timeout is to allow this submission to proceed. Nasty I know, sorry.\n    if ($this.hasClass('d3r-disabled')) {\n        e.preventDefault();\n    }\n    $this.addClass('d3r-disabled');\n    if (!$this.is('a')) {\n        setTimeout(function() {\n            $this.prop('disabled', true);\n        }, 0);\n    }\n});\n$(document).on('click', '.d3r-confirm', function(e) {\n    var $this = $(this),\n        message = 'Are you sure?';\n    if (!!$this.data('confirm')) message = $this.data('confirm');\n    if (!window.confirm(message)) e.preventDefault();\n});\n$(document).on('click', '.d3r-scrollto', function(e) {\n    var $this = $(this),\n        $target;\n    if (!!$this.data('target')) {\n        $target = $('#'+$this.data('target'));\n    } else if (!!$this.attr('href') && \"#\" == $this.attr('href').replace(window.location.pathname,\"\")[0]) {\n        $target = $($this.attr('href').replace(window.location.pathname,\"\"));\n    }\n    if ($target.length) {\n        var hash = $target.attr(\"id\");\n        $target.removeAttr(\"id\");\n        $(\"html,body\").animate({\n            scrollTop: $target.offset().top\n        }, 500, function() {\n            $target.attr(\"id\", hash);\n        });\n    }\n});\n$(document).on('click', '.d3r-popup', function(e) {\n    e.preventDefault();\n    var $this = $(this),\n        url = $this.attr('href'),\n        width = 600,\n        height = 300,\n        target = 'popup';\n    if (!!$this.data('width')) width = $this.data('width');\n    if (!!$this.data('height')) height = $this.data('height');\n    if (!!$this.attr('target')) target = $this.attr('target');\n\n    var newwindow = window.open(url, target ,'height='+height+',width='+width);\n    if (window.focus) newwindow.focus();\n});\n"],"sourceRoot":"../../../../../resources/javascript"}