{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/src/core.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/jquery/src/var/isFunction.js","webpack:///./node_modules/jquery/src/var/document.js","webpack:///./node_modules/jquery/src/selector.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/jquery/src/core/init.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/jquery/src/data/var/dataPriv.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/jquery/src/core/nodeName.js","webpack:///./node_modules/jquery/src/var/rnothtmlwhite.js","webpack:///./node_modules/jquery/src/var/support.js","webpack:///./node_modules/jquery/src/core/access.js","webpack:///./node_modules/jquery/src/ajax.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/jquery/src/core/toType.js","webpack:///./node_modules/jquery/src/traversing.js","webpack:///./node_modules/jquery/src/deferred.js","webpack:///./node_modules/jquery/src/event.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/jquery/src/var/arr.js","webpack:///./node_modules/jquery/src/var/isWindow.js","webpack:///./node_modules/jquery/src/core/camelCase.js","webpack:///./node_modules/jquery/src/css.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/jquery/src/var/slice.js","webpack:///./node_modules/jquery/src/var/class2type.js","webpack:///./node_modules/jquery/src/data/var/acceptData.js","webpack:///./node_modules/jquery/src/core/isAttached.js","webpack:///./node_modules/jquery/src/var/documentElement.js","webpack:///./node_modules/jquery/src/manipulation.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/jquery/src/jquery.js","webpack:///./node_modules/jquery/src/var/indexOf.js","webpack:///./node_modules/jquery/src/var/hasOwn.js","webpack:///./node_modules/jquery/src/callbacks.js","webpack:///./node_modules/jquery/src/queue.js","webpack:///./node_modules/jquery/src/effects.js","webpack:///./node_modules/jquery/src/var/rcssNum.js","webpack:///./node_modules/jquery/src/css/var/cssExpand.js","webpack:///./node_modules/jquery/src/var/rcheckableType.js","webpack:///./node_modules/jquery/src/css/var/rnumnonpx.js","webpack:///./node_modules/jquery/src/css/support.js","webpack:///./node_modules/jquery/src/attributes/support.js","webpack:///./node_modules/jquery/src/core/stripAndCollapse.js","webpack:///./node_modules/jquery/src/event/trigger.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/chart.js/dist/chunks/helpers.segment.js","webpack:///./node_modules/chart.js/dist/chart.esm.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@hotwired/stimulus/dist/stimulus.js","webpack:///./node_modules/jquery/src/var/getProto.js","webpack:///./node_modules/jquery/src/var/flat.js","webpack:///./node_modules/jquery/src/var/push.js","webpack:///./node_modules/jquery/src/var/toString.js","webpack:///./node_modules/jquery/src/var/fnToString.js","webpack:///./node_modules/jquery/src/core/DOMEval.js","webpack:///./node_modules/jquery/src/traversing/var/rneedsContext.js","webpack:///./node_modules/jquery/src/core/var/rsingleTag.js","webpack:///./node_modules/jquery/src/traversing/findFilter.js","webpack:///./node_modules/jquery/src/core/ready.js","webpack:///./node_modules/jquery/src/data/Data.js","webpack:///./node_modules/jquery/src/data/var/dataUser.js","webpack:///./node_modules/jquery/src/var/pnum.js","webpack:///./node_modules/jquery/src/css/var/isHiddenWithinTree.js","webpack:///./node_modules/jquery/src/css/adjustCSS.js","webpack:///./node_modules/jquery/src/manipulation/var/rtagName.js","webpack:///./node_modules/jquery/src/manipulation/var/rscriptType.js","webpack:///./node_modules/jquery/src/manipulation/wrapMap.js","webpack:///./node_modules/jquery/src/manipulation/support.js","webpack:///./node_modules/jquery/src/manipulation/getAll.js","webpack:///./node_modules/jquery/src/manipulation/setGlobalEval.js","webpack:///./node_modules/jquery/src/manipulation/buildFragment.js","webpack:///./node_modules/jquery/src/css/var/getStyles.js","webpack:///./node_modules/jquery/src/css/curCSS.js","webpack:///./node_modules/jquery/src/css/addGetHookIf.js","webpack:///./node_modules/jquery/src/css/finalPropName.js","webpack:///./node_modules/jquery/src/attributes/prop.js","webpack:///./node_modules/jquery/src/ajax/var/nonce.js","webpack:///./node_modules/jquery/src/ajax/var/rquery.js","webpack:///./node_modules/jquery/src/core/parseXML.js","webpack:///./node_modules/jquery/src/serialize.js","webpack:///./node_modules/jquery/src/core/parseHTML.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/index.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./node_modules/jquery/src/var/ObjectFunctionString.js","webpack:///./node_modules/jquery/src/selector-sizzle.js","webpack:///./node_modules/jquery/external/sizzle/dist/sizzle.js","webpack:///./node_modules/jquery/src/traversing/var/dir.js","webpack:///./node_modules/jquery/src/traversing/var/siblings.js","webpack:///./node_modules/jquery/src/deferred/exceptionHook.js","webpack:///./node_modules/jquery/src/core/readyException.js","webpack:///./node_modules/jquery/src/data.js","webpack:///./node_modules/jquery/src/queue/delay.js","webpack:///./node_modules/jquery/src/css/showHide.js","webpack:///./node_modules/jquery/src/css/var/swap.js","webpack:///./node_modules/jquery/src/css/var/rboxStyle.js","webpack:///./node_modules/jquery/src/effects/Tween.js","webpack:///./node_modules/jquery/src/attributes.js","webpack:///./node_modules/jquery/src/attributes/attr.js","webpack:///./node_modules/jquery/src/attributes/classes.js","webpack:///./node_modules/jquery/src/attributes/val.js","webpack:///./node_modules/jquery/src/event/focusin.js","webpack:///./node_modules/jquery/src/event/support.js","webpack:///./node_modules/jquery/src/manipulation/_evalUrl.js","webpack:///./node_modules/jquery/src/ajax/var/location.js","webpack:///./node_modules/jquery/src/wrap.js","webpack:///./node_modules/jquery/src/css/hiddenVisibleSelectors.js","webpack:///./node_modules/jquery/src/ajax/xhr.js","webpack:///./node_modules/jquery/src/ajax/script.js","webpack:///./node_modules/jquery/src/ajax/jsonp.js","webpack:///./node_modules/jquery/src/ajax/load.js","webpack:///./node_modules/jquery/src/core/support.js","webpack:///./node_modules/jquery/src/effects/animatedSelector.js","webpack:///./node_modules/jquery/src/offset.js","webpack:///./node_modules/jquery/src/dimensions.js","webpack:///./node_modules/jquery/src/deprecated.js","webpack:///./node_modules/jquery/src/deprecated/ajax-event-alias.js","webpack:///./node_modules/jquery/src/deprecated/event.js","webpack:///./node_modules/jquery/src/exports/amd.js","webpack:///./node_modules/jquery/src/exports/global.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@popperjs/core/lib/index.js","webpack:///./node_modules/chart.js/auto/auto.esm.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./app/javascript/packs/modules/charts/LineWithHoverChartController.js","webpack:///./app/javascript/packs/application_theme.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/util.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/conversion.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/format-input.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/index.js","webpack:///./app/javascript/packs/modules/charts.js","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///./node_modules/@kishannareshpal/choices.js/public/assets/scripts/choices.js","webpack:///./app/javascript/packs/modules/array_range.js","webpack:///./app/javascript/packs/modules/sortable_tables.js","webpack:///./app/javascript/packs/modules/choices_select.js","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/packs/events.js","webpack:///./app/javascript/packs/toggle-if.js","webpack:///./app/javascript/packs/modules/cart.js","webpack:///./app/javascript/packs/modules/modal_messages.js","webpack:///./app/javascript/packs/modules/modal_spektrix_api.js","webpack:///./app/javascript/packs/modules/stripe_payments.js","webpack:///./app/javascript/packs/modules/stripe_elements.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/js-cookie/dist/js.cookie.js","webpack:///./node_modules/@yaireo/tagify/dist/tagify.min.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@fortawesome/fontawesome-free/js/all.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@nathanvda/cocoon/cocoon.js","webpack:///./app/javascript/controllers sync \\.js$","webpack:///./app/javascript/controllers/admin_dashboard_stats_controller.js","webpack:///./app/javascript/controllers/basket_timer_controller.js","webpack:///./app/javascript/controllers/brand_select_controller.js","webpack:///./app/javascript/controllers/cookies_banner_controller.js","webpack:///./app/javascript/controllers/event_products_controller.js","webpack:///./app/javascript/controllers/image_preview_controller.js","webpack:///./app/javascript/controllers/input_genres_controller.js","webpack:///./app/javascript/controllers/personal_files_verifier_controller.js","webpack:///./app/javascript/controllers/select_all_checkbox_controller.js","webpack:///./app/javascript/controllers/signup_barnardos_controller.js","webpack:///./app/javascript/controllers/signup_charities_controller.js","webpack:///./app/javascript/controllers/signup_nhs_controller.js","webpack:///./app/javascript/controllers/signup_teachers_controller.js","webpack:///./app/javascript/controllers/template_select_controller.js","webpack:///./app/javascript/controllers/ticket_quantity_form_controller.js","webpack:///./app/javascript/events/reset_basket_timer.js","webpack:///./app/javascript/events/cart_total.js","webpack:///./app/javascript/controllers/basket_summary_controller.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","iterator","obj","constructor","arr","getProto","_slice","flat","push","indexOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","DOMEval","toType","version","jQuery","selector","context","fn","init","isArrayLike","length","type","jquery","toArray","this","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","slice","apply","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","src","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","proto","Ctor","isEmptyObject","globalEval","code","doc","nonce","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","split","_i","toLowerCase","top","bottom","right","left","auto","basePlacements","start","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","concat","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","isElement","node","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","nodeType","item","window","document","max","min","round","getWindow","ownerDocument","defaultView","getBasePlacement","rsingleTag","rootjQuery","rquickExpr","root","match","exec","find","parseHTML","test","attr","getElementById","ready","getNodeName","element","nodeName","Data","getDocumentElement","documentElement","getComputedStyle","rectToClientRect","rect","assign","x","y","width","height","getClientRectFromMixedType","clippingParent","win","html","visualViewport","clientWidth","clientHeight","navigator","userAgent","offsetLeft","offsetTop","getWindowScrollBarX","getViewportRect","getBoundingClientRect","clientTop","clientLeft","getInnerBoundingClientRect","_element$ownerDocumen","winScroll","getWindowScroll","body","scrollWidth","scrollHeight","scrollLeft","scrollTop","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","listScrollParents","getParentNode","clipperElement","position","getOffsetParent","filter","contains","getClippingParents","firstClippingParent","clippingRect","accRect","detectOverflow","state","_options","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","paddingObject","mergePaddingObject","expandToHashMap","altContext","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","computeOffsets","strategy","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","offset","keys","forEach","multiply","axis","access","chainable","emptyGet","raw","bulk","_key","rnothtmlwhite","location","rquery","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","prefilters","transports","allTypes","originAnchor","createElement","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","selected","_","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","href","active","lastModified","etag","url","isLocal","protocol","global","processData","async","contentType","accepts","text","xml","json","contents","responseFields","converters","String","JSON","parse","parseXML","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","completed","fireGlobals","uncached","callbackContext","globalEventContext","event","deferred","Deferred","completeDeferred","Callbacks","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","readyState","getResponseHeader","join","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","always","status","abort","statusText","finalText","done","promise","method","crossDomain","host","e","data","param","traditional","trigger","toUpperCase","hasContent","cache","ifModified","headers","beforeSend","add","complete","success","fail","timeout","setTimeout","send","nativeStatusText","responses","isSuccess","response","modified","clearTimeout","ct","finalDataType","firstDataType","shift","ajaxHandleResponses","conv2","current","conv","tmp","prev","dataFilter","throws","ajaxConvert","resolveWith","rejectWith","fireWith","getJSON","getScript","includeScale","getVariation","dir","_siblings","rneedsContext","rparentsprev","guaranteedUnique","children","next","sibling","cur","has","targets","closest","selectors","matched","parentNode","index","matchesSelector","uniqueSort","prevAll","addBack","parent","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","siblings","firstChild","contentDocument","content","childNodes","reverse","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","then","tuples","_state","_promise","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","handler","special","that","args","mightThrow","TypeError","notifyWith","process","exceptionHook","stackTrace","getStackHook","list","stateString","disable","lock","fire","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rcheckableType","acceptData","dataPriv","rtypenamespace","returnTrue","returnFalse","expectSync","activeElement","err","safeActiveElement","_on","types","one","origFn","off","leverageNative","el","set","namespace","notAsync","result","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","needsContext","expr","delegateCount","setup","addEventListener","remove","mappedTypes","origCount","hasData","RegExp","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","sel","matchedHandlers","matchedSelectors","button","disabled","addProp","hook","configurable","originalEvent","writable","load","noBubble","click","_default","beforeunload","returnValue","removeEventListener","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","Date","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","on","isTableElement","getTrueOffsetParent","offsetParent","isFirefox","currentNode","css","transform","perspective","contain","willChange","getContainingBlock","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","string","camelCase","rcssNum","rnumnonpx","cssExpand","getStyles","swap","curCSS","adjustCSS","addGetHookIf","finalPropName","rdisplayswap","rcustomProp","cssShow","visibility","display","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","boxSizingReliable","valueIsBorderBox","val","offsetProp","reliableTrDimensions","parseFloat","getClientRects","cssHooks","opacity","computed","cssNumber","cssProps","style","hooks","origName","isCustomProp","clearCloneStyle","setProperty","isFinite","scrollboxSizeBuggy","scrollboxSize","marginLeft","reliableMarginLeft","margin","border","prefix","suffix","expand","expanded","parts","assignedSlot","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scaleX","offsetWidth","scaleY","offsetHeight","isElementScaled","scroll","offsets","isScrollParent","order","modifiers","Map","visited","Set","modifier","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","areValidElements","_len","some","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","attributes","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","phase","orderModifiers","merged","existing","mergeByName","enabled","_ref3","_ref3$options","effect","cleanupFn","noopFn","update","forceUpdate","_state$elements","getLayoutRect","reset","_state$orderedModifie","_state$orderedModifie2","Promise","destroy","onFirstUpdate","owner","isAttached","composed","getRootNode","rtagName","rscriptType","wrapMap","getAll","setGlobalEval","buildFragment","dataUser","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","getAttribute","restoreScript","removeAttribute","cloneCopyEvent","dest","udataOld","udataCur","fixInput","checked","defaultValue","domManip","collection","ignored","fragment","scripts","hasScripts","iNoClone","valueIsFunction","checkClone","self","_evalUrl","noModule","textContent","_remove","keepData","nodes","cleanData","removeChild","htmlPrefilter","dataAndEvents","deepDataAndEvents","srcElements","destElements","cloneNode","inPage","noCloneChecked","isXMLDoc","detach","empty","append","appendChild","prepend","insertBefore","before","after","nextSibling","innerHTML","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","getMainAxisFromPlacement","clientRect","abs","pageXOffset","pageYOffset","_getComputedStyle","overflow","overflowX","overflowY","within","getScrollParent","scrollParent","isBody","updatedList","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","once","stopOnFalse","unique","locked","fired","dequeue","startLength","_queueHooks","stop","setter","clearQueue","count","defer","isHiddenWithinTree","showHide","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","fx","interval","tick","createFxNow","genFx","includeWidth","attrs","createTween","prop","animation","tween","Animation","tweeners","properties","stopped","currentTime","startTime","duration","percent","tweens","run","opts","specialEasing","easing","originalProperties","Tween","gotoEnd","propFilter","timer","anim","tweener","toggle","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","prefilter","speed","opt","speeds","old","fadeTo","to","show","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","pnum","computeStyleTests","div","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","pixelBoxStyles","pixelPosition","table","tr","trChild","trStyle","parseInt","borderTopWidth","borderBottomWidth","input","checkOn","optSelected","radioValue","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","pop","simulate","triggerHandler","_ref","setAttribute","_ref2","initialStyles","arrow","attribute","unsetSides","mapToStyles","_Object$assign2","variation","gpuAcceleration","adaptive","roundOffsets","dpr","devicePixelRatio","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","passive","_options$scroll","_options$resize","resize","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_defineProperty","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_createForOfIteratorHelper","allowArrayLike","it","F","_e","f","normalCompletion","didErr","step","_e2","return","minLen","arr2","requestAnimFrame","throttled","thisArg","updateFn","updateArgs","ticking","rest","_toLeftRightCenter","align","_alignStartEnd","id","uid","isNullOrUndef","substr","isObject","isNumberFinite","Number","finiteOrDefault","valueOrDefault","toDimension","endsWith","loopable","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","clone$1","source","klen","k","isValidKey","_merger","tval","sval","sources","merger","mergeIf","_mergerIf","indexOfDotOrLength","idx","resolveObjectKey","pos","_capitalize","str","charAt","defined","PI","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","range","roundedRange","almostEquals","niceRange","pow","floor","fraction","isNumber","isNaN","epsilon","_setMinAndMaxByKey","array","toRadians","degrees","toDegrees","radians","_decimalPlaces","distanceBetweenPoints","pt1","pt2","sqrt","_angleDiff","a","b","_normalizeAngle","_angleBetween","angle","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","atEdge","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","A","B","C","D","E","hex","h1","h2","_hexString","g","isShort","lim","h","p2b","n2b","b2n","n2p","RGB_RE","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","w","rgb","rgb2hsl","calln","hsl2rgb","hue","hueParse","p1","p2","hwb2rgb","hsv2rgb","names$1","map$1","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","G","H","I","J","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","nameParse","ok","nk","unpacked","tkeys","unpack","transparent","modHSL","ratio","fromObject","functionParse","rgbParse","Color","_rgb","_valid","_hslString","color","weight","me","w2","c1","c2","w1","deg","_rotate","index_esm","isPatternOrGradient","CanvasGradient","CanvasPattern","getHoverColor","saturate","darken","hexString","overrides","getScope$1","_set","scope","values","Defaults","_descriptors","backgroundColor","borderColor","datasets","chart","platform","getDevicePixelRatio","font","family","size","lineHeight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","intersect","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","describe","targetScope","targetName","_Object$definePropert","scopeObject","targetScopeObject","privateName","defineProperties","local","defaults","_scriptable","startsWith","_indexable","_fallback","_measureText","gc","longest","textWidth","measureText","_longestText","arrayOfThings","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","drawPoint","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","rotate","drawImage","beginPath","arc","closePath","moveTo","lineTo","SQRT1_2","fill","borderWidth","stroke","_isPointInArea","point","area","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","line","lines","strokeWidth","strokeColor","setRenderOpts","strokeStyle","lineWidth","strokeText","maxWidth","fillText","decorateText","translation","fillStyle","textAlign","textBaseline","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","_readValueToProps","_step2","objProps","_iterator2","toTRBL","toTRBLCorners","toPadding","toFont","fallback","console","warn","toFontString","inputs","info","cacheable","createContext","parentContext","_lookup","cmp","mid","hi","lo","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","listener","stub","_chartjs","listeners","_arrayUnique","items","_createResolver","scopes","_cache","prefixes","rootScopes","getTarget","_resolve","Proxy","deleteProperty","_keys","_cached","_resolveWithPrefixes","getOwnPropertyDescriptor","Reflect","_scopes","getPrototypeOf","getKeysFromAllScopes","includes","ownKeys","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_cacheable","_proxy","_context","_subProxy","_stack","setContext","override","receiver","descriptors","isScriptable","delete","createSubResolver","_resolveScriptable","isIndexable","_step3","_iterator3","resolver","_resolveArray","needsSubResolver","_resolveWithContext","allKeys","scriptable","indexable","_proxy$_scriptable","_proxy$_indexable","_proxy$_allKeys","_allKeys","readKey","resolveFallback","getScope","addScopes","parentScopes","parentFallback","_step4","_iterator4","_rootScopes","allScopes","addScopesFromKey","_getTarget","subGetTarget","_step5","_iterator5","_step6","_iterator6","_step7","_iterator7","_step8","_iterator8","resolveKeysFromAllScopes","EPSILON","getPoint","points","skip","getValueAxis","monotoneAdjust","deltaK","mK","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointsLen","pointAfter","monotoneCompute","pointBefore","valueAxis","iPixel","vPixel","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","spanGaps","cubicInterpolationMode","slopeDelta","splineCurveMonotone","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","positions","getPositionedStyle","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","_getCanvasPosition","native","shadowRoot","useOffsetPos","getCanvasPosition","round1","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","containerStyle","containerBorder","containerPadding","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","readUsedSize","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","formatNumber","locale","cacheKey","stringify","formatter","Intl","NumberFormat","getNumberFormat","format","getRtlAdapter","rtl","rectX","_x","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_x2","_itemWidth","overrideTextDirection","getPropertyPriority","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_boundSegment","segment","bounds","prevValue","startBound","endBound","_propertyFn2","_getSegment","_propertyFn","getSegment","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","sub","splitByStyles","segmentOptions","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","st","_step9","_iterator9","styleChanged","p0","p0DataIndex","p1DataIndex","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","getOwnPropertyDescriptors","_get","base","_superPropBase","desc","_getPrototypeOf","_inherits","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Boolean","valueOf","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_slicedToArray","_arrayWithHoles","_s","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","_e3","Animator","_request","_charts","_running","_lastDate","anims","date","callbacks","numSteps","initial","currentStep","_this","_update","_refresh","_this2","running","draw","_active","_total","_notify","charts","cb","_getAnims","_this$_getAnims$items","_duration","cancel","animator","interpolators","boolean","factor","c0","valid","mix","number","cfg","currentValue","_fn","_easing","_start","delay","_loop","_target","_prop","_from","_to","_promises","elapsed","remain","promises","res","rej","resolved","colors","numbers","animations","visible","hide","Animations","config","_properties","configure","animatedProps","getOwnPropertyNames","_step","_iterator","option","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","wait","all","awaitAll","_animateOptions","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","_applyStack","stack","dsIndex","otherValue","singleMode","isStacked","meta","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","parsed","_cachedMeta","_stacks","iScale","iAxis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","cached","shared","DatasetController","_ctx","_cachedDataOpts","getMeta","_type","_parsing","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","$context","_syncList","initialize","linkScales","_stacked","addElements","dataset","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","xScale","getScaleForId","yScale","rScale","getDatasetMeta","scaleID","adata","convertObjectDataToArray","isExtensible","_len3","_key3","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","_sorted","parseArrayData","parseObjectData","parsePrimitiveData","labels","getLabels","singleScale","_parsed$i","_this$_parsing","_this$_parsing$xAxisK","xAxisKey","_this$_parsing$yAxisK","yAxisKey","parsedValue","NaN","canStack","otherScale","_getOtherScale","createStack","NEGATIVE_INFINITY","_getUserBounds","_scale$getUserBounds","getUserBounds","minDefined","maxDefined","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","label","getLabelForValue","_clip","defaultClip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","elementType","_this3","sharing","datasetElementScopeKeys","names","resolveNamedOptions","freeze","transition","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","_resolveAnimations","getSharedOptions","_setStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_args2","_sync","computeMinSampleSize","curr","$bar","visibleMetas","getAllParsedValues","getAllScaleValues","_length","updateMinAndPrev","getPixelForValue","ticks","getPixelForTick","parseValue","entry","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","setBorderSkipped","edge","borderSkipped","_borderProps","horizontal","borderProps","enableBorderRadius","parseEdge","v2","startEnd","setInflateAmount","inflateAmount","_DatasetController","BarController","_super","_this$_parsing2","_this$_parsing2$xAxis","_this$_parsing2$yAxis","iAxisKey","vAxisKey","bars","getBasePixel","isHorizontal","ruler","_getRuler","firstOpts","includeOptions","updateSharedOptions","vpixels","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","center","updateElement","grouped","_getStacks","pixels","barThickness","_startPixel","_endPixel","stackCount","_getStackCount","categoryPercentage","barPercentage","_this$_cachedMeta","_this$options","baseValue","minBarLength","actualBase","floating","applyStack","getDataVisibility","barSign","halfGrid","getLineWidthForValue","skipNull","maxBarThickness","Infinity","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","_getStackIndex","_index_","grid","_value_","beginAtZero","_DatasetController2","BubbleController","_super2","_this$_cachedMeta2","getPixelForDecimal","tooltip","title","_DatasetController3","DoughnutController","_super3","_this4","innerRadius","outerRadius","_this$_parsing$key","circumference","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","cutout","chartWeight","_getRingWeight","_this$_getRotationExt","_getRotationExtents","_getRatioAndOffset","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","getRatioAndOffset","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","_circumference","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","legend","generateLabels","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","_DatasetController4","LineController","_super4","_meta$data","_dataset","animationsDisabled","_getStartAndCountOfVi","pointCount","_iScale$getUserBounds","getStartAndCountOfVisiblePoints","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","scaleRangesChanged","_decimated","animated","_this$_cachedMeta3","_this$options2","maxGapLength","directUpdate","prevParsed","nullData","lastPoint","updateControlPoints","_DatasetController5","PolarAreaController","_super5","_this5","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","_this6","angleLines","circular","pointLabels","PieController","_DoughnutController","_super6","RadarController","_DatasetController6","_super7","_fullLoop","pointPosition","getPointPositionForValue","ScatterController","_LineController","_super8","controllers","DateAdapter","timestamp","_format","amount","unit","weekday","members","adapters","_date","binarySearch","metaset","lookupMethod","_reversePixels","getRange","optimizedEvaluateItems","getSortedVisibleDatasetMetas","_metasets$i2","_binarySearch","getIntersectItems","useFinalPosition","_minPadding","inRange","getNearestItems","distanceMetric","useX","useY","deltaX","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","distance","getAxisItems","rangeMethod","intersectsItem","_metasets$i","evaluateAllVisibleItems","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","params","layout","wrap","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","fullSize","availableWidth","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","other","getMargins","marginForPositions","fitBoxes","boxes","refit","refitBoxes","_updateDims","setBoxDims","placeBoxes","userPadding","_height","_width","autoPadding","_layers","z","layoutItem","minPadding","layoutBoxes","_box","_box$options","_box$options$stackWei","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","updatePos","change","handleMaxPadding","BasePlatform","BasicPlatform","_BasePlatform","_super9","EVENT_TYPES","touchstart","touchmove","touchend","pointerdown","pointermove","pointerup","pointerout","isNullOrEmpty","eventListenerOptions","removeListener","createAttachObserver","observer","MutationObserver","entries","addedNodes","observe","childList","subtree","createDetachObserver","_step10","_iterator10","removedNodes","drpListeningCharts","oldDevicePixelRatio","onWindowResize","createResizeObserver","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","_getRelativePosition$","fromNativeEvent","addListener","_BasePlatform2","DomPlatform","_super10","renderHeight","renderWidth","displayWidth","displayHeight","initCanvas","proxies","$proxies","attach","isConnected","_this$getProps","getProps","final","_this7","defaultRoutes","formatters","numeric","tickValue","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","tickLength","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","majorIndices","major","getMajorIndices","numMajorIndices","newTicks","skipMajors","evenMajorSpacing","diff","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","grace","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","route","offsetFromEdge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","_Element","Scale","_super11","_this8","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","_this$getUserBounds","metas","getMinMax","xLabels","yLabels","beforeUpdate","_this$options3","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","keepZero","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","beforeFit","fit","afterFit","afterUpdate","startPixel","endPixel","reversePixels","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","maxLabelDiagonal","numTicks","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","_this$options4","titleOpts","gridOpts","titleHeight","_this$_getLabelSizes","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","_this$options5","_this$options5$ticks","isRotated","labelsBelowTicks","offsetRight","_this$options6","generateTickLabels","_computeLabelSizes","tickFont","fontString","nestedLabel","caches","widths","heights","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","decimal","getBaseValue","createTickContext","optionTicks","rot","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","ticksLength","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","positionAxisID","_positionAxisID2","_value2","limit","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","lineCount","textOffset","tickAndPadding","hTickAndPadding","_getXAxisLabelAlignment","_getYAxisLabelAlignment","_ret","_positionAxisID3","_value3","halfCount","backdrop","labelPadding","_this$options7","_this$options8","_this$options8$ticks","fillRect","findIndex","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","_this$options9","_titleArgs","titleX","titleY","_positionAxisID","_value","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","_this9","tz","gz","axisID","fontSize","TypedRegistry","isPrototypeOf","parentScope","isIChartComponent","register","itemDefaults","routes","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","Registry","_typedRegistries","_each","_len2","_key2","_len4","_key4","_len5","_key5","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len10","_key10","typedRegistry","_this10","reg","_getRegistryForType","isForType","_exec","itemReg","registry","component","camelMethod","PluginService","_init","_createDescriptors","_step11","_iterator11","plugin","_oldCache","_notifyStateChanges","getPlugin","_i2","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","initOptions","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","generate","Config","_config","initConfig","_scopeCache","_resolverCache","clearCache","clear","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","_getResolver","getResolver","subPrefixes","needContext","subResolver","_step12","_iterator12","_getResolver2","resolverCache","_step13","_descriptors2","_iterator13","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","animationOptions","onComplete","onAnimationProgress","getCanvas","instances","getChart","Chart","userConfig","_this11","initialCanvas","existingChart","chartOptionScopes","OffscreenCanvas","_detectPlatform","updateConfig","acquireContext","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","resizeDelay","listen","_initialize","_this$options10","bindEvents","_resizeBeforeDraw","_resize","newSize","getMaximumSize","newRatio","onResize","render","axisOptions","_this12","scaleOpts","updated","isRadial","dposition","dtype","scaleType","getScale","hasUpdated","_destroyDatasetMeta","_this13","newControllers","_removeUnreferencedMetasets","updateIndex","ControllerClass","getController","_defaults$datasets$ty","getElement","_updateMetasets","_this14","_resetElements","_this15","animsDisabled","ensureScalesHaveIDs","buildOrUpdateScales","setsEqual","unbindEvents","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_updateLayout","_updateDatasets","_eventHandler","_this16","noArea","_this16$_layers","_idx","_updateDataset","_this$_resizeBeforeDr","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateVisibility","_destroy","_stop","releaseContext","_this$canvas","toDataURL","bindUserEvents","bindResponsiveEvents","_this17","_add","_this18","detached","_this19","activeElements","_this20","lastActive","_ref5","_updateHoverStyles","replay","hoverOptions","deactivated","activated","updateHoverStyle","_this21","eventFilter","_handleEvent","_this$_active","lastEvent","getElementsAtEventForMode","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","alpha","avNogSpacingRadius","angleOffset","_parseBorderRadius$","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","_pCenter","_pCenter2","p8","_pCenter3","inner","lineJoin","fullCircles","drawFullCircleBorders","unregister","_Element2","ArcElement","_super12","_this22","chartX","chartY","_getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","atan2","getAngleFromPoint","_this$getProps2","rAdjust","_this$getProps3","_this$options11","halfAngle","halfRadius","radiusOffset","drawArc","setStyle","lineCap","pathVars","_params$start","paramsStart","_params$end","paramsEnd","segmentStart","segmentEnd","outside","_pathVars","lineMethod","stepped","getLineMethod","_ref6","_ref6$move","fastPathSegment","prevX","lastY","_pathVars2","_ref7","_ref7$move","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","path","_path","strokePathWithCache","_step14","segmentMethod","_iterator14","strokePathDirect","_Element3","LineElement","_super13","_this23","_points","_segments","_pointsUpdated","_findStartAndEnd","findStartAndEnd","solidSegments","_computeSegments","_interpolate","_getInterpolationMethod","_segments$i","interpolated","_step15","_iterator15","inRange$1","hitRadius","_Element4","PointElement","_super14","_this24","mouseX","mouseY","_this$getProps4","_this$getProps5","hoverRadius","getBarBounds","bar","half","_bar$getProps","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","outer","_inRange","skipX","skipY","addNormalRectPath","inflateRect","refRect","_Element5","BarElement","_super15","_this25","_this$options12","_boundingRects","addRectPath","_this$getProps6","cleanDecimatedDataset","cleanDecimatedData","plugin_decimation","algorithm","beforeElementsUpdate","xAxis","_getStartAndCountOfVi2","_iScale$getUserBounds2","getStartAndCountOfVisiblePointsSimplified","threshold","decimated","samples","maxAreaPoint","maxArea","nextA","bucketWidth","sampledIndex","endIndex","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","_data$a","pointAx","pointAy","lttbDecimation","minIndex","maxIndex","startIndex","xMin","dx","lastIndex","intermediateIndex1","intermediateIndex2","minMaxDecimation","decodeFill","fillOption","parseFillOption","simpleArc","computeBoundary","computeCircularBoundary","_source$scale","computeLinearBoundary","findSegmentEnd","addPointsBelow","sourcePoint","linesBelow","postponed","_findPoint","findPoint","interpolate","pointValue","linePoints","firstValue","lastValue","getLineByIndex","sourcePoints","below","getLinesBelow","createBoundaryLine","buildStackLine","_ref8","_ref8$x","_ref8$y","_ref9","pointsFromSegments","resolveTarget","propagate","clipY","getBounds","_getEdge","clipBounds","_scale$chart$chartAre","_ref10","interpolatedLineTo","interpolatedPoint","_fill","_step19","_step16","tpoints","_iterator16","_step17","_iterator17","_step18","tgt","subBounds","_iterator18","fillSource","_iterator19","_ref12","_src$style","_src$style$background","notShape","lineLoop","pathSegment","targetLoop","drawfill","lineOpts","_ref13","_ref13$above","above","_ref13$below","doFill","plugin_filler","afterDatasetsUpdate","_args","$filler","beforeDraw","drawTime","beforeDatasetsDraw","beforeDatasetDraw","getBoxSize","labelOpts","_labelOpts$boxHeight","boxHeight","_labelOpts$boxWidth","boxWidth","usePointStyle","itemHeight","_Element6","Legend","_super16","_this26","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","_this27","labelFont","_computeTitleHeight","_getBoxSize","_fitRows","_fitCols","hitboxes","totalHeight","row","heightLimit","totalWidth","currentColWidth","currentColHeight","col","_this$options13","rtlHelper","_step20","_iterator20","hitbox","_step21","_iterator21","_hitbox","_draw","cursor","_this28","defaultColor","fontColor","halfFontSize","_getBoxSize2","textDirection","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","onLeave","isListened","hoveredItem","_getLegendItemAt","sameItem","plugin_legend","_element","adjustHitBoxes","afterEvent","handleEvent","ci","_chart$legend$options","_Element7","Title","_super17","_this29","_padding","textSize","fontOpts","_this$_drawArgs","_drawArgs","plugin_title","titleBlock","createTitle","WeakMap","plugin_subtitle","positioners","average","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","getTooltipSize","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","_chart$chartArea","xAlign","caret","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","alignment","paddingAndSize","_toTRBLCorners","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","_Element8","Tooltip","_super18","_this30","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","beforeTitle","afterTitle","_this31","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","_controller$getLabelA","_this32","getLabelAndValue","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","_toTRBLCorners2","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","textColor","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","_toTRBLCorners3","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","_this33","_ref14","positionChanged","_positionChanged","plugin_tooltip","afterInit","afterDraw","labelCount","Decimation","Filler","SubTitle","findOrAddLabel","addIfString","lastIndexOf","_Scale","CategoryScale","_super19","_this34","_startValue","_valueRange","_this$getUserBounds2","_this$getMinMax","getDecimalForPixel","generateTicks$1","generationOptions","dataRange","niceMin","niceMax","numSpaces","rounded","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","decimalPlaces","relativeLabelSize","_ref15","_Scale2","LinearScaleBase","_super20","_this35","_endValue","_this$getUserBounds3","setMin","setMax","minSign","maxSign","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","stepSize","computeTickLimit","getTickLimit","_maxDigits","_LinearScaleBase","LinearScale","_super21","_this$getMinMax2","handleTickRangeOptions","isMajor","tickVal","_Scale3","LogarithmicScale","_super22","_this36","_zero","_this$getMinMax3","_this$getUserBounds4","exp","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","fitWithPointLabels","furthestLimits","furthestAngles","valueCount","getPointLabelContext","getPointPosition","drawingArea","plFont","_pointLabels","hLimits","vLimits","_setReductions","_pointLabelItems","tickBackdropHeight","outerDistance","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","pathRadiusLine","_LinearScaleBase2","RadialLinearScale","_super23","_this37","_this$getMinMax4","_this38","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","scaledDistance","pointLabel","createPointLabelContext","distanceFromCenter","_this$_pointLabelItem","_this$options14","_this39","_scale$_pointLabelIte","drawPointLabels","gridLineOpts","drawRadiusLine","_this40","INTERVALS","millisecond","common","steps","minute","hour","day","week","month","quarter","year","UNITS","sorter","_parse","adapter","_adapter","_scale$_parseOpts","_parseOpts","parser","isoWeekday","startOf","determineUnitForAutoTicks","minUnit","capacity","addTick","time","timestamps","_lookup2","ticksFromTimestamps","majorUnit","setMajorTicks","_Scale4","TimeScale","_super24","_this41","_unit","_majorUnit","_offsets","_normalized","displayFormats","formats","normalized","_this$getUserBounds5","_applyBounds","_getLabelBounds","endOf","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","datetime","minorFormat","majorFormat","_tickFormatFunction","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","nextSource","prevTarget","nextTarget","_lookupByKey2","_table$lo","_table$hi","_lookupByKey3","_table$lo2","_table$hi2","span","TimeSeriesScale","_TimeScale","_super25","_this42","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","registerables","getFreshSideObject","hashMap","child","rootNode","isSameNode","basePlacement","commonX","commonY","mainAxis","asyncGeneratorStep","gen","_next","_throw","EventListener","eventTarget","eventName","eventOptions","unorderedBindings","binding","extendedEvent","_stopImmediatePropagation","immediatePropagationStopped","extendEvent","bindings","leftIndex","rightIndex","Dispatcher","application","eventListenerMaps","started","eventListeners","eventListener","connect","fetchEventListenerForBinding","bindingConnected","bindingDisconnected","message","handleError","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","createEventListener","descriptorPattern","parseEventTarget","eventTargetName","camelize","char","capitalize","dasherize","Action","tagName","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","eventNameSuffix","getParamsFromEventTargetAttributes","pattern","o_O","typecast","token","descriptorString","trim","Binding","action","willBeInvokedByEvent","invokeWithEvent","actionEvent","logDebugActivity","containsElement","ElementObserver","delegate","mutationObserverInit","mutationObserver","mutations","processMutations","refresh","takeRecords","matchElementsInTree","_Array$from","removeElement","_Array$from2","addElement","mutation","processMutation","processAttributeChange","attributeName","processRemovedNodes","processAddedNodes","elementAttributeChanged","matchElement","_i3","_Array$from3","elementFromNode","processTree","_i4","_Array$from4","elementIsActive","tree","processor","Node","ELEMENT_NODE","elementMatched","elementUnmatched","AttributeObserver","elementObserver","pause","hasAttribute","querySelectorAll","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","stringMap","attributeOldValue","knownAttributeNames","refreshAttribute","oldValue","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","_oldValue","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","fetch","del","prune","Multimap","valuesByKey","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","_this$refreshTokensFo2","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","getValuesForKey","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","forToken","connectAction","disconnectAction","ValueObserver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","invokeChangedCallback","writer","valueDescriptorNameMap","valueDescriptors","rawValue","rawOldValue","changedMethodName","changedMethod","reader","hasMethodName","TargetObserver","targetsByName","disconnectAllTargets","connectTarget","_ref11","disconnectTarget","_a","targetConnected","targetDisconnected","Context","functionName","controllerConstructor","bindingObserver","dispatcher","valueObserver","targetObserver","parentElement","invokeControllerMethod","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","bless","shadowConstructor","shadowProperties","getOwnKeys","shadowingDescriptor","getShadowedDescriptor","getShadowProperties","shadow","blessedProperties","blessing","getBlessedProperties","extendWithReflect","extended","_constructor","Module","blessDefinition","contextsByScope","connectedContexts","fetchContextForScope","ClassMap","getDataKey","getAttributeNameForKey","DataMap","Guide","logger","warnedKeysByObject","warnedKeys","attributeValueContainsToken","TargetSet","targetNames","findTarget","findLegacyTarget","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","targetAttributeForScope","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","revisedAttributeName","guide","Scope","classes","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","unloadIdentifier","connectModule","disconnectModule","connectContextForScope","disconnectContextForScope","defaultSchema","Application","debug","logFormattedMessage","router","mark","_callee","shouldLoad","definitions","loadDefinition","identifiers","getContextForElementAndIdentifier","onerror","groupCollapsed","log","groupEnd","parseValueDefinitionPair","_ref16","typeDefinition","typeFromObject","typeObject","parseValueTypeConstant","defaultValueType","parseValueTypeDefault","default","parseValueTypeObject","typeFromDefaultValue","typeFromConstant","parseValueTypeDefinition","constant","defaultValuesByType","defaultValueForDefinition","hasCustomDefaultValue","readers","writers","valueDescriptorForTokenAndTypeDefinition","writeJSON","Controller","_ref17","_ref17$target","_ref17$detail","_ref17$prefix","_ref17$bubbles","_ref17$cancelable","CustomEvent","dispatchEvent","blessings","classDefinition","getAttributeName","targetDefinition","findAll","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","propertiesForValueDefinitionPair","preservedScriptAttributes","script","winnow","qualifier","not","is","readyList","catch","readyException","readyWait","doScroll","valueParts","adjusted","maxIterations","initialInUnit","thead","td","tbody","tfoot","colgroup","caption","th","optgroup","createDocumentFragment","lastChild","tag","getElementsByTagName","refElements","rhtml","selection","createTextNode","opener","rboxStyle","minWidth","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","capName","vendorPropName","rfocusable","rclickable","removeProp","propFix","nType","propHooks","tabIndex","tabindex","selectedIndex","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","valueOrFunction","encodeURIComponent","serialize","serializeArray","keepScripts","createHTMLDocument","implementation","_state$modifiersData$","arrowElement","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","axisProp","centerOffset","_options$element","querySelector","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","referenceRect","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","hash","getOppositePlacement","getOppositeVariationPlacement","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","math","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","createPopper","factory","Popper","_KEY_TO_DIRECTION","_interopNamespace","Popper__namespace","TRANSITION_END","getSelector","hrefAttr","getSelectorFromElement","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","triggerTransitionEnd","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","isVisible","isDisabled","classList","findShadowRoot","attachShadow","reflow","getjQuery","DOMContentLoadedCallbacks","isRTL","defineJQueryPlugin","$","NAME","JQUERY_NO_CONFLICT","jQueryInterface","noConflict","execute","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","getNextActiveElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","customEventsRegex","nativeEvents","getUidEvent","getEvent","findHandler","delegationSelector","uidEventList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","addHandler","oneOff","wrapFn","_normalizeParams2","previousFn","domElements","EventHandler","bootstrapDelegationHandler","bootstrapHandler","removeHandler","_normalizeParams4","inNamespace","isNamespace","elementEvent","storeElementEvent","handlerKey","removeNamespacedHandlers","keyHandlers","jQueryEvent","isNative","nativeDispatch","createEvent","initEvent","elementMap","instanceMap","BaseComponent","DATA_KEY","EVENT_KEY","isAnimated","getInstance","enableDismissTrigger","clickEvent","getOrCreateInstance","EVENT_KEY$c","EVENT_CLOSE","EVENT_CLOSED","Alert","_BaseComponent","_queueCallback","_destroyElement","dispose","EVENT_KEY$b","SELECTOR_DATA_TOGGLE$5","EVENT_CLICK_DATA_API$6","Button","_BaseComponent2","normalizeData","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","pureKey","getDataAttribute","SelectorEngine","findOne","ancestor","previousElementSibling","nextElementSibling","focusableChildren","focusables","NAME$b","EVENT_KEY$a","DATA_API_KEY$6","Default$a","keyboard","slide","touch","DefaultType$a","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$2","EVENT_CLICK_DATA_API$5","CLASS_NAME_ACTIVE$2","SELECTOR_ACTIVE_ITEM","Carousel","_BaseComponent3","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","cycle","clearInterval","_updateInterval","setInterval","visibilityState","nextWhenVisible","activeIndex","_getItemIndex","absDeltax","_keydown","_addTouchEventListeners","hasPointerPenTouch","_handleSwipe","itemImg","isNext","eventDirectionName","targetIndex","fromIndex","activeIndicator","indicators","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","_getItemByOrder","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","_triggerSlideEvent","_setActiveIndicatorElement","triggerSlidEvent","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","NAME$a","DATA_KEY$9","EVENT_KEY$9","Default$9","DefaultType$9","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_CLICK_DATA_API$4","CLASS_NAME_SHOW$7","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE$4","Collapse","_BaseComponent4","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_initializeChildren","_addAriaAndCollapsedClass","_isShown","activesData","actives","tempActiveData","elemActive","_getDimension","capitalizedDimension","scrollSize","triggerArrayLength","triggerArray","isOpen","NAME$9","EVENT_KEY$8","DATA_API_KEY$4","ESCAPE_KEY$2","SPACE_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","REGEXP_KEYDOWN","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW$6","SELECTOR_DATA_TOGGLE$3","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$8","popperConfig","autoClose","DefaultType$8","Dropdown","_BaseComponent5","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","getParentFromElement","_createPopper","_completeHide","Default","DefaultType","referenceElement","_getPopperConfig","isDisplayStatic","parentDropdown","isEnd","popperData","defaultBsPopperConfig","_getPlacement","_getOffset","toggles","composedPath","isMenuTarget","isActive","getToggleButton","_selectMenuItem","clearMenus","dataApiKeydownHandler","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","ScrollBarHelper","documentWidth","innerWidth","getWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","styleProp","scrollbarWidth","_applyManipulationCallback","_resetElementAttributes","actualValue","removeProperty","callBack","Default$7","className","rootElement","clickCallback","DefaultType$7","NAME$8","CLASS_NAME_SHOW$5","EVENT_MOUSEDOWN","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","Default$6","trapElement","autofocus","DefaultType$6","EVENT_KEY$7","EVENT_FOCUSIN$1","EVENT_KEYDOWN_TAB","TAB_NAV_BACKWARD","FocusTrap","_isActive","_lastTabNavDirection","_this$_config","_handleFocusin","_handleKeydown","NAME$6","EVENT_KEY$6","ESCAPE_KEY$1","Default$5","DefaultType$5","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS$1","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$2","CLASS_NAME_OPEN","CLASS_NAME_SHOW$4","CLASS_NAME_STATIC","Modal","_BaseComponent6","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_ignoreBackdropClick","_scrollBar","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","deactivate","_hideModal","htmlElement","modalBody","activate","_triggerBackdropTransition","_resetAdjustments","_this$_element","isModalOverflowing","isBodyOverflowing","showEvent","allReadyOpen","NAME$5","EVENT_KEY$5","DATA_API_KEY$2","EVENT_LOAD_DATA_API$1","Default$4","DefaultType$4","CLASS_NAME_SHOW$3","OPEN_SELECTOR","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_HIDE$2","EVENT_HIDDEN$2","EVENT_CLICK_DATA_API$1","EVENT_KEYDOWN_DISMISS","Offcanvas","_BaseComponent7","uriAttributes","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","br","em","hr","h3","h4","h5","h6","img","li","ol","pre","small","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","_loop2","elementName","attributeList","allowedAttributes","allowedAttributeList","nodeValue","regExp","attributeRegex","allowedAttribute","NAME$4","EVENT_KEY$4","DISALLOWED_ATTRIBUTES","DefaultType$3","template","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","Event$2","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$2","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","_BaseComponent8","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","_disposePopper","isWithContent","isInTheDom","tipId","getUID","attachment","_getAttachment","_addAttachmentClass","_tip$classList","_resolvePossibleFunction","prevHoverState","_cleanTipClass","setContent","_sanitizeAndSetContent","templateElement","setElementContent","_getDelegateConfig","_handlePopperPlacementChange","_getBasicClassPrefix","updateAttachment","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","basicClassPrefixRegex","tabClass","tClass","EVENT_KEY$3","Default$2","DefaultType$2","Event$1","Popover","_Tooltip","_getContent","NAME$2","EVENT_KEY$2","Default$1","DefaultType$1","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","SELECTOR_NAV_LINKS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","METHOD_POSITION","ScrollSpy","_BaseComponent9","_scrollElement","_targets","_activeTarget","_scrollHeight","_process","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","innerHeight","maxScroll","_getOffsetHeight","_activate","_clear","queries","link","listGroup","navItem","spy","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","Tab","_BaseComponent10","listElement","itemSelector","hideEvent","_this43","isTransitioning","_transitionComplete","dropdownChild","dropdownElement","dropdown","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","autohide","Toast","_BaseComponent11","_this44","_hasMouseInteraction","_hasKeyboardInteraction","_this45","_clearTimeout","_maybeScheduleHide","_this46","_this47","isInteracting","_this48","_onInteraction","Sizzle","pseudos","getText","isXML","escapeSelector","escape","Expr","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","booleans","whitespace","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rsibling","runescape","funescape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","els","seed","nid","groups","newSelector","newContext","getElementsByClassName","qsa","testContext","toSelector","qsaError","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","argument","matchIndexes","namespaceURI","hasCompare","subWindow","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","sortDetached","aup","ap","bp","specified","duplicates","detectDuplicates","sortStable","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","operator","what","_argument","simple","forward","ofType","uniqueCache","outerCache","nodeIndex","useCache","uniqueID","pseudo","setFilters","matcher","unmatched","lang","elemLang","hasFocus","_matchIndexes","radio","checkbox","file","password","image","submit","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","_name","_sizzle","truncate","rerrorNames","rbrace","rmultiDash","getData","removeData","_removeData","defaultDisplayMap","getDefaultDisplay","eased","swing","boolHook","removeAttr","attrHooks","bool","attrNames","lowercaseName","stripAndCollapse","getClass","classesToArray","addClass","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","attaches","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","xhr","XMLHttpRequest","xhrSuccessStatus","xhrSupported","cors","_callback","errorCallback","open","username","xhrFields","onload","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","holdReady","hold","parseJSON","isNumeric","unbind","undelegate","fnOver","fnOut","_jQuery","_$","noGlobal","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","setData","csrfParam","csrfToken","CSRFProtection","refreshCSRFTokens","initCustomEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","OPENED","accept","withCredentials","DONE","isCrossDomain","serializeElement","additionalParam","formElements","form","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","webpackPolyfill","paths","LineWithHoverChartController","getActiveElements","activePoint","topY","bottomY","getAppTheme","palette","primaryLight","primaryDark","secondary","warning","danger","light","dark","blue","indigo","purple","pink","red","orange","yellow","green","teal","white","gray","bound01","isOnePointZero","isPercent","isPercentage","clamp01","boundAlpha","convertToPercentage","pad2","rgbToHsl","hue2rgb","q","rgbToHsv","rgbToHex","allow3Char","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","aliceblue","antiquewhite","aquamarine","azure","blanchedalmond","blueviolet","brown","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gold","greenyellow","grey","honeydew","hotpink","indianred","ivory","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","springgreen","steelblue","thistle","turquoise","violet","wheat","whitesmoke","yellowgreen","inputToRGB","named","rgba","hsl","hsla","hsv","hsva","hex8","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","mod","hsvToRgb","hslToRgb","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","TinyColor","numberInputToObject","originalInput","roundA","gradientType","isValid","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","getAlpha","setAlpha","toHsv","toHsvString","toHsl","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","fmt","toPercentageRgbString","rnd","toName","_b","formatSet","formattedString","hasAlpha","toNumber","lighten","brighten","tint","shade","desaturate","greyscale","spin","rgb1","rgb2","analogous","slices","part","complement","monochromatic","modification","splitcomplement","onBackground","background","fg","bg","triad","polyad","tetrad","equals","initializeAllLineCharts","chartCanvasEl","seriesLabel","series","pointRadius","pointHoverBackgroundColor","pointHoverRadius","pointHitRadius","pointBackgroundColor","currency","getGBPTooltipLabel","_objectSpread2","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","substring","getParentOrHost","includeCTX","_throttleTimeout","R_SPACE","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","containerRect","elMatrix","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","includeDragEl","currentChild","Sortable","ghost","dragged","draggable","lastElementChild","getRelativeScrollOffset","winScroller","includeSelf","gotSelf","elemCSS","isRectEqual","rect1","rect2","throttle","ms","scrollBy","Polymer","Zepto","dom","getTime","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animationResetTimer","currentRect","translateX","translateY","animatingX","animatingY","forRepaintDummy","repaint","initializeByDefault","PluginManager","mount","pluginName","pluginEvent","sortable","eventCanceled","eventNameGlobal","initializePlugins","initialized","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","putSortable","extraEventProperties","onName","pullMode","lastPutMode","allEventProperties","_excluded","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","pointerEvents","_detectDirection","elCSS","elWidth","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","nearestEmptyInsertDetectEvent","emptyInsertThreshold","insideHorizontally","insideVertically","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","store","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","relatedRect","_disableDraggable","_unsilent","_generateId","sum","_nextTick","_cancelNextTick","_getDirection","originalTarget","_saveInputCheckedState","isContentEditable","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","getSelection","removeAllRanges","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","elLastChild","spacer","_ghostIsLast","_ghostIsFirst","targetBeforeFirstSwap","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","_getInsertDirection","_getSwapDirection","dragIndex","moveVector","insertion","_showClone","_offMoveEvents","_offUpEvents","dropEffect","_globalDragOver","useAnimation","utils","dst","nextTick","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scrollCustomFn","sens","scrollSensitivity","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","onSpill","Revert","Remove","dragStart","parentSortable","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","utils_1","DEFAULT_CLASSNAMES","containerOuter","containerInner","containerInnerFocusState","inputCloned","listItems","listSingle","listDropdown","itemSelectable","itemDisabled","itemChoice","placeholder","groupHeading","activeState","focusState","openState","disabledState","highlightedState","selectedState","flippedState","loadingState","noResults","noChoices","DEFAULT_CONFIG","choices","silent","renderChoiceLimit","maxItemCount","addItems","addItemFilter","removeItems","removeItemButton","editItems","duplicateItemsAllowed","delimiter","paste","searchEnabled","searchChoices","searchFloor","searchResultLimit","searchFields","resetScrollPosition","shouldSort","shouldSortItems","sortByAlpha","placeholderValue","searchPlaceholderValue","prependValue","appendValue","renderSelectedChoices","loadingText","noResultsText","noChoicesText","itemSelectText","uniqueItemText","customAddItemText","addItemText","sanitise","maxItemText","valueComparer","value1","value2","fuseOptions","includeScore","callbackOnInit","callbackOnCreateTemplates","EVENTS","showDropdown","hideDropdown","choice","search","addItem","removeItem","highlightItem","highlightChoice","unhighlightItem","ACTION_TYPES","ADD_CHOICE","FILTER_CHOICES","ACTIVATE_CHOICES","CLEAR_CHOICES","ADD_GROUP","ADD_ITEM","REMOVE_ITEM","HIGHLIGHT_ITEM","CLEAR_ALL","RESET_TO","SET_IS_LOADING","KEY_CODES","BACK_KEY","DELETE_KEY","ENTER_KEY","A_KEY","ESC_KEY","UP_KEY","DOWN_KEY","PAGE_UP_KEY","PAGE_DOWN_KEY","TEXT_TYPE","SELECT_ONE_TYPE","SELECT_MULTIPLE_TYPE","SCROLLING_SPEED","tmpEl","getRandomNumber","generateChars","generateId","getType","isType","wrapper","getAdjacentEl","startEl","isScrolledIntoView","strToEl","cleanedInput","firldChild","_c","label2","localeCompare","sensitivity","ignorePunctuation","sortByScore","score","scoreA","customArgs","existsInArray","cloneObject","aKeys","bKeys","__webpack_exports__","_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__","ActionTypes","applyMiddleware","bindActionCreators","combineReducers","compose","createStore","symbol_observable__WEBPACK_IMPORTED_MODULE_0__","randomString","INIT","REPLACE","PROBE_UNKNOWN_ACTION","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","getState","subscribe","isSubscribed","replaceReducer","nextReducer","observable","outerSubscribe","observeState","unsubscribe","getUndefinedStateErrorMessage","actionType","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","nextState","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreator","actionCreators","boundActionCreators","funcs","middlewares","_dispatch","middlewareAPI","chain","middleware","__importDefault","redux_1","items_1","groups_1","choices_1","loading_1","defaultState","loading","appReducer","passedState","WrappedElement","HTMLInputElement","HTMLSelectElement","conceal","origStyle","reveal","enable","triggerEvent","symbolObservablePonyfill","_Symbol","__spreadArrays","il","jl","fuse_js_1","deepmerge_1","store_1","components_1","constants_1","templates_1","misc_1","reducers_1","IS_IE11","USER_DEFAULTS","Choices","arrayMerge","sourceArray","invalidConfigOptions","passedElement","_isTextElement","_isSelectOneElement","_isSelectMultipleElement","_isSelectElement","re","WrappedInput","WrappedSelect","_templates","initialised","_store","_initialState","_currentState","_prevState","_currentValue","_canSearch","_isScrollingOnIe","_highlightPosition","_wasTap","_placeholderValue","_generatePlaceholderValue","_baseId","_direction","elementDirection","_idNames","_presetGroups","optionGroups","_presetOptions","_presetChoices","_presetItems","splitValues","customProperties","_render","_onFocus","_onBlur","_onKeyUp","_onKeyDown","_onClick","_onTouchEnd","_onMouseDown","_onMouseOver","_onFormReset","_onSelectKey","_onEnterKey","_onEscapeKey","_onDirectionKey","_onDeleteKey","preventExtensions","templates","_createTemplates","_createElements","_createStructure","_removeEventListeners","clearStore","runEvent","groupId","getGroupById","groupValue","highlightAll","unhighlightAll","removeActiveItemsByValue","activeItems","_removeItem","removeActiveItems","excludedId","removeHighlightedItems","highlightedActiveItems","_triggerChange","preventInputFocus","distanceFromTopWindow","preventInputBlur","close","removeActiveDescendant","getValue","valueOnly","selectedItems","itemValue","setValue","_setChoiceOrItem","setChoiceByValue","_findAndSelectChoiceByValue","setChoices","choicesArrayOrFetcher","replaceChoices","clearChoices","fetcher_1","_handleLoadingState","removeLoadingState","_startLoading","groupOrChoice","_addGroup","valueKey","labelKey","_addChoice","isSelected","_stopLoading","clearAll","clearInput","shouldSetInputWidth","_isSearching","activateChoices","isLoading","stateChanged","shouldRenderChoices","shouldRenderItems","_renderChoices","_renderItems","activeGroups","activeChoices","choiceListFragment","choiceList","scrollToTop","activePlaceholders","activeChoice","_createChoicesFragment","_createGroupsFragment","canAddItem","_canAddItem","_highlightChoice","notice","_getTemplate","dropdownItem","itemList","itemListFragment","_createItemsFragment","groupChoices","getGroupChoices","dropdownGroup","withinGroup","appendChoice","rendererableChoices","placeholderChoices","normalChoices","choiceLimit","sortedChoices","listItem","_selectPlaceholderChoice","placeholderChoice","_addItem","choiceId","_handleButtonAction","itemId","itemToRemove","_handleItemAction","hasShiftKey","passedId","highlighted","_handleChoiceAction","getChoiceById","passedKeyCode","hasActiveDropdown","_handleBackspace","lastItem","hasHighlightedItems","setIsLoading","setLoading","placeholderItem","addLoadingState","_handleSearch","isFocussed","hasUnactiveChoices","resultCount","_searchChoices","isDuplicateValue","newValue","haystack","searchableChoices","needle","includeMatches","filterChoices","addEventListeners","removeEventListeners","hasFocusedInput","hasItems","hasChildren","keyString","wasAlphaNumericChar","backKey","deleteKey","outerHTML","userHasRemovedValue","canReactivateChoices","canSearch","enterKey","targetWasButton","highlightedChoice","downKey","pageUpKey","pageDownKey","directionInt","selectableChoiceIdentifier","currentEl","scrollToChildElement","firstChoice","isOnScrollbar","removeFocusState","removeInnerFocusState","addInnerFocusState","addFocusState","hasHighlightedItems_1","resetTo","passedEl","setActiveDescendant","_f","_g","passedValue","passedLabel","passedOptionId","_h","choiceLabel","choiceElementId","addChoice","elementId","addGroup","isOptDisabled","userTemplates","Container","Input","preventPaste","List","_addPredefinedGroups","_addPredefinedChoices","_addPredefinedItems","placeholderOption","hasSelectedChoice","firstEnabledChoiceIndex","foundChoice","maxPatternLength","caseSensitive","tokenSeparator","findAllMatches","minMatchCharLength","getFn","sortFn","matchAllTokens","verbose","isCaseSensitive","setCollection","_log","_prepareSearchers","tokenSearchers","fullSearcher","_search","weights","_computeScore","_sort","_analyze","record","resultMap","arrayIndex","isMatch","output","matchedIndices","nScore","indices","patternAlphabet","errors","currentLocation","expectedLocation","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getKeys","symbol","getEnumerableOwnPropertySymbols","mergeObject","destination","unused","propertyIsUnsafe","customMerge","getMergeFunction","sourceIsArray","index_1","Store","__REDUX_DEVTOOLS_EXTENSION__","onChange","selectableChoices","hasActiveOptions","Function","originalModule","addItemAction","highlightItemAction_1","addGroupAction","addChoiceAction","addItemAction_1","removeItemAction_1","filterChoicesAction_1","activateChoicesAction_1","dropdown_1","container_1","input_1","list_1","wrapped_input_1","wrapped_select_1","isFlipped","shouldFlip","dropdownPos","matchMedia","activeDescendantID","isEqualNode","_onPaste","_onInput","scrollPos","hasChildNodes","listHeight","listScrollPosition","elementHeight","elementPos","_animateScroll","_scrollDown","strength","_scrollUp","choiceListScrollTop","continueAnimation","_extendStatics","__extends","__","optionData","appendDocFragment","isSelectElement","isSelectOneElement","passedElementType","isPlaceholder","deletable","REMOVE_ITEM_TEXT","removeButton","choiceGroup","selectText","choiceDisabled","choiceSelectable","inp","autocomplete","autocapitalize","spellcheck","Option","arrayRange","selectOptions","sortableOpts","onUpdate","tableBodyEl","updateUrl","reqOpts","csrfTokenMetaTagEl","ids_in_new_order","initializeAllSortableTables","initializeAllChoicesSelect","selects","selectEl","containerInnerExtraClass","numberToCurrency","currencyDisplay","toLocaleString","eventId","stringAttributes","currencyAttributes","htmlOutput","ToggleIf","$this","showIfValue","showElement","hideElement","hideIfValue","ToggleRadioIf","toggleValue","_index","ToggleCheckboxIf","ToggleSelectIf","donation","currency_code","total_price","updatePriceBreakdown","details","toggleStripeCardDetails","modalId","cardNumber","cardCvc","cardExpiry","idealBank","stripe","Stripe","handleElementError","cardTypeInput","handleCardTypeChange","errorElement","hidePleaseWaitModal","modalPleaseWait","createPaymentMethod","ideal","billing_details","card","createPaymentMethodHandler","alert","unmount","showErrorMessage","confirmPayment","payment_method_id","paymentMethod","formData","paymentConfirmationPath","redirected","requires_action","handleCardAction","client_secret","handleResponseAction","payment_intent_id","paymentIntent","redirect_to_url","handleAction","handleServerResponse","payBtn","buttonTxt","innerText","appearance","theme","paymentMethodCreation","paymentElementOptions","hideErrorMessage","submitError","showPleaseWaitModal","stringOrObject","confirmPaymentPath","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","api","converter","defaultAttributes","expires","toUTCString","decodeURIComponent","stringifiedAttributes","cookie","cookies","jar","foundKey","withAttributes","withConverter","_e5","_e6","_s2","crypto","getRandomValues","Uint8Array","delimiters","tagTextProp","maxTags","addTagOnBlur","whitelist","blacklist","enforceWhitelist","userInput","keepInvalidTags","mixTagsAllowedAfter","mixTagsInterpolator","backspace","skipInvalid","pasteAsTags","editTags","clicks","keepInvalid","transformTag","a11y","focusableTags","mixMode","insertAfterTag","autoComplete","rightKey","selectMode","tagNoAnimation","tagInvalid","tagNotAllowed","scopeLoading","hasMaxTags","hasNoTags","inputInvalid","dropdownWrapper","dropdownHeader","dropdownFooter","dropdownItemActive","dropdownInital","tagText","tagX","tagLoading","tagEditing","tagFlash","tagHide","classname","maxItems","searchKeys","fuzzySearch","accentedSearch","highlightFirst","closeOnSelect","clearOnSelect","appendTarget","beforeRemoveTag","beforePaste","suggestionClick","_t","_dropdown","refs","DOM","parseTemplate","inputText","dropdownItemNoMatch","dropdownHide__bindEventsTimeout","suggestedListItems","filterListItems","editing","suggest","highlightOption","query","setStateSelection","ddItemData","ddItemElm","flaggedTags","baseOffset","createListHTML","dropdownContent","refilter","placeAbove","getCaretGlobalPosition","onKeyDown","onMouseOver","onMouseLeave","onScroll","dropdownItemActiveSelector","getSuggestionDataByNode","actions","ArrowLeft","getMappedValue","tagify","tagData","suggestionElm","selectOption","addTags","_t2","removeTags","editTag","dropdownItemSelector","percentage","getNodeIndex","elm","onEditTagDone","__isValid","normalizeTags","toggleFocusClass","selectAll","suggestions","isTagDuplicate","_t3","_u","_T","exact","sortby","mapValueTo","exceed","duplicate","notAllowed","customBinding","customEventsList","mainEvents","bindGlobal","isJQueryPlugin","removeAllTags","onFocusBlur","keydown","onKeydown","onClickScope","dblclick","onDoubleClickScope","onPaste","onDrop","originalInputValueObserverInterval","observeOriginalInputValue","inputMutationObserver","onInputDOMChange","isIE","onWindowKeyDown","unbindGlobal","addNew","postUpdate","triggerChangeEvent","_t4","getWhitelistItem","readonly","cloneEvent","anchorOffset","anchorNode","previousSibling","getTagElms","placeCaretAfterNode","fixFirefoxLastTagNoCaret","_t5","inputSuggestion","_s3","onInput","onMixTagsInput","inputElm","validateTag","getRangeAt","inputType","createTagElem","insertNode","setRangeAtStartEnd","withoutChangeEvent","rangeCount","cloneRange","collapse","setStart","focusNode","endOffset","matchedPatternCount","onInputIE","tagifyValue","loadOriginalValues","clipboardData","pastedText","injectAtCaret","onEditTagInput","__tagifyTagData","__originalHTML","originalIsValid","onEditTagFocus","onEditTagBlur","__originalData","_g2","class","onEditTagkeydown","tagSelector","cloneData","InstallTrigger","documentMode","getPersistedData","localStorage","getItem","setPersistedData","setItem","clearPersistedData","_t6","applySettings","build","getCSSVars","helpers","sameStr","removeCollectionProp","omit","escapeHTML","concatWithoutDups","isNodeTag","dataProps","required","getAttributes","_t7","TEXTS","texts","getCustomAttributes","startContainer","_s4","startOffset","createRange","setEnd","CSSVars","tagHideTransition","integrated","originalInput_tabIndex","inputSelector","blockChangeEvent","_e4","parseMixTags","insertAdjacentHTML","lastOriginalValueReported","simulated","_valueTracker","setStartAfter","addRange","getLastTag","tagTextSelector","editable","skipValidation","editTagToggleValidity","removeTagsFromValue","previousData","replaceTag","reCheckInvalidTags","getInvalidTagAttrs","updateValueByDOMTags","deleteContents","validate","replaceTextWithNode","getTagIdx","__tagId","getTagIndexByValue","getTagElmByValue","flashTag","isTagBlacklisted","isTagWhitelisted","setReadonly","setContentEditable","contentEditable","setDisabled","splitText","selectTag","appendTag","addEmptyTag","addMixTags","__preInvalidData","prefixedTextToTag","createNodeIterator","NodeFilter","SHOW_TEXT","nextNode","__removed","removeTagsFromDOM","setOriginalInputValue","getInputValue","getCleanValue","getMixedTagsAsString","originalInputValueFormat","_o","removeTag","_dir","_callback2","definitionsFromContext","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","require","elementPoll","poll_status","redirect_to","fc","_typeof2","_WINDOW","_DOCUMENT","_ref$userAgent","WINDOW","DOCUMENT","PRODUCTION","shims","defineIcons","icons","_params$skipHooks","skipHooks","iconName","icon","addPack","bunker","_MUTATION_OBSERVER","_PERFORMANCE","performance","MUTATION_OBSERVER","PERFORMANCE","IS_BROWSER","IS_DOM","IS_IE","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PREFIX_TO_STYLE","STYLE_TO_PREFIX","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","RESERVED_CLASSES","FontAwesomeConfig","coerce","getAttrConfig","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","functions","loaded","domready","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","emit","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","invokeCallback","subscriber","settled","handleThenable","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","race","picked","meaninglessTransform","flipX","flipY","insertCss","headChildren","beforeChild","nextUniqueId","classArray","getIconName","cls","htmlEscape","joinStyles","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","innerTranslate","innerScale","innerRotate","ALL_SPACE","fillBlack","abstract","force","makeInlineSvgAbstract","_params$icons","mask","maskId","titleId","_params$watchable","watchable","found","isUploadedIcon","widthClass","attrClass","role","uploadedIconWidthStyle","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","makeLayersCounterAbstract","noop$1","preamble","perf","subject","initialValue","thisContext","bindInternal4","unicode","_byUnicode","_byLigature","_byOldName","lookup","ligatures","ligature","hasRegular","shim","oldName","byUnicode","styles$1","getCanonicalIcon","autoFetchSvg","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","joinAttributes","noop$2","isWatched","mutators","newOuterHTML","newNode","nest","forSvg","splitClasses","toSvg","toNode","newInnerHTML","performOperationSync","op","perform","callbackFunction","frame","mutator","enableObservation","mo","treeCallback","nodeCallback","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","mutationRecord","_getCanonicalIcon","characterData","classParser","existingPrefix","existingIconName","parseTransformString","transformString","parseMeta","_classParser","extraClasses","extraStyles","styleParser","transformParser","symbolParser","extraAttributes","attributesParser","maskParser","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","missing","cx","cy","styles$2","asFoundIcon","vectorData","findIcon","styles$3","generateMutation","nodeMeta","computedFontSize","boundingClientRect","generateLayersText","generateSvgReplacementMutation","onTree","htmlClassList","hclAdd","hclRemove","prefixesDomQuery","candidates","resolvedMutations","onNode","replaceForPosition","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","_content","hexValue","iconIdentifier","processable","operations","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","Library","additions","_pullDefinitions","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","findIconDefinition","iconLookup","_iconLookup$prefix","library","i2svg","_params$node","_params$callback","watch","autoReplaceSvgRoot","autoReplace","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","noAuto","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","counter","_params$title3","_params$classes3","_params$attributes3","_params$styles3","assembler","_params$classes4","_params$autoReplaceSv","FontAwesome","addShims","_namespace$shims","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","browser","env","argv","versions","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","cocoon_element_counter","create_new_id","newcontent_braced","newcontent_underscord","assoc","assocs","insertionMethod","insertionNode","insertionTraversal","regexp_braced","regexp_underscord","new_id","new_content","new_contents","insertionNodeElem","getInsertionNodeElem","contentNode","before_insert","wrapper_class","node_to_delete","trigger_node","before_remove","webpackContext","req","webpackContextResolve","buttonTarget","containerTarget","statistics","stat","urlValue","currencyValue","countdownTimer","basket_time_remaining","countdownTarget","seconds","minutes","remainingSeconds","formattedMinutes","formattedSeconds","countryToggle","brandCheckboxTargets","countryCode","singleCountryValue","singleCountry","Cookies","ticketId","ticketQuantity","products","product","quantity","quantitySelectTargets","quantitySelect","productId","existingSelect","optionLabels","quantity_max","inputTarget","outputTarget","files","FileReader","readAsDataURL","tagifiedInput","Tagify","responseJSON","spinnerTarget","validTarget","invalidTarget","childCheckboxes","btnEmailSelection","btnEmailYesTarget","divEmailYesTarget","btnEmailNoTarget","divEmailNoTarget","btnRelationshipRetiredTarget","btnRelationshipVolunteerTarget","btnRelationshipSelection","divRelationshipRetiredTarget","divRelationshipVolunteerTarget","btnIAgreeTarget","divSubmitEvidenceTarget","btnRelationshipStudentTarget","divRelationshipStudentTarget","btnRelationshipContractorTarget","divRelationshipContractorTarget","student","contractor","retired","divIAgreeTarget","fullFormContainerTarget","unnamedUnionContainerTarget","unionMessageContainerTarget","employerSelectTarget","unionValue","otherUnion","noUnion","freeFormUnionContainerTarget","workEmailConfirmationTargets","handleSelection","emailLabelTarget","emailConfirmationLabelTarget","personalEmailLabelTarget","personalEmailConfirmationLabelTarget","personalEmailHintTarget","labelElement","newLabelValue","TEXT_NODE","selectTarget","quantityAvailable","quantityAvailableTarget","minAvailable","minAvailableTarget","maxAvailable","maxAvailableTarget","quantityStep","quantityStepTarget","actualMax","outputHtmlTarget","outputSelectTarget","resetBasketTimerEvent","cartTotal","modalTarget","cartItemID","cartItemId","cart","transaction","ticket_id","altered","modalTransactionErrorMessageTarget","modalTransactionEventTitleTarget","event_title","modalTransactionTicketTitleTarget","ticket_title","modalTransactionQuantityRequestedTarget","quantity_requested_tickets","modalTransactionQuantityFulfilledTarget","quantity_fulfilled_tickets","modalSpinnerTargets","modalConnectionErrorTargets","modalTransactionErrorTargets","productItemID","quantity_requested_products","quantity_fulfilled_products","cartData","cartItem","priceTargets","rawPriceTargets","bookingFeeTargets","quantityTargets","rawFeesTargets","subtotal","subtotalTargets","donationSelectTarget","donationTarget","totalPriceTarget","hasVatAmountTarget","vatAmountTarget","cartItemProduct","totalPrice","quantity_options","productTicketId","cartItemFeesData","cartItemFee","ticketFeeId","byTicketFee","ticketFeeValueTargets","ticketFeeTotalTargets","cartItemProductId","modalConnectionErrorMessageTarget"],"mappings":"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","file":"js/application-15ed1a95ccf738087ed3.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"//packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 327);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\ndefine([\"./var/arr\", \"./var/getProto\", \"./var/slice\", \"./var/flat\", \"./var/push\", \"./var/indexOf\", \"./var/class2type\", \"./var/toString\", \"./var/hasOwn\", \"./var/fnToString\", \"./var/ObjectFunctionString\", \"./var/support\", \"./var/isFunction\", \"./var/isWindow\", \"./core/DOMEval\", \"./core/toType\"], function (arr, getProto, _slice, flat, push, indexOf, class2type, toString, hasOwn, fnToString, ObjectFunctionString, support, isFunction, isWindow, DOMEval, toType) {\n \"use strict\";\n\n var version = \"3.6.0\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n return jQuery;\n});","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","define(function () {\n \"use strict\";\n\n return function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n});","define(function () {\n \"use strict\";\n\n return window.document;\n});","define([\"./selector-sizzle\"], function () {\n \"use strict\";\n});","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","// Initialize a jQuery object\ndefine([\"../core\", \"../var/document\", \"../var/isFunction\", \"./var/rsingleTag\", \"../traversing/findFilter\"], function (jQuery, document, isFunction, rsingleTag) {\n \"use strict\"; // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n return init;\n});","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","define(function () {\n \"use strict\";\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n return nodeName;\n});","define(function () {\n \"use strict\"; // Only count HTML whitespace\n // Other whitespace should count in values\n // https://infra.spec.whatwg.org/#ascii-whitespace\n\n return /[^\\x20\\t\\r\\n\\f]+/g;\n});","define(function () {\n \"use strict\"; // All support tests are defined in their respective modules.\n\n return {};\n});","define([\"../core\", \"../core/toType\", \"../var/isFunction\"], function (jQuery, toType, isFunction) {\n \"use strict\"; // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n };\n\n return access;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./var/document\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./ajax/var/location\", \"./ajax/var/nonce\", \"./ajax/var/rquery\", \"./core/init\", \"./core/parseXML\", \"./event/trigger\", \"./deferred\", \"./serialize\" // jQuery.param\n], function (jQuery, document, isFunction, rnothtmlwhite, location, nonce, rquery) {\n \"use strict\";\n\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (_typeof(url) === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script but not if jsonp\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n return jQuery;\n});","// import { isHTMLElement } from './instanceOf';\nexport default function getBoundingClientRect(element, // eslint-disable-next-line unused-imports/no-unused-vars\nincludeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1; // FIXME:\n // `offsetWidth` returns an integer while `getBoundingClientRect`\n // returns a float. This results in `scaleX` or `scaleY` being\n // non-1 when it should be for elements that aren't a full pixel in\n // width or height.\n // if (isHTMLElement(element) && includeScale) {\n // const offsetHeight = element.offsetHeight;\n // const offsetWidth = element.offsetWidth;\n // // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // // Fallback to 1 in case both values are `0`\n // if (offsetWidth > 0) {\n // scaleX = rect.width / offsetWidth || 1;\n // }\n // if (offsetHeight > 0) {\n // scaleY = rect.height / offsetHeight || 1;\n // }\n // }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"../var/class2type\", \"../var/toString\"], function (class2type, toString) {\n \"use strict\";\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n }\n\n return toType;\n});","define([\"./core\", \"./var/getProto\", \"./var/indexOf\", \"./traversing/var/dir\", \"./traversing/var/siblings\", \"./traversing/var/rneedsContext\", \"./core/nodeName\", \"./core/init\", \"./traversing/findFilter\", \"./selector\"], function (jQuery, getProto, indexOf, dir, _siblings, rneedsContext, nodeName) {\n \"use strict\";\n\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./var/isFunction\", \"./var/slice\", \"./callbacks\"], function (jQuery, isFunction, slice) {\n \"use strict\";\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function\n /* fnDone, fnFail, fnProgress */\n pipe() {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n\n return primary.promise();\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./var/document\", \"./var/documentElement\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./var/rcheckableType\", \"./var/slice\", \"./data/var/acceptData\", \"./data/var/dataPriv\", \"./core/nodeName\", \"./core/init\", \"./selector\"], function (jQuery, document, documentElement, isFunction, rnothtmlwhite, rcheckableType, slice, acceptData, dataPriv, nodeName) {\n \"use strict\";\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault(); // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n\n return result && result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n // Suppress native focus or blur as it's already being fired\n // in leverageNative.\n _default: function _default() {\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n return jQuery;\n});","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","define(function () {\n \"use strict\";\n\n return [];\n});","define(function () {\n \"use strict\";\n\n return function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n});","define([], function () {\n \"use strict\"; // Matches dashed string for camelizing\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n return camelCase;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./core/access\", \"./core/camelCase\", \"./core/nodeName\", \"./var/rcssNum\", \"./css/var/rnumnonpx\", \"./css/var/cssExpand\", \"./css/var/getStyles\", \"./css/var/swap\", \"./css/curCSS\", \"./css/adjustCSS\", \"./css/addGetHookIf\", \"./css/support\", \"./css/finalPropName\", \"./core/init\", \"./core/ready\", \"./selector\" // contains\n], function (jQuery, access, camelCase, nodeName, rcssNum, rnumnonpx, cssExpand, getStyles, swap, curCSS, adjustCSS, addGetHookIf, support, finalPropName) {\n \"use strict\";\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n return jQuery;\n});","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = rect.width / element.offsetWidth || 1;\n var scaleY = rect.height / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.slice;\n});","define(function () {\n \"use strict\"; // [[Class]] -> type pairs\n\n return {};\n});","define(function () {\n \"use strict\";\n /**\n * Determines whether an object can have data\n */\n\n return function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n});","define([\"../core\", \"../var/documentElement\", \"../selector\" // jQuery.contains\n], function (jQuery, documentElement) {\n \"use strict\";\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n return isAttached;\n});","define([\"./document\"], function (document) {\n \"use strict\";\n\n return document.documentElement;\n});","define([\"./core\", \"./core/isAttached\", \"./var/flat\", \"./var/isFunction\", \"./var/push\", \"./var/rcheckableType\", \"./core/access\", \"./manipulation/var/rtagName\", \"./manipulation/var/rscriptType\", \"./manipulation/wrapMap\", \"./manipulation/getAll\", \"./manipulation/setGlobalEval\", \"./manipulation/buildFragment\", \"./manipulation/support\", \"./data/var/dataPriv\", \"./data/var/dataUser\", \"./data/var/acceptData\", \"./core/DOMEval\", \"./core/nodeName\", \"./core/init\", \"./traversing\", \"./selector\", \"./event\"], function (jQuery, isAttached, flat, isFunction, push, rcheckableType, access, rtagName, rscriptType, wrapMap, getAll, setGlobalEval, buildFragment, support, dataPriv, dataUser, acceptData, DOMEval, nodeName) {\n \"use strict\";\n\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n return jQuery;\n});","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport default function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","define([\"./core\", \"./selector\", \"./traversing\", \"./callbacks\", \"./deferred\", \"./deferred/exceptionHook\", \"./core/ready\", \"./data\", \"./queue\", \"./queue/delay\", \"./attributes\", \"./event\", \"./event/focusin\", \"./manipulation\", \"./manipulation/_evalUrl\", \"./wrap\", \"./css\", \"./css/hiddenVisibleSelectors\", \"./serialize\", \"./ajax\", \"./ajax/xhr\", \"./ajax/script\", \"./ajax/jsonp\", \"./ajax/load\", \"./core/parseXML\", \"./core/parseHTML\", \"./effects\", \"./effects/animatedSelector\", \"./offset\", \"./dimensions\", \"./deprecated\", \"./exports/amd\", \"./exports/global\"], function (jQuery) {\n \"use strict\";\n\n return jQuery;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.indexOf;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.hasOwnProperty;\n});","define([\"./core\", \"./core/toType\", \"./var/isFunction\", \"./var/rnothtmlwhite\"], function (jQuery, toType, isFunction, rnothtmlwhite) {\n \"use strict\"; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n return jQuery;\n});","define([\"./core\", \"./data/var/dataPriv\", \"./deferred\", \"./callbacks\"], function (jQuery, dataPriv) {\n \"use strict\";\n\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./core/camelCase\", \"./var/document\", \"./var/isFunction\", \"./var/rcssNum\", \"./var/rnothtmlwhite\", \"./css/var/cssExpand\", \"./css/var/isHiddenWithinTree\", \"./css/adjustCSS\", \"./data/var/dataPriv\", \"./css/showHide\", \"./core/init\", \"./queue\", \"./deferred\", \"./traversing\", \"./manipulation\", \"./css\", \"./effects/Tween\"], function (jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand, isHiddenWithinTree, adjustCSS, dataPriv, showHide) {\n \"use strict\";\n\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n };\n return jQuery;\n});","define([\"../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n});","define(function () {\n \"use strict\";\n\n return [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n});","define(function () {\n \"use strict\";\n\n return /^(?:checkbox|radio)$/i;\n});","define([\"../../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n});","define([\"../core\", \"../var/document\", \"../var/documentElement\", \"../var/support\"], function (jQuery, document, documentElement, support) {\n \"use strict\";\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\"; // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\"; // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n return support;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n return support;\n});","define([\"../var/rnothtmlwhite\"], function (rnothtmlwhite) {\n \"use strict\"; // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n return stripAndCollapse;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"../core\", \"../var/document\", \"../data/var/dataPriv\", \"../data/var/acceptData\", \"../var/hasOwn\", \"../var/isFunction\", \"../var/isWindow\", \"../event\"], function (jQuery, document, dataPriv, acceptData, hasOwn, isFunction, isWindow) {\n \"use strict\";\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n return jQuery;\n});","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(round(x * dpr) / dpr) || 0,\n y: round(round(y * dpr) / dpr) || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name; // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/*!\n * Chart.js v3.6.0\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\nvar requestAnimFrame = function () {\n if (typeof window === 'undefined') {\n return function (callback) {\n return callback();\n };\n }\n\n return window.requestAnimationFrame;\n}();\n\nfunction throttled(fn, thisArg, updateFn) {\n var updateArgs = updateFn || function (args) {\n return Array.prototype.slice.call(args);\n };\n\n var ticking = false;\n var args = [];\n return function () {\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n\n args = updateArgs(rest);\n\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, function () {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\n\nfunction debounce(fn, delay) {\n var timeout;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n\n return delay;\n };\n}\n\nvar _toLeftRightCenter = function _toLeftRightCenter(align) {\n return align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n};\n\nvar _alignStartEnd = function _alignStartEnd(align, start, end) {\n return align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n};\n\nvar _textX = function _textX(align, left, right, rtl) {\n var check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\n\nvar uid = function () {\n var id = 0;\n return function () {\n return id++;\n };\n}();\n\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\n\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n\n var type = Object.prototype.toString.call(value);\n\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n\n return false;\n}\n\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\nvar isNumberFinite = function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n};\n\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nvar toPercentage = function toPercentage(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : value / dimension;\n};\n\nvar toDimension = function toDimension(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n};\n\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\nfunction each(loopable, fn, thisArg, reverse) {\n var i, len, keys;\n\n if (isArray(loopable)) {\n len = loopable.length;\n\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\nfunction _elementsEqual(a0, a1) {\n var i, ilen, v0, v1;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n\n if (isObject(source)) {\n var target = Object.create(null);\n var keys = Object.keys(source);\n var klen = keys.length;\n var k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\n\nfunction merge(target, source, options) {\n var sources = isArray(source) ? source : [source];\n var ilen = sources.length;\n\n if (!isObject(target)) {\n return target;\n }\n\n options = options || {};\n var merger = options.merger || _merger;\n\n for (var i = 0; i < ilen; ++i) {\n source = sources[i];\n\n if (!isObject(source)) {\n continue;\n }\n\n var keys = Object.keys(source);\n\n for (var k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n\n return target;\n}\n\nfunction mergeIf(target, source) {\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\n\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\nvar emptyString = '';\nvar dot = '.';\n\nfunction indexOfDotOrLength(key, start) {\n var idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\n\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n\n var pos = 0;\n var idx = indexOfDotOrLength(key, pos);\n\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n\n return obj;\n}\n\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nvar defined = function defined(value) {\n return typeof value !== 'undefined';\n};\n\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n\nvar setsEqual = function setsEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n\n var _iterator = _createForOfIteratorHelper(a),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n\n if (!b.has(item)) {\n return false;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return true;\n};\n\nvar PI = Math.PI;\nvar TAU = 2 * PI;\nvar PITAU = TAU + PI;\nvar INFINITY = Number.POSITIVE_INFINITY;\nvar RAD_PER_DEG = PI / 180;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\nvar log10 = Math.log10;\nvar sign = Math.sign;\n\nfunction niceNum(range) {\n var roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n var niceRange = Math.pow(10, Math.floor(log10(range)));\n var fraction = range / niceRange;\n var niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\nfunction _factorize(value) {\n var result = [];\n var sqrt = Math.sqrt(value);\n var i;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n\n result.sort(function (a, b) {\n return a - b;\n }).pop();\n return result;\n}\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n\nfunction almostWhole(x, epsilon) {\n var rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n\nfunction _setMinAndMaxByKey(array, target, property) {\n var i, ilen, value;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\n\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n\n var e = 1;\n var p = 0;\n\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n var distanceFromXCenter = anglePoint.x - centrePoint.x;\n var distanceFromYCenter = anglePoint.y - centrePoint.y;\n var radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < -0.5 * PI) {\n angle += TAU;\n }\n\n return {\n angle: angle,\n distance: radialDistanceFromCenter\n };\n}\n\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n var a = _normalizeAngle(angle);\n\n var s = _normalizeAngle(start);\n\n var e = _normalizeAngle(end);\n\n var angleToStart = _normalizeAngle(s - a);\n\n var angleToEnd = _normalizeAngle(e - a);\n\n var startToAngle = _normalizeAngle(a - s);\n\n var endToAngle = _normalizeAngle(a - e);\n\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n\nvar atEdge = function atEdge(t) {\n return t === 0 || t === 1;\n};\n\nvar elasticIn = function elasticIn(t, s, p) {\n return -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\n};\n\nvar elasticOut = function elasticOut(t, s, p) {\n return Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n};\n\nvar effects = {\n linear: function linear(t) {\n return t;\n },\n easeInQuad: function easeInQuad(t) {\n return t * t;\n },\n easeOutQuad: function easeOutQuad(t) {\n return -t * (t - 2);\n },\n easeInOutQuad: function easeInOutQuad(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1);\n },\n easeInCubic: function easeInCubic(t) {\n return t * t * t;\n },\n easeOutCubic: function easeOutCubic(t) {\n return (t -= 1) * t * t + 1;\n },\n easeInOutCubic: function easeInOutCubic(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2);\n },\n easeInQuart: function easeInQuart(t) {\n return t * t * t * t;\n },\n easeOutQuart: function easeOutQuart(t) {\n return -((t -= 1) * t * t * t - 1);\n },\n easeInOutQuart: function easeInOutQuart(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2);\n },\n easeInQuint: function easeInQuint(t) {\n return t * t * t * t * t;\n },\n easeOutQuint: function easeOutQuint(t) {\n return (t -= 1) * t * t * t * t + 1;\n },\n easeInOutQuint: function easeInOutQuint(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2);\n },\n easeInSine: function easeInSine(t) {\n return -Math.cos(t * HALF_PI) + 1;\n },\n easeOutSine: function easeOutSine(t) {\n return Math.sin(t * HALF_PI);\n },\n easeInOutSine: function easeInOutSine(t) {\n return -0.5 * (Math.cos(PI * t) - 1);\n },\n easeInExpo: function easeInExpo(t) {\n return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));\n },\n easeOutExpo: function easeOutExpo(t) {\n return t === 1 ? 1 : -Math.pow(2, -10 * t) + 1;\n },\n easeInOutExpo: function easeInOutExpo(t) {\n return atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2);\n },\n easeInCirc: function easeInCirc(t) {\n return t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1);\n },\n easeOutCirc: function easeOutCirc(t) {\n return Math.sqrt(1 - (t -= 1) * t);\n },\n easeInOutCirc: function easeInOutCirc(t) {\n return (t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n },\n easeInElastic: function easeInElastic(t) {\n return atEdge(t) ? t : elasticIn(t, 0.075, 0.3);\n },\n easeOutElastic: function easeOutElastic(t) {\n return atEdge(t) ? t : elasticOut(t, 0.075, 0.3);\n },\n easeInOutElastic: function easeInOutElastic(t) {\n var s = 0.1125;\n var p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack: function easeInBack(t) {\n var s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack: function easeOutBack(t) {\n var s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack: function easeInOutBack(t) {\n var s = 1.70158;\n\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: function easeInBounce(t) {\n return 1 - effects.easeOutBounce(1 - t);\n },\n easeOutBounce: function easeOutBounce(t) {\n var m = 7.5625;\n var d = 2.75;\n\n if (t < 1 / d) {\n return m * t * t;\n }\n\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: function easeInOutBounce(t) {\n return t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n }\n};\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\n\nvar map = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15\n};\nvar hex = '0123456789ABCDEF';\n\nvar h1 = function h1(b) {\n return hex[b & 0xF];\n};\n\nvar h2 = function h2(b) {\n return hex[(b & 0xF0) >> 4] + hex[b & 0xF];\n};\n\nvar eq = function eq(b) {\n return (b & 0xF0) >> 4 === (b & 0xF);\n};\n\nfunction isShort(v) {\n return eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\n\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map[str[1]] * 17,\n g: 255 & map[str[2]] * 17,\n b: 255 & map[str[3]] * 17,\n a: len === 5 ? map[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map[str[1]] << 4 | map[str[2]],\n g: map[str[3]] << 4 | map[str[4]],\n b: map[str[5]] << 4 | map[str[6]],\n a: len === 9 ? map[str[7]] << 4 | map[str[8]] : 255\n };\n }\n }\n\n return ret;\n}\n\nfunction _hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v ? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '') : v;\n}\n\nfunction round(v) {\n return v + 0.5 | 0;\n}\n\nvar lim = function lim(v, l, h) {\n return Math.max(Math.min(v, h), l);\n};\n\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\n\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\n\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\n\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nvar RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction rgbParse(str) {\n var m = RGB_RE.exec(str);\n var a = 255;\n var r, g, b;\n\n if (!m) {\n return;\n }\n\n if (m[7] !== r) {\n var v = +m[7];\n a = 255 & (m[8] ? p2b(v) : v * 255);\n }\n\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : r);\n g = 255 & (m[4] ? p2b(g) : g);\n b = 255 & (m[6] ? p2b(b) : b);\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\n\nfunction _rgbString(v) {\n return v && (v.a < 255 ? \"rgba(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \", \").concat(b2n(v.a), \")\") : \"rgb(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \")\"));\n}\n\nvar HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction hsl2rgbn(h, s, l) {\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n return [f(0), f(8), f(4)];\n}\n\nfunction hsv2rgbn(h, s, v) {\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n\n return [f(5), f(3), f(1)];\n}\n\nfunction hwb2rgbn(h, w, b) {\n var rgb = hsl2rgbn(h, 1, 0.5);\n var i;\n\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n\n return rgb;\n}\n\nfunction rgb2hsl(v) {\n var range = 255;\n var r = v.r / range;\n var g = v.g / range;\n var b = v.b / range;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var l = (max + min) / 2;\n var h, s, d;\n\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h = h * 60 + 0.5;\n }\n\n return [h | 0, s || 0, l];\n}\n\nfunction calln(f, a, b, c) {\n return (Array.isArray(a) ? f(a[0], a[1], a[2]) : f(a, b, c)).map(n2b);\n}\n\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\n\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\n\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\n\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\n\nfunction hueParse(str) {\n var m = HUE_RE.exec(str);\n var a = 255;\n var v;\n\n if (!m) {\n return;\n }\n\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n\n var h = hue(+m[2]);\n var p1 = +m[3] / 100;\n var p2 = +m[4] / 100;\n\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\n\nfunction _rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\n\nfunction _hslString(v) {\n if (!v) {\n return;\n }\n\n var a = rgb2hsl(v);\n var h = a[0];\n var s = n2p(a[1]);\n var l = n2p(a[2]);\n return v.a < 255 ? \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(b2n(v.a), \")\") : \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\");\n}\n\nvar map$1 = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nvar names = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\n\nfunction unpack() {\n var unpacked = {};\n var keys = Object.keys(names);\n var tkeys = Object.keys(map$1);\n var i, j, k, ok, nk;\n\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map$1[k]);\n }\n\n k = parseInt(names[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n\n return unpacked;\n}\n\nvar names$1;\n\nfunction nameParse(str) {\n if (!names$1) {\n names$1 = unpack();\n names$1.transparent = [0, 0, 0, 0];\n }\n\n var a = names$1[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n var tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\n\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\n\nfunction fromObject(input) {\n var v = {\n r: 0,\n g: 0,\n b: 0,\n a: 255\n };\n\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {\n r: input[0],\n g: input[1],\n b: input[2],\n a: 255\n };\n\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {\n r: 0,\n g: 0,\n b: 0,\n a: 1\n });\n v.a = n2b(v.a);\n }\n\n return v;\n}\n\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n\n return hueParse(str);\n}\n\nvar Color = /*#__PURE__*/function () {\n function Color(input) {\n _classCallCheck(this, Color);\n\n if (input instanceof Color) {\n return input;\n }\n\n var type = _typeof(input);\n\n var v;\n\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n\n this._rgb = v;\n this._valid = !!v;\n }\n\n _createClass(Color, [{\n key: \"valid\",\n get: function get() {\n return this._valid;\n }\n }, {\n key: \"rgb\",\n get: function get() {\n var v = clone(this._rgb);\n\n if (v) {\n v.a = b2n(v.a);\n }\n\n return v;\n },\n set: function set(obj) {\n this._rgb = fromObject(obj);\n }\n }, {\n key: \"rgbString\",\n value: function rgbString() {\n return this._valid ? _rgbString(this._rgb) : this._rgb;\n }\n }, {\n key: \"hexString\",\n value: function hexString() {\n return this._valid ? _hexString(this._rgb) : this._rgb;\n }\n }, {\n key: \"hslString\",\n value: function hslString() {\n return this._valid ? _hslString(this._rgb) : this._rgb;\n }\n }, {\n key: \"mix\",\n value: function mix(color, weight) {\n var me = this;\n\n if (color) {\n var c1 = me.rgb;\n var c2 = color.rgb;\n var w2;\n var p = weight === w2 ? 0.5 : weight;\n var w = 2 * p - 1;\n var a = c1.a - c2.a;\n var w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n me.rgb = c1;\n }\n\n return me;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new Color(this.rgb);\n }\n }, {\n key: \"alpha\",\n value: function alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n }, {\n key: \"clearer\",\n value: function clearer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n }, {\n key: \"greyscale\",\n value: function greyscale() {\n var rgb = this._rgb;\n var val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n }, {\n key: \"opaquer\",\n value: function opaquer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n }, {\n key: \"negate\",\n value: function negate() {\n var v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n }, {\n key: \"lighten\",\n value: function lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n }, {\n key: \"darken\",\n value: function darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n }, {\n key: \"saturate\",\n value: function saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n }, {\n key: \"desaturate\",\n value: function desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n }, {\n key: \"rotate\",\n value: function rotate(deg) {\n _rotate(this._rgb, deg);\n\n return this;\n }\n }]);\n\n return Color;\n}();\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nvar isPatternOrGradient = function isPatternOrGradient(value) {\n return value instanceof CanvasGradient || value instanceof CanvasPattern;\n};\n\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\n\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nvar overrides = Object.create(null);\nvar descriptors = Object.create(null);\n\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n\n var keys = key.split('.');\n\n for (var i = 0, n = keys.length; i < n; ++i) {\n var k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n\n return node;\n}\n\nfunction _set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n\n return merge(getScope$1(root, ''), scope);\n}\n\nvar Defaults = /*#__PURE__*/function () {\n function Defaults(_descriptors) {\n _classCallCheck(this, Defaults);\n\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n\n this.devicePixelRatio = function (context) {\n return context.chart.platform.getDevicePixelRatio();\n };\n\n this.elements = {};\n this.events = ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n\n this.hoverBackgroundColor = function (ctx, options) {\n return getHoverColor(options.backgroundColor);\n };\n\n this.hoverBorderColor = function (ctx, options) {\n return getHoverColor(options.borderColor);\n };\n\n this.hoverColor = function (ctx, options) {\n return getHoverColor(options.color);\n };\n\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.describe(_descriptors);\n }\n\n _createClass(Defaults, [{\n key: \"set\",\n value: function set(scope, values) {\n return _set(this, scope, values);\n }\n }, {\n key: \"get\",\n value: function get(scope) {\n return getScope$1(this, scope);\n }\n }, {\n key: \"describe\",\n value: function describe(scope, values) {\n return _set(descriptors, scope, values);\n }\n }, {\n key: \"override\",\n value: function override(scope, values) {\n return _set(overrides, scope, values);\n }\n }, {\n key: \"route\",\n value: function route(scope, name, targetScope, targetName) {\n var _Object$definePropert;\n\n var scopeObject = getScope$1(this, scope);\n var targetScopeObject = getScope$1(this, targetScope);\n var privateName = '_' + name;\n Object.defineProperties(scopeObject, (_Object$definePropert = {}, _defineProperty(_Object$definePropert, privateName, {\n value: scopeObject[name],\n writable: true\n }), _defineProperty(_Object$definePropert, name, {\n enumerable: true,\n get: function get() {\n var local = this[privateName];\n var target = targetScopeObject[targetName];\n\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n\n return valueOrDefault(local, target);\n },\n set: function set(value) {\n this[privateName] = value;\n }\n }), _Object$definePropert));\n }\n }]);\n\n return Defaults;\n}();\n\nvar defaults = new Defaults({\n _scriptable: function _scriptable(name) {\n return !name.startsWith('on');\n },\n _indexable: function _indexable(name) {\n return name !== 'events';\n },\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n\nfunction _measureText(ctx, data, gc, longest, string) {\n var textWidth = data[string];\n\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n\n if (textWidth > longest) {\n longest = textWidth;\n }\n\n return longest;\n}\n\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n var data = cache.data = cache.data || {};\n var gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n ctx.font = font;\n var longest = 0;\n var ilen = arrayOfThings.length;\n var i, j, jlen, thing, nestedThing;\n\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n var gcLen = gc.length / 2;\n\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n\n gc.splice(0, gcLen);\n }\n\n return longest;\n}\n\nfunction _alignPixel(chart, pixel, width) {\n var devicePixelRatio = chart.currentDevicePixelRatio;\n var halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\n\nfunction drawPoint(ctx, options, x, y) {\n var type, xOffset, yOffset, size, cornerRadius;\n var style = options.pointStyle;\n var rotation = options.rotation;\n var radius = options.radius;\n var rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && _typeof(style) === 'object') {\n type = style.toString();\n\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n\n rad += QUARTER_PI;\n\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n\n case 'crossRot':\n rad += QUARTER_PI;\n\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\n\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\n\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n if (mode === 'middle') {\n var midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n\n ctx.lineTo(target.x, target.y);\n}\n\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\n\nfunction renderText(ctx, text, x, y, font) {\n var opts = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var lines = isArray(text) ? text : [text];\n var stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n var i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n\n ctx.restore();\n}\n\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\n\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n var metrics = ctx.measureText(line);\n var left = x - metrics.actualBoundingBoxLeft;\n var right = x + metrics.actualBoundingBoxRight;\n var top = y - metrics.actualBoundingBoxAscent;\n var bottom = y + metrics.actualBoundingBoxDescent;\n var yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\n\nfunction addRoundedRectPath(ctx, rect) {\n var x = rect.x,\n y = rect.y,\n w = rect.w,\n h = rect.h,\n radius = rect.radius;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nvar LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nvar FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\n\nfunction toLineHeight(value, size) {\n var matches = ('' + value).match(LINE_HEIGHT);\n\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n\n case '%':\n value /= 100;\n break;\n }\n\n return size * value;\n}\n\nvar numberOrZero = function numberOrZero(v) {\n return +v || 0;\n};\n\nfunction _readValueToProps(value, props) {\n var ret = {};\n var objProps = isObject(props);\n var keys = objProps ? Object.keys(props) : props;\n var read = isObject(value) ? objProps ? function (prop) {\n return valueOrDefault(value[prop], value[props[prop]]);\n } : function (prop) {\n return value[prop];\n } : function () {\n return value;\n };\n\n var _iterator2 = _createForOfIteratorHelper(keys),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var prop = _step2.value;\n ret[prop] = numberOrZero(read(prop));\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return ret;\n}\n\nfunction toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\nfunction toPadding(value) {\n var obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n var size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n var style = valueOrDefault(options.style, fallback.style);\n\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n\n var font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size: size,\n style: style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n\nfunction resolve(inputs, context, index, info) {\n var cacheable = true;\n var i, ilen, value;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n\n if (value === undefined) {\n continue;\n }\n\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n\n return value;\n }\n }\n}\n\nfunction _addGrace(minmax, grace, beginAtZero) {\n var min = minmax.min,\n max = minmax.max;\n var change = toDimension(grace, (max - min) / 2);\n\n var keepZero = function keepZero(value, add) {\n return beginAtZero && value === 0 ? 0 : value + add;\n };\n\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\n\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || function (index) {\n return table[index] < value;\n };\n\n var hi = table.length - 1;\n var lo = 0;\n var mid;\n\n while (hi - lo > 1) {\n mid = lo + hi >> 1;\n\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {\n lo: lo,\n hi: hi\n };\n}\n\nvar _lookupByKey = function _lookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] < value;\n });\n};\n\nvar _rlookupByKey = function _rlookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] >= value;\n });\n};\n\nfunction _filterBetween(values, min, max) {\n var start = 0;\n var end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach(function (key) {\n var method = '_onData' + _capitalize(key);\n\n var base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value: function value() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var res = base.apply(this, args);\n\n array._chartjs.listeners.forEach(function (object) {\n if (typeof object[method] === 'function') {\n object[method].apply(object, args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\nfunction unlistenArrayEvents(array, listener) {\n var stub = array._chartjs;\n\n if (!stub) {\n return;\n }\n\n var listeners = stub.listeners;\n var index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach(function (key) {\n delete array[key];\n });\n delete array._chartjs;\n}\n\nfunction _arrayUnique(items) {\n var set = new Set();\n var i, ilen;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n\n if (set.size === ilen) {\n return items;\n }\n\n return Array.from(set);\n}\n\nfunction _createResolver(scopes) {\n var _cache;\n\n var prefixes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [''];\n var rootScopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : scopes;\n var fallback = arguments.length > 3 ? arguments[3] : undefined;\n var getTarget = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {\n return scopes[0];\n };\n\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n\n var cache = (_cache = {}, _defineProperty(_cache, Symbol.toStringTag, 'Object'), _defineProperty(_cache, \"_cacheable\", true), _defineProperty(_cache, \"_scopes\", scopes), _defineProperty(_cache, \"_rootScopes\", rootScopes), _defineProperty(_cache, \"_fallback\", fallback), _defineProperty(_cache, \"_getTarget\", getTarget), _defineProperty(_cache, \"override\", function override(scope) {\n return _createResolver([scope].concat(_toConsumableArray(scopes)), prefixes, rootScopes, fallback);\n }), _cache);\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get: function get(target, prop) {\n return _cached(target, prop, function () {\n return _resolveWithPrefixes(prop, prefixes, scopes, target);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has: function has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys: function ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set: function set(target, prop, value) {\n var storage = target._storage || (target._storage = getTarget());\n storage[prop] = value;\n delete target[prop];\n delete target._keys;\n return true;\n }\n });\n}\n\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n var cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: function setContext(ctx) {\n return _attachContext(proxy, ctx, subProxy, descriptorDefaults);\n },\n override: function override(scope) {\n return _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults);\n }\n };\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get: function get(target, prop, receiver) {\n return _cached(target, prop, function () {\n return _resolveWithContext(target, prop, receiver);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has: function has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys: function ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set: function set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\n\nfunction _descriptors(proxy) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n scriptable: true,\n indexable: true\n };\n\n var _proxy$_scriptable = proxy._scriptable,\n _scriptable = _proxy$_scriptable === void 0 ? defaults.scriptable : _proxy$_scriptable,\n _proxy$_indexable = proxy._indexable,\n _indexable = _proxy$_indexable === void 0 ? defaults.indexable : _proxy$_indexable,\n _proxy$_allKeys = proxy._allKeys,\n _allKeys = _proxy$_allKeys === void 0 ? defaults.allKeys : _proxy$_allKeys;\n\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : function () {\n return _scriptable;\n },\n isIndexable: isFunction(_indexable) ? _indexable : function () {\n return _indexable;\n }\n };\n}\n\nvar readKey = function readKey(prefix, name) {\n return prefix ? prefix + _capitalize(name) : name;\n};\n\nvar needsSubResolver = function needsSubResolver(prop, value) {\n return isObject(value) && prop !== 'adapters';\n};\n\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n\n var value = resolve();\n target[prop] = value;\n return value;\n}\n\nfunction _resolveWithContext(target, prop, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n var value = _proxy[prop];\n\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n\n return value;\n}\n\nfunction _resolveScriptable(prop, value, target, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n _stack = target._stack;\n\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n\n _stack.add(prop);\n\n value = value(_context, _subProxy || receiver);\n\n _stack.delete(prop);\n\n if (isObject(value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n\n return value;\n}\n\nfunction _resolveArray(prop, value, target, isIndexable) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n var arr = value;\n\n var scopes = _proxy._scopes.filter(function (s) {\n return s !== arr;\n });\n\n value = [];\n\n var _iterator3 = _createForOfIteratorHelper(arr),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var item = _step3.value;\n var resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n\n return value;\n}\n\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nvar getScope = function getScope(key, parent) {\n return key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n};\n\nfunction addScopes(set, parentScopes, key, parentFallback) {\n var _iterator4 = _createForOfIteratorHelper(parentScopes),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var parent = _step4.value;\n var scope = getScope(key, parent);\n\n if (scope) {\n set.add(scope);\n var fallback = resolveFallback(scope._fallback, key, scope);\n\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return false;\n}\n\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n var rootScopes = resolver._rootScopes;\n var fallback = resolveFallback(resolver._fallback, prop, value);\n var allScopes = [].concat(_toConsumableArray(parentScopes), _toConsumableArray(rootScopes));\n var set = new Set();\n set.add(value);\n var key = addScopesFromKey(set, allScopes, prop, fallback || prop);\n\n if (key === null) {\n return false;\n }\n\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key);\n\n if (key === null) {\n return false;\n }\n }\n\n return _createResolver(Array.from(set), [''], rootScopes, fallback, function () {\n return subGetTarget(resolver, prop, value);\n });\n}\n\nfunction addScopesFromKey(set, allScopes, key, fallback) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback);\n }\n\n return key;\n}\n\nfunction subGetTarget(resolver, prop, value) {\n var parent = resolver._getTarget();\n\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n\n var target = parent[prop];\n\n if (isArray(target) && isObject(value)) {\n return value;\n }\n\n return target;\n}\n\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n var value;\n\n var _iterator5 = _createForOfIteratorHelper(prefixes),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var prefix = _step5.value;\n value = _resolve(readKey(prefix, prop), scopes);\n\n if (defined(value)) {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n}\n\nfunction _resolve(key, scopes) {\n var _iterator6 = _createForOfIteratorHelper(scopes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var scope = _step6.value;\n\n if (!scope) {\n continue;\n }\n\n var value = scope[key];\n\n if (defined(value)) {\n return value;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n}\n\nfunction getKeysFromAllScopes(target) {\n var keys = target._keys;\n\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes) {\n var set = new Set();\n\n var _iterator7 = _createForOfIteratorHelper(scopes),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var scope = _step7.value;\n\n var _iterator8 = _createForOfIteratorHelper(Object.keys(scope).filter(function (k) {\n return !k.startsWith('_');\n })),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var key = _step8.value;\n set.add(key);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return Array.from(set);\n}\n\nvar EPSILON = Number.EPSILON || 1e-14;\n\nvar getPoint = function getPoint(points, i) {\n return i < points.length && !points[i].skip && points[i];\n};\n\nvar getValueAxis = function getValueAxis(indexAxis) {\n return indexAxis === 'x' ? 'y' : 'x';\n};\n\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n var previous = firstPoint.skip ? middlePoint : firstPoint;\n var current = middlePoint;\n var next = afterPoint.skip ? middlePoint : afterPoint;\n var d01 = distanceBetweenPoints(current, previous);\n var d12 = distanceBetweenPoints(next, current);\n var s01 = d01 / (d01 + d12);\n var s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n var fa = t * s01;\n var fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n\nfunction monotoneAdjust(points, deltaK, mK) {\n var pointsLen = points.length;\n var alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points, mK) {\n var indexAxis = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var delta, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n var iPixel = pointCurrent[indexAxis];\n var vPixel = pointCurrent[valueAxis];\n\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[\"cp1\".concat(indexAxis)] = iPixel - delta;\n pointCurrent[\"cp1\".concat(valueAxis)] = vPixel - delta * mK[i];\n }\n\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[\"cp2\".concat(indexAxis)] = iPixel + delta;\n pointCurrent[\"cp2\".concat(valueAxis)] = vPixel + delta * mK[i];\n }\n }\n}\n\nfunction splineCurveMonotone(points) {\n var indexAxis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var deltaK = Array(pointsLen).fill(0);\n var mK = Array(pointsLen);\n var i, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n var slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points, area) {\n var i, ilen, point, inArea, inAreaPrev;\n\n var inAreaNext = _isPointInArea(points[0], area);\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n\n if (!inArea) {\n continue;\n }\n\n point = points[i];\n\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n var i, ilen, point, controlPoints;\n\n if (options.spanGaps) {\n points = points.filter(function (pt) {\n return !pt.skip;\n });\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n var prev = loop ? points[points.length - 1] : points[0];\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nfunction _getParentNode(domNode) {\n var parent = domNode.parentNode;\n\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n\n return parent;\n}\n\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n var valueInPixels;\n\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nvar getComputedStyle = function getComputedStyle(element) {\n return window.getComputedStyle(element, null);\n};\n\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nvar positions = ['top', 'right', 'bottom', 'left'];\n\nfunction getPositionedStyle(styles, style, suffix) {\n var result = {};\n suffix = suffix ? '-' + suffix : '';\n\n for (var i = 0; i < 4; i++) {\n var pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nvar useOffsetPos = function useOffsetPos(x, y, target) {\n return (x > 0 || y > 0) && (!target || !target.shadowRoot);\n};\n\nfunction getCanvasPosition(evt, canvas) {\n var e = evt.native || evt;\n var touches = e.touches;\n var source = touches && touches.length ? touches[0] : e;\n var offsetX = source.offsetX,\n offsetY = source.offsetY;\n var box = false;\n var x, y;\n\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n var rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n\n return {\n x: x,\n y: y,\n box: box\n };\n}\n\nfunction getRelativePosition(evt, chart) {\n var canvas = chart.canvas,\n currentDevicePixelRatio = chart.currentDevicePixelRatio;\n var style = getComputedStyle(canvas);\n var borderBox = style.boxSizing === 'border-box';\n var paddings = getPositionedStyle(style, 'padding');\n var borders = getPositionedStyle(style, 'border', 'width');\n\n var _getCanvasPosition = getCanvasPosition(evt, canvas),\n x = _getCanvasPosition.x,\n y = _getCanvasPosition.y,\n box = _getCanvasPosition.box;\n\n var xOffset = paddings.left + (box && borders.left);\n var yOffset = paddings.top + (box && borders.top);\n var width = chart.width,\n height = chart.height;\n\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\n\nfunction getContainerSize(canvas, width, height) {\n var maxWidth, maxHeight;\n\n if (width === undefined || height === undefined) {\n var container = _getParentNode(canvas);\n\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n var rect = container.getBoundingClientRect();\n var containerStyle = getComputedStyle(container);\n var containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n var containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n\n return {\n width: width,\n height: height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nvar round1 = function round1(v) {\n return Math.round(v * 10) / 10;\n};\n\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n var style = getComputedStyle(canvas);\n var margins = getPositionedStyle(style, 'margin');\n var maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n var maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n var containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n var width = containerSize.width,\n height = containerSize.height;\n\n if (style.boxSizing === 'content-box') {\n var borders = getPositionedStyle(style, 'border', 'width');\n var paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n\n if (width && !height) {\n height = round1(width / 2);\n }\n\n return {\n width: width,\n height: height\n };\n}\n\nfunction retinaScale(chart, forceRatio, forceStyle) {\n var pixelRatio = forceRatio || 1;\n var deviceHeight = Math.floor(chart.height * pixelRatio);\n var deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n var canvas = chart.canvas;\n\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = \"\".concat(chart.height, \"px\");\n canvas.style.width = \"\".concat(chart.width, \"px\");\n }\n\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n\n return false;\n}\n\nvar supportsEventListenerOptions = function () {\n var passiveSupported = false;\n\n try {\n var options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n\n return passiveSupported;\n}();\n\nfunction readUsedSize(element, property) {\n var value = getStyle(element, property);\n var matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n\nfunction _bezierInterpolation(p1, p2, t, mode) {\n var cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n var cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n\n var a = _pointInLine(p1, cp1, t);\n\n var b = _pointInLine(cp1, cp2, t);\n\n var c = _pointInLine(cp2, p2, t);\n\n var d = _pointInLine(a, b, t);\n\n var e = _pointInLine(b, c, t);\n\n return _pointInLine(d, e, t);\n}\n\nvar intlCache = new Map();\n\nfunction getNumberFormat(locale, options) {\n options = options || {};\n var cacheKey = locale + JSON.stringify(options);\n var formatter = intlCache.get(cacheKey);\n\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n\n return formatter;\n}\n\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nvar getRightToLeftAdapter = function getRightToLeftAdapter(rectX, width) {\n return {\n x: function x(_x) {\n return rectX + rectX + width - _x;\n },\n setWidth: function setWidth(w) {\n width = w;\n },\n textAlign: function textAlign(align) {\n if (align === 'center') {\n return align;\n }\n\n return align === 'right' ? 'left' : 'right';\n },\n xPlus: function xPlus(x, value) {\n return x - value;\n },\n leftForLtr: function leftForLtr(x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\n\nvar getLeftToRightAdapter = function getLeftToRightAdapter() {\n return {\n x: function x(_x2) {\n return _x2;\n },\n setWidth: function setWidth(w) {},\n textAlign: function textAlign(align) {\n return align;\n },\n xPlus: function xPlus(x, value) {\n return x + value;\n },\n leftForLtr: function leftForLtr(x, _itemWidth) {\n return x;\n }\n };\n};\n\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nfunction overrideTextDirection(ctx, direction) {\n var style, original;\n\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [style.getPropertyValue('direction'), style.getPropertyPriority('direction')];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\n\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n\n return {\n between: function between(n, s, e) {\n return n >= Math.min(s, e) && n <= Math.max(e, s);\n },\n compare: function compare(a, b) {\n return a - b;\n },\n normalize: function normalize(x) {\n return x;\n }\n };\n}\n\nfunction normalizeSegment(_ref) {\n var start = _ref.start,\n end = _ref.end,\n count = _ref.count,\n loop = _ref.loop,\n style = _ref.style;\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style: style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n\n var _propertyFn = propertyFn(property),\n between = _propertyFn.between,\n normalize = _propertyFn.normalize;\n\n var count = points.length;\n var start = segment.start,\n end = segment.end,\n loop = segment.loop;\n var i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n\n start--;\n end--;\n }\n\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n\n return {\n start: start,\n end: end,\n loop: loop,\n style: segment.style\n };\n}\n\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n var count = points.length;\n\n var _propertyFn2 = propertyFn(property),\n compare = _propertyFn2.compare,\n between = _propertyFn2.between,\n normalize = _propertyFn2.normalize;\n\n var _getSegment = getSegment(segment, points, bounds),\n start = _getSegment.start,\n end = _getSegment.end,\n loop = _getSegment.loop,\n style = _getSegment.style;\n\n var result = [];\n var inside = false;\n var subStart = null;\n var value, point, prevValue;\n\n var startIsBefore = function startIsBefore() {\n return between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n };\n\n var endIsBefore = function endIsBefore() {\n return compare(endBound, value) === 0 || between(endBound, prevValue, value);\n };\n\n var shouldStart = function shouldStart() {\n return inside || startIsBefore();\n };\n\n var shouldStop = function shouldStop() {\n return !inside || endIsBefore();\n };\n\n for (var i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n\n if (value === prevValue) {\n continue;\n }\n\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop: loop,\n count: count,\n style: style\n }));\n subStart = null;\n }\n\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end: end,\n loop: loop,\n count: count,\n style: style\n }));\n }\n\n return result;\n}\n\nfunction _boundSegments(line, bounds) {\n var result = [];\n var segments = line.segments;\n\n for (var i = 0; i < segments.length; i++) {\n var sub = _boundSegment(segments[i], line.points, bounds);\n\n if (sub.length) {\n result.push.apply(result, _toConsumableArray(sub));\n }\n }\n\n return result;\n}\n\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n var start = 0;\n var end = count - 1;\n\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n while (start < count && points[start].skip) {\n start++;\n }\n\n start %= count;\n\n if (loop) {\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n end %= count;\n return {\n start: start,\n end: end\n };\n}\n\nfunction solidSegments(points, start, max, loop) {\n var count = points.length;\n var result = [];\n var last = start;\n var prev = points[start];\n var end;\n\n for (end = start + 1; end <= max; ++end) {\n var cur = points[end % count];\n\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop: loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n\n if (prev.skip) {\n start = end;\n }\n }\n\n prev = cur;\n }\n\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop: loop\n });\n }\n\n return result;\n}\n\nfunction _computeSegments(line, segmentOptions) {\n var points = line.points;\n var spanGaps = line.options.spanGaps;\n var count = points.length;\n\n if (!count) {\n return [];\n }\n\n var loop = !!line._loop;\n\n var _findStartAndEnd = findStartAndEnd(points, count, loop, spanGaps),\n start = _findStartAndEnd.start,\n end = _findStartAndEnd.end;\n\n if (spanGaps === true) {\n return splitByStyles(line, [{\n start: start,\n end: end,\n loop: loop\n }], points, segmentOptions);\n }\n\n var max = end < start ? end + count : end;\n var completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n var chartContext = line._chart.getContext();\n\n var baseStyle = readStyle(line.options);\n var datasetIndex = line._datasetIndex,\n spanGaps = line.options.spanGaps;\n var count = points.length;\n var result = [];\n var prevStyle = baseStyle;\n var start = segments[0].start;\n var i = start;\n\n function addStyle(s, e, l, st) {\n var dir = spanGaps ? -1 : 1;\n\n if (s === e) {\n return;\n }\n\n s += count;\n\n while (points[s % count].skip) {\n s -= dir;\n }\n\n while (points[e % count].skip) {\n e += dir;\n }\n\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n\n var _iterator9 = _createForOfIteratorHelper(segments),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var segment = _step9.value;\n start = spanGaps ? start : segment.start;\n var prev = points[start % count];\n var style = void 0;\n\n for (i = start + 1; i <= segment.end; i++) {\n var pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex: datasetIndex\n })));\n\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n\n prev = pt;\n prevStyle = style;\n }\n\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return result;\n}\n\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\n\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _alignStartEnd as $, _rlookupByKey as A, toPadding as B, each as C, getMaximumSize as D, _getParentNode as E, readUsedSize as F, throttled as G, HALF_PI as H, supportsEventListenerOptions as I, _isDomSupported as J, log10 as K, _factorize as L, finiteOrDefault as M, callback as N, _addGrace as O, PI as P, toDegrees as Q, _measureText as R, _int16Range as S, TAU as T, _alignPixel as U, clipArea as V, renderText as W, unclipArea as X, toFont as Y, _toLeftRightCenter as Z, _arrayUnique as _, resolve as a, overrides as a0, merge as a1, _capitalize as a2, descriptors as a3, isFunction as a4, _attachContext as a5, _createResolver as a6, _descriptors as a7, mergeIf as a8, uid as a9, distanceBetweenPoints as aA, _setMinAndMaxByKey as aB, niceNum as aC, almostWhole as aD, almostEquals as aE, _decimalPlaces as aF, _longestText as aG, _filterBetween as aH, _lookup as aI, getHoverColor as aJ, clone$1 as aK, _merger as aL, _mergerIf as aM, _deprecated as aN, toFontString as aO, splineCurve as aP, splineCurveMonotone as aQ, getStyle as aR, fontString as aS, toLineHeight as aT, PITAU as aU, INFINITY as aV, RAD_PER_DEG as aW, QUARTER_PI as aX, TWO_THIRDS_PI as aY, _angleDiff as aZ, debounce as aa, retinaScale as ab, clearCanvas as ac, setsEqual as ad, _elementsEqual as ae, getAngleFromPoint as af, _readValueToProps as ag, _updateBezierControlPoints as ah, _computeSegments as ai, _boundSegments as aj, _steppedInterpolation as ak, _bezierInterpolation as al, _pointInLine as am, _steppedLineTo as an, _bezierCurveTo as ao, drawPoint as ap, addRoundedRectPath as aq, toTRBL as ar, toTRBLCorners as as, _boundSegment as at, _normalizeAngle as au, getRtlAdapter as av, overrideTextDirection as aw, _textX as ax, restoreTextDirection as ay, noop as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, getRelativePosition as y, _isPointInArea as z };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*!\n * Chart.js v3.6.0\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as _color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as isNumber, w as _limitValue, x as _lookupByKey, y as getRelativePosition$1, z as _isPointInArea, A as _rlookupByKey, B as toPadding, C as each, D as _getMaximumSize, E as _getParentNode, F as readUsedSize, G as throttled, I as supportsEventListenerOptions, J as _isDomSupported, K as log10, L as _factorize, M as finiteOrDefault, N as callback, O as _addGrace, Q as toDegrees, R as _measureText, S as _int16Range, U as _alignPixel, V as clipArea, W as renderText, X as unclipArea, Y as toFont, Z as _toLeftRightCenter, $ as _alignStartEnd, a0 as overrides, a1 as merge, a2 as _capitalize, a3 as descriptors, a4 as isFunction, a5 as _attachContext, a6 as _createResolver, a7 as _descriptors, a8 as mergeIf, a9 as uid, aa as debounce, ab as retinaScale, ac as clearCanvas, ad as setsEqual, ae as _elementsEqual, af as getAngleFromPoint, ag as _readValueToProps, ah as _updateBezierControlPoints, ai as _computeSegments, aj as _boundSegments, ak as _steppedInterpolation, al as _bezierInterpolation, am as _pointInLine, an as _steppedLineTo, ao as _bezierCurveTo, ap as drawPoint, aq as addRoundedRectPath, ar as toTRBL, as as toTRBLCorners, at as _boundSegment, au as _normalizeAngle, av as getRtlAdapter, aw as overrideTextDirection, ax as _textX, ay as restoreTextDirection, az as noop, aA as distanceBetweenPoints, aB as _setMinAndMaxByKey, aC as niceNum, aD as almostWhole, aE as almostEquals, aF as _decimalPlaces, aG as _longestText, aH as _filterBetween, aI as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nvar Animator = /*#__PURE__*/function () {\n function Animator() {\n _classCallCheck(this, Animator);\n\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n\n _createClass(Animator, [{\n key: \"_notify\",\n value: function _notify(chart, anims, date, type) {\n var callbacks = anims.listeners[type];\n var numSteps = anims.duration;\n callbacks.forEach(function (fn) {\n return fn({\n chart: chart,\n initial: anims.initial,\n numSteps: numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n });\n });\n }\n }, {\n key: \"_refresh\",\n value: function _refresh() {\n var _this = this;\n\n if (this._request) {\n return;\n }\n\n this._running = true;\n this._request = requestAnimFrame.call(window, function () {\n _this._update();\n\n _this._request = null;\n\n if (_this._running) {\n _this._refresh();\n }\n });\n }\n }, {\n key: \"_update\",\n value: function _update() {\n var _this2 = this;\n\n var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now();\n var remaining = 0;\n\n this._charts.forEach(function (anims, chart) {\n if (!anims.running || !anims.items.length) {\n return;\n }\n\n var items = anims.items;\n var i = items.length - 1;\n var draw = false;\n var item;\n\n for (; i >= 0; --i) {\n item = items[i];\n\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n\n if (draw) {\n chart.draw();\n\n _this2._notify(chart, anims, date, 'progress');\n }\n\n if (!items.length) {\n anims.running = false;\n\n _this2._notify(chart, anims, date, 'complete');\n\n anims.initial = false;\n }\n\n remaining += items.length;\n });\n\n this._lastDate = date;\n\n if (remaining === 0) {\n this._running = false;\n }\n }\n }, {\n key: \"_getAnims\",\n value: function _getAnims(chart) {\n var charts = this._charts;\n var anims = charts.get(chart);\n\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n\n return anims;\n }\n }, {\n key: \"listen\",\n value: function listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n }, {\n key: \"add\",\n value: function add(chart, items) {\n var _this$_getAnims$items;\n\n if (!items || !items.length) {\n return;\n }\n\n (_this$_getAnims$items = this._getAnims(chart).items).push.apply(_this$_getAnims$items, _toConsumableArray(items));\n }\n }, {\n key: \"has\",\n value: function has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n }, {\n key: \"start\",\n value: function start(chart) {\n var anims = this._charts.get(chart);\n\n if (!anims) {\n return;\n }\n\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce(function (acc, cur) {\n return Math.max(acc, cur._duration);\n }, 0);\n\n this._refresh();\n }\n }, {\n key: \"running\",\n value: function running(chart) {\n if (!this._running) {\n return false;\n }\n\n var anims = this._charts.get(chart);\n\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"stop\",\n value: function stop(chart) {\n var anims = this._charts.get(chart);\n\n if (!anims || !anims.items.length) {\n return;\n }\n\n var items = anims.items;\n var i = items.length - 1;\n\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n\n anims.items = [];\n\n this._notify(chart, anims, Date.now(), 'complete');\n }\n }, {\n key: \"remove\",\n value: function remove(chart) {\n return this._charts.delete(chart);\n }\n }]);\n\n return Animator;\n}();\n\nvar animator = new Animator();\nvar transparent = 'transparent';\nvar interpolators = {\n boolean: function boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color: function color(from, to, factor) {\n var c0 = _color(from || transparent);\n\n var c1 = c0.valid && _color(to || transparent);\n\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number: function number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\n\nvar Animation = /*#__PURE__*/function () {\n function Animation(cfg, target, prop, to) {\n _classCallCheck(this, Animation);\n\n var currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n var from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || _typeof(from)];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n\n _createClass(Animation, [{\n key: \"active\",\n value: function active() {\n return this._active;\n }\n }, {\n key: \"update\",\n value: function update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n\n var currentValue = this._target[this._prop];\n var elapsed = date - this._start;\n var remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n\n this._notify(false);\n }\n }\n }, {\n key: \"tick\",\n value: function tick(date) {\n var elapsed = date - this._start;\n var duration = this._duration;\n var prop = this._prop;\n var from = this._from;\n var loop = this._loop;\n var to = this._to;\n var factor;\n this._active = from !== to && (loop || elapsed < duration);\n\n if (!this._active) {\n this._target[prop] = to;\n\n this._notify(true);\n\n return;\n }\n\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n }, {\n key: \"wait\",\n value: function wait() {\n var promises = this._promises || (this._promises = []);\n return new Promise(function (res, rej) {\n promises.push({\n res: res,\n rej: rej\n });\n });\n }\n }, {\n key: \"_notify\",\n value: function _notify(resolved) {\n var method = resolved ? 'res' : 'rej';\n var promises = this._promises || [];\n\n for (var i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n }]);\n\n return Animation;\n}();\n\nvar numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nvar colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n});\nvar animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: function _scriptable(name) {\n return name !== 'onProgress' && name !== 'onComplete' && name !== 'fn';\n }\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n});\ndefaults.describe('animations', {\n _fallback: 'animation'\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: function fn(v) {\n return v | 0;\n }\n }\n }\n }\n});\n\nvar Animations = /*#__PURE__*/function () {\n function Animations(chart, config) {\n _classCallCheck(this, Animations);\n\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n\n _createClass(Animations, [{\n key: \"configure\",\n value: function configure(config) {\n if (!isObject(config)) {\n return;\n }\n\n var animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(function (key) {\n var cfg = config[key];\n\n if (!isObject(cfg)) {\n return;\n }\n\n var resolved = {};\n\n var _iterator = _createForOfIteratorHelper(animationOptions),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var option = _step.value;\n resolved[option] = cfg[option];\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n (isArray(cfg.properties) && cfg.properties || [key]).forEach(function (prop) {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n }, {\n key: \"_animateOptions\",\n value: function _animateOptions(target, values) {\n var newOptions = values.options;\n var options = resolveTargetOptions(target, newOptions);\n\n if (!options) {\n return [];\n }\n\n var animations = this._createAnimations(options, newOptions);\n\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(function () {\n target.options = newOptions;\n }, function () {});\n }\n\n return animations;\n }\n }, {\n key: \"_createAnimations\",\n value: function _createAnimations(target, values) {\n var animatedProps = this._properties;\n var animations = [];\n var running = target.$animations || (target.$animations = {});\n var props = Object.keys(values);\n var date = Date.now();\n var i;\n\n for (i = props.length - 1; i >= 0; --i) {\n var prop = props[i];\n\n if (prop.charAt(0) === '$') {\n continue;\n }\n\n if (prop === 'options') {\n animations.push.apply(animations, _toConsumableArray(this._animateOptions(target, values)));\n continue;\n }\n\n var value = values[prop];\n var animation = running[prop];\n var cfg = animatedProps.get(prop);\n\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n\n return animations;\n }\n }, {\n key: \"update\",\n value: function update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n\n var animations = this._createAnimations(target, values);\n\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n }]);\n\n return Animations;\n}();\n\nfunction awaitAll(animations, properties) {\n var running = [];\n var keys = Object.keys(properties);\n\n for (var i = 0; i < keys.length; i++) {\n var anim = animations[keys[i]];\n\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n\n return Promise.all(running);\n}\n\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n\n var options = target.options;\n\n if (!options) {\n target.options = newOptions;\n return;\n }\n\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n var opts = scale && scale.options || {};\n var reverse = opts.reverse;\n var min = opts.min === undefined ? allowedOverflow : 0;\n var max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\n\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n\n var x = scaleClip(xScale, allowedOverflow);\n var y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\n\nfunction toClip(value) {\n var t, r, b, l;\n\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\n\nfunction getSortedDatasetIndices(chart, filterVisible) {\n var keys = [];\n\n var metasets = chart._getSortedDatasetMetas(filterVisible);\n\n var i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n\n return keys;\n}\n\nfunction _applyStack(stack, value, dsIndex) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keys = stack.keys;\n var singleMode = options.mode === 'single';\n var i, ilen, datasetIndex, otherValue;\n\n if (value === null) {\n return;\n }\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n\n break;\n }\n\n otherValue = stack.values[datasetIndex];\n\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n\n return value;\n}\n\nfunction convertObjectDataToArray(data) {\n var keys = Object.keys(data);\n var adata = new Array(keys.length);\n var i, ilen, key;\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n\n return adata;\n}\n\nfunction isStacked(scale, meta) {\n var stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\n\nfunction getStackKey(indexScale, valueScale, meta) {\n return \"\".concat(indexScale.id, \".\").concat(valueScale.id, \".\").concat(meta.stack || meta.type);\n}\n\nfunction getUserBounds(scale) {\n var _scale$getUserBounds = scale.getUserBounds(),\n min = _scale$getUserBounds.min,\n max = _scale$getUserBounds.max,\n minDefined = _scale$getUserBounds.minDefined,\n maxDefined = _scale$getUserBounds.maxDefined;\n\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\n\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n var subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\n\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n var _iterator2 = _createForOfIteratorHelper(vScale.getMatchingVisibleMetas(type).reverse()),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var meta = _step2.value;\n var value = stack[meta.index];\n\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return null;\n}\n\nfunction updateStacks(controller, parsed) {\n var chart = controller.chart,\n meta = controller._cachedMeta;\n var stacks = chart._stacks || (chart._stacks = {});\n var iScale = meta.iScale,\n vScale = meta.vScale,\n datasetIndex = meta.index;\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var key = getStackKey(iScale, vScale, meta);\n var ilen = parsed.length;\n var stack;\n\n for (var i = 0; i < ilen; ++i) {\n var item = parsed[i];\n var index = item[iAxis],\n value = item[vAxis];\n var itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\n\nfunction getFirstScaleId(chart, axis) {\n var scales = chart.scales;\n return Object.keys(scales).filter(function (key) {\n return scales[key].axis === axis;\n }).shift();\n}\n\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index: index,\n mode: 'default',\n type: 'dataset'\n });\n}\n\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element: element,\n index: index,\n mode: 'default',\n type: 'data'\n });\n}\n\nfunction clearStacks(meta, items) {\n var datasetIndex = meta.controller.index;\n var axis = meta.vScale && meta.vScale.axis;\n\n if (!axis) {\n return;\n }\n\n items = items || meta._parsed;\n\n var _iterator3 = _createForOfIteratorHelper(items),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var parsed = _step3.value;\n var stacks = parsed._stacks;\n\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n\n delete stacks[axis][datasetIndex];\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n}\n\nvar isDirectUpdateMode = function isDirectUpdateMode(mode) {\n return mode === 'reset' || mode === 'none';\n};\n\nvar cloneIfNotShared = function cloneIfNotShared(cached, shared) {\n return shared ? cached : Object.assign({}, cached);\n};\n\nvar createStack = function createStack(canStack, meta, chart) {\n return canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\n};\n\nvar DatasetController = /*#__PURE__*/function () {\n function DatasetController(chart, datasetIndex) {\n _classCallCheck(this, DatasetController);\n\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n\n _createClass(DatasetController, [{\n key: \"initialize\",\n value: function initialize() {\n var meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n }, {\n key: \"updateIndex\",\n value: function updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n\n this.index = datasetIndex;\n }\n }, {\n key: \"linkScales\",\n value: function linkScales() {\n var chart = this.chart;\n var meta = this._cachedMeta;\n var dataset = this.getDataset();\n\n var chooseId = function chooseId(axis, x, y, r) {\n return axis === 'x' ? x : axis === 'r' ? r : y;\n };\n\n var xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n var yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n var rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n var indexAxis = meta.indexAxis;\n var iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n var vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n }, {\n key: \"getDataset\",\n value: function getDataset() {\n return this.chart.data.datasets[this.index];\n }\n }, {\n key: \"getMeta\",\n value: function getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n }, {\n key: \"getScaleForId\",\n value: function getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n }, {\n key: \"_getOtherScale\",\n value: function _getOtherScale(scale) {\n var meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._update('reset');\n }\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n var meta = this._cachedMeta;\n\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n }, {\n key: \"_dataCheck\",\n value: function _dataCheck() {\n var dataset = this.getDataset();\n var data = dataset.data || (dataset.data = []);\n var _data = this._data;\n\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n var meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n\n this._syncList = [];\n this._data = data;\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var meta = this._cachedMeta;\n\n this._dataCheck();\n\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n }, {\n key: \"buildOrUpdateElements\",\n value: function buildOrUpdateElements(resetNewElements) {\n var meta = this._cachedMeta;\n var dataset = this.getDataset();\n var stackChanged = false;\n\n this._dataCheck();\n\n var oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n\n this._resyncElements(resetNewElements);\n\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var config = this.chart.config;\n var scopeKeys = config.datasetScopeKeys(this._type);\n var scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n }\n }, {\n key: \"parse\",\n value: function parse(start, count) {\n var meta = this._cachedMeta,\n data = this._data;\n var iScale = meta.iScale,\n _stacked = meta._stacked;\n var iAxis = iScale.axis;\n var sorted = start === 0 && count === data.length ? true : meta._sorted;\n var prev = start > 0 && meta._parsed[start - 1];\n var i, cur, parsed;\n\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n\n var isNotInOrderComparedToPrev = function isNotInOrderComparedToPrev() {\n return cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n };\n\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n\n prev = cur;\n }\n }\n\n meta._sorted = sorted;\n }\n\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n }, {\n key: \"parsePrimitiveData\",\n value: function parsePrimitiveData(meta, data, start, count) {\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var labels = iScale.getLabels();\n var singleScale = iScale === vScale;\n var parsed = new Array(count);\n var i, ilen, index;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n var _parsed$i;\n\n index = i + start;\n parsed[i] = (_parsed$i = {}, _defineProperty(_parsed$i, iAxis, singleScale || iScale.parse(labels[index], index)), _defineProperty(_parsed$i, vAxis, vScale.parse(data[index], index)), _parsed$i);\n }\n\n return parsed;\n }\n }, {\n key: \"parseArrayData\",\n value: function parseArrayData(meta, data, start, count) {\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var parsed = new Array(count);\n var i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n\n return parsed;\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var _this$_parsing = this._parsing,\n _this$_parsing$xAxisK = _this$_parsing.xAxisKey,\n xAxisKey = _this$_parsing$xAxisK === void 0 ? 'x' : _this$_parsing$xAxisK,\n _this$_parsing$yAxisK = _this$_parsing.yAxisKey,\n yAxisKey = _this$_parsing$yAxisK === void 0 ? 'y' : _this$_parsing$yAxisK;\n var parsed = new Array(count);\n var i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n\n return parsed;\n }\n }, {\n key: \"getParsed\",\n value: function getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n }, {\n key: \"getDataElement\",\n value: function getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n }, {\n key: \"applyStack\",\n value: function applyStack(scale, parsed, mode) {\n var chart = this.chart;\n var meta = this._cachedMeta;\n var value = parsed[scale.axis];\n var stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return _applyStack(stack, value, meta.index, {\n mode: mode\n });\n }\n }, {\n key: \"updateRangeFromParsed\",\n value: function updateRangeFromParsed(range, scale, parsed, stack) {\n var parsedValue = parsed[scale.axis];\n var value = parsedValue === null ? NaN : parsedValue;\n var values = stack && parsed._stacks[scale.axis];\n\n if (stack && values) {\n stack.values = values;\n value = _applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n }, {\n key: \"getMinMax\",\n value: function getMinMax(scale, canStack) {\n var meta = this._cachedMeta;\n var _parsed = meta._parsed;\n var sorted = meta._sorted && scale === meta.iScale;\n var ilen = _parsed.length;\n\n var otherScale = this._getOtherScale(scale);\n\n var stack = createStack(canStack, meta, this.chart);\n var range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n\n var _getUserBounds = getUserBounds(otherScale),\n otherMin = _getUserBounds.min,\n otherMax = _getUserBounds.max;\n\n var i, parsed;\n\n function _skip() {\n parsed = _parsed[i];\n var otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n\n this.updateRangeFromParsed(range, scale, parsed, stack);\n\n if (sorted) {\n break;\n }\n }\n\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n\n return range;\n }\n }, {\n key: \"getAllParsedValues\",\n value: function getAllParsedValues(scale) {\n var parsed = this._cachedMeta._parsed;\n var values = [];\n var i, ilen, value;\n\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n\n return values;\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n return false;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var iScale = meta.iScale;\n var vScale = meta.vScale;\n var parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n }, {\n key: \"_update\",\n value: function _update(mode) {\n var meta = this._cachedMeta;\n this.configure();\n this._cachedDataOpts = {};\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n }, {\n key: \"update\",\n value: function update(mode) {}\n }, {\n key: \"draw\",\n value: function draw() {\n var ctx = this._ctx;\n var chart = this.chart;\n var meta = this._cachedMeta;\n var elements = meta.data || [];\n var area = chart.chartArea;\n var active = [];\n var start = this._drawStart || 0;\n var count = this._drawCount || elements.length - start;\n var i;\n\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n\n for (i = start; i < start + count; ++i) {\n var element = elements[i];\n\n if (element.hidden) {\n continue;\n }\n\n if (element.active) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n }, {\n key: \"getStyle\",\n value: function getStyle(index, active) {\n var mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n }, {\n key: \"getContext\",\n value: function getContext(index, active, mode) {\n var dataset = this.getDataset();\n var context;\n\n if (index >= 0 && index < this._cachedMeta.data.length) {\n var element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n }, {\n key: \"resolveDatasetElementOptions\",\n value: function resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n }, {\n key: \"resolveDataElementOptions\",\n value: function resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n }, {\n key: \"_resolveElementOptions\",\n value: function _resolveElementOptions(elementType) {\n var _this3 = this;\n\n var mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n var index = arguments.length > 2 ? arguments[2] : undefined;\n var active = mode === 'active';\n var cache = this._cachedDataOpts;\n var cacheKey = elementType + '-' + mode;\n var cached = cache[cacheKey];\n var sharing = this.enableOptionSharing && defined(index);\n\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n\n var config = this.chart.config;\n var scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n var prefixes = active ? [\"\".concat(elementType, \"Hover\"), 'hover', elementType, ''] : [elementType, ''];\n var scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n var names = Object.keys(defaults.elements[elementType]);\n\n var context = function context() {\n return _this3.getContext(index, active);\n };\n\n var values = config.resolveNamedOptions(scopes, names, context, prefixes);\n\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n\n return values;\n }\n }, {\n key: \"_resolveAnimations\",\n value: function _resolveAnimations(index, transition, active) {\n var chart = this.chart;\n var cache = this._cachedDataOpts;\n var cacheKey = \"animation-\".concat(transition);\n var cached = cache[cacheKey];\n\n if (cached) {\n return cached;\n }\n\n var options;\n\n if (chart.options.animation !== false) {\n var config = this.chart.config;\n var scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n var scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n\n var animations = new Animations(chart, options && options.animations);\n\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n\n return animations;\n }\n }, {\n key: \"getSharedOptions\",\n value: function getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n }, {\n key: \"includeOptions\",\n value: function includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n }, {\n key: \"updateElement\",\n value: function updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n }, {\n key: \"updateSharedOptions\",\n value: function updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n }, {\n key: \"_setStyle\",\n value: function _setStyle(element, index, mode, active) {\n element.active = active;\n var options = this.getStyle(index, active);\n\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n }, {\n key: \"removeHoverStyle\",\n value: function removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n }, {\n key: \"setHoverStyle\",\n value: function setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n }, {\n key: \"_removeDatasetHoverStyle\",\n value: function _removeDatasetHoverStyle() {\n var element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n }, {\n key: \"_setDatasetHoverStyle\",\n value: function _setDatasetHoverStyle() {\n var element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n }, {\n key: \"_resyncElements\",\n value: function _resyncElements(resetNewElements) {\n var data = this._data;\n var elements = this._cachedMeta.data;\n\n var _iterator4 = _createForOfIteratorHelper(this._syncList),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _ref3 = _step4.value;\n\n var _ref2 = _slicedToArray(_ref3, 3);\n\n var method = _ref2[0];\n var arg1 = _ref2[1];\n var arg2 = _ref2[2];\n this[method](arg1, arg2);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n this._syncList = [];\n var numMeta = elements.length;\n var numData = data.length;\n var count = Math.min(numData, numMeta);\n\n if (count) {\n this.parse(0, count);\n }\n\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n }, {\n key: \"_insertElements\",\n value: function _insertElements(start, count) {\n var resetNewElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var meta = this._cachedMeta;\n var data = meta.data;\n var end = start + count;\n var i;\n\n var move = function move(arr) {\n arr.length += count;\n\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n\n move(data);\n\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n\n if (this._parsing) {\n move(meta._parsed);\n }\n\n this.parse(start, count);\n\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(element, start, count, mode) {}\n }, {\n key: \"_removeElements\",\n value: function _removeElements(start, count) {\n var meta = this._cachedMeta;\n\n if (this._parsing) {\n var removed = meta._parsed.splice(start, count);\n\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n\n meta.data.splice(start, count);\n }\n }, {\n key: \"_sync\",\n value: function _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n var _args2 = _slicedToArray(args, 3),\n method = _args2[0],\n arg1 = _args2[1],\n arg2 = _args2[2];\n\n this[method](arg1, arg2);\n }\n }\n }, {\n key: \"_onDataPush\",\n value: function _onDataPush() {\n var count = arguments.length;\n\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n }, {\n key: \"_onDataPop\",\n value: function _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n }, {\n key: \"_onDataShift\",\n value: function _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n }, {\n key: \"_onDataSplice\",\n value: function _onDataSplice(start, count) {\n this._sync(['_removeElements', start, count]);\n\n this._sync(['_insertElements', start, arguments.length - 2]);\n }\n }, {\n key: \"_onDataUnshift\",\n value: function _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n }]);\n\n return DatasetController;\n}();\n\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n var visibleMetas = scale.getMatchingVisibleMetas(type);\n var values = [];\n\n for (var i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n\n scale._cache.$bar = _arrayUnique(values.sort(function (a, b) {\n return a - b;\n }));\n }\n\n return scale._cache.$bar;\n}\n\nfunction computeMinSampleSize(meta) {\n var scale = meta.iScale;\n var values = getAllScaleValues(scale, meta.type);\n var min = scale._length;\n var i, ilen, curr, prev;\n\n var updateMinAndPrev = function updateMinAndPrev() {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n\n prev = curr;\n };\n\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n\n prev = undefined;\n\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n\n return min;\n}\n\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n var thickness = options.barThickness;\n var size, ratio;\n\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n\n return {\n chunk: size / stackCount,\n ratio: ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n var pixels = ruler.pixels;\n var curr = pixels[index];\n var prev = index > 0 ? pixels[index - 1] : null;\n var next = index < pixels.length - 1 ? pixels[index + 1] : null;\n var percent = options.categoryPercentage;\n\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n\n if (next === null) {\n next = curr + curr - prev;\n }\n\n var start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n var size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start: start\n };\n}\n\nfunction parseFloatBar(entry, item, vScale, i) {\n var startValue = vScale.parse(entry[0], i);\n var endValue = vScale.parse(entry[1], i);\n var min = Math.min(startValue, endValue);\n var max = Math.max(startValue, endValue);\n var barStart = min;\n var barEnd = max;\n\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart: barStart,\n barEnd: barEnd,\n start: startValue,\n end: endValue,\n min: min,\n max: max\n };\n}\n\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n\n return item;\n}\n\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n var iScale = meta.iScale;\n var vScale = meta.vScale;\n var labels = iScale.getLabels();\n var singleScale = iScale === vScale;\n var parsed = [];\n var i, ilen, item, entry;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n\n return parsed;\n}\n\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\n\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\n\nfunction borderProps(properties) {\n var reverse, start, end, top, bottom;\n\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n\n return {\n start: start,\n end: end,\n reverse: reverse,\n top: top,\n bottom: bottom\n };\n}\n\nfunction setBorderSkipped(properties, options, stack, index) {\n var edge = options.borderSkipped;\n var res = {};\n\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n\n var _borderProps = borderProps(properties),\n start = _borderProps.start,\n end = _borderProps.end,\n reverse = _borderProps.reverse,\n top = _borderProps.top,\n bottom = _borderProps.bottom;\n\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\n\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n\n return edge;\n}\n\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\n\nfunction setInflateAmount(properties, _ref4, ratio) {\n var inflateAmount = _ref4.inflateAmount;\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\n\nvar BarController = /*#__PURE__*/function (_DatasetController) {\n _inherits(BarController, _DatasetController);\n\n var _super = _createSuper(BarController);\n\n function BarController() {\n _classCallCheck(this, BarController);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(BarController, [{\n key: \"parsePrimitiveData\",\n value: function parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n }, {\n key: \"parseArrayData\",\n value: function parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var _this$_parsing2 = this._parsing,\n _this$_parsing2$xAxis = _this$_parsing2.xAxisKey,\n xAxisKey = _this$_parsing2$xAxis === void 0 ? 'x' : _this$_parsing2$xAxis,\n _this$_parsing2$yAxis = _this$_parsing2.yAxisKey,\n yAxisKey = _this$_parsing2$yAxis === void 0 ? 'y' : _this$_parsing2$yAxis;\n var iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n var vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n var parsed = [];\n var i, ilen, item, obj;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n\n return parsed;\n }\n }, {\n key: \"updateRangeFromParsed\",\n value: function updateRangeFromParsed(range, scale, parsed, stack) {\n _get(_getPrototypeOf(BarController.prototype), \"updateRangeFromParsed\", this).call(this, range, scale, parsed, stack);\n\n var custom = parsed._custom;\n\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n return 0;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var parsed = this.getParsed(index);\n var custom = parsed._custom;\n var value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value: value\n };\n }\n }, {\n key: \"initialize\",\n value: function initialize() {\n this.enableOptionSharing = true;\n\n _get(_getPrototypeOf(BarController.prototype), \"initialize\", this).call(this);\n\n var meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(bars, start, count, mode) {\n var reset = mode === 'reset';\n var index = this.index,\n vScale = this._cachedMeta.vScale;\n var base = vScale.getBasePixel();\n var horizontal = vScale.isHorizontal();\n\n var ruler = this._getRuler();\n\n var firstOpts = this.resolveDataElementOptions(start, mode);\n var sharedOptions = this.getSharedOptions(firstOpts);\n var includeOptions = this.includeOptions(mode, sharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n\n for (var i = start; i < start + count; i++) {\n var parsed = this.getParsed(i);\n var vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base: base,\n head: base\n } : this._calculateBarValuePixels(i);\n\n var ipixels = this._calculateBarIndexPixels(i, ruler);\n\n var stack = (parsed._stacks || {})[vScale.axis];\n var properties = {\n horizontal: horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n\n var options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n }, {\n key: \"_getStacks\",\n value: function _getStacks(last, dataIndex) {\n var meta = this._cachedMeta;\n var iScale = meta.iScale;\n var metasets = iScale.getMatchingVisibleMetas(this._type);\n var stacked = iScale.options.stacked;\n var ilen = metasets.length;\n var stacks = [];\n var i, item;\n\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n\n if (!item.controller.options.grouped) {\n continue;\n }\n\n if (typeof dataIndex !== 'undefined') {\n var val = item.controller.getParsed(dataIndex)[item.controller._cachedMeta.vScale.axis];\n\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n\n if (stacked === false || stacks.indexOf(item.stack) === -1 || stacked === undefined && item.stack === undefined) {\n stacks.push(item.stack);\n }\n\n if (item.index === last) {\n break;\n }\n }\n\n if (!stacks.length) {\n stacks.push(undefined);\n }\n\n return stacks;\n }\n }, {\n key: \"_getStackCount\",\n value: function _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n }, {\n key: \"_getStackIndex\",\n value: function _getStackIndex(datasetIndex, name, dataIndex) {\n var stacks = this._getStacks(datasetIndex, dataIndex);\n\n var index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n }, {\n key: \"_getRuler\",\n value: function _getRuler() {\n var opts = this.options;\n var meta = this._cachedMeta;\n var iScale = meta.iScale;\n var pixels = [];\n var i, ilen;\n\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n\n var barThickness = opts.barThickness;\n var min = barThickness || computeMinSampleSize(meta);\n return {\n min: min,\n pixels: pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n }, {\n key: \"_calculateBarValuePixels\",\n value: function _calculateBarValuePixels(index) {\n var _this$_cachedMeta = this._cachedMeta,\n vScale = _this$_cachedMeta.vScale,\n _stacked = _this$_cachedMeta._stacked,\n _this$options = this.options,\n baseValue = _this$options.base,\n minBarLength = _this$options.minBarLength;\n var actualBase = baseValue || 0;\n var parsed = this.getParsed(index);\n var custom = parsed._custom;\n var floating = isFloatBar(custom);\n var value = parsed[vScale.axis];\n var start = 0;\n var length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n var head, size;\n\n if (length !== value) {\n start = length - value;\n length = value;\n }\n\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n\n start += value;\n }\n\n var startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n var base = vScale.getPixelForValue(startValue);\n\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n\n size = head - base;\n\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n\n if (value === actualBase) {\n base -= size / 2;\n }\n\n head = base + size;\n }\n\n if (base === vScale.getPixelForValue(actualBase)) {\n var halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n\n return {\n size: size,\n base: base,\n head: head,\n center: head + size / 2\n };\n }\n }, {\n key: \"_calculateBarIndexPixels\",\n value: function _calculateBarIndexPixels(index, ruler) {\n var scale = ruler.scale;\n var options = this.options;\n var skipNull = options.skipNull;\n var maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n var center, size;\n\n if (ruler.grouped) {\n var stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n var range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount) : computeFitCategoryTraits(index, ruler, options, stackCount);\n\n var stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n\n return {\n base: center - size / 2,\n head: center + size / 2,\n center: center,\n size: size\n };\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var meta = this._cachedMeta;\n var vScale = meta.vScale;\n var rects = meta.data;\n var ilen = rects.length;\n var i = 0;\n\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n }]);\n\n return BarController;\n}(DatasetController);\n\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n};\n\nvar BubbleController = /*#__PURE__*/function (_DatasetController2) {\n _inherits(BubbleController, _DatasetController2);\n\n var _super2 = _createSuper(BubbleController);\n\n function BubbleController() {\n _classCallCheck(this, BubbleController);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(BubbleController, [{\n key: \"initialize\",\n value: function initialize() {\n this.enableOptionSharing = true;\n\n _get(_getPrototypeOf(BubbleController.prototype), \"initialize\", this).call(this);\n }\n }, {\n key: \"parsePrimitiveData\",\n value: function parsePrimitiveData(meta, data, start, count) {\n var parsed = _get(_getPrototypeOf(BubbleController.prototype), \"parsePrimitiveData\", this).call(this, meta, data, start, count);\n\n for (var i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n\n return parsed;\n }\n }, {\n key: \"parseArrayData\",\n value: function parseArrayData(meta, data, start, count) {\n var parsed = _get(_getPrototypeOf(BubbleController.prototype), \"parseArrayData\", this).call(this, meta, data, start, count);\n\n for (var i = 0; i < parsed.length; i++) {\n var item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n\n return parsed;\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var parsed = _get(_getPrototypeOf(BubbleController.prototype), \"parseObjectData\", this).call(this, meta, data, start, count);\n\n for (var i = 0; i < parsed.length; i++) {\n var item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n\n return parsed;\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n var data = this._cachedMeta.data;\n var max = 0;\n\n for (var i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n\n return max > 0 && max;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var parsed = this.getParsed(index);\n var x = xScale.getLabelForValue(parsed.x);\n var y = yScale.getLabelForValue(parsed.y);\n var r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var reset = mode === 'reset';\n var _this$_cachedMeta2 = this._cachedMeta,\n iScale = _this$_cachedMeta2.iScale,\n vScale = _this$_cachedMeta2.vScale;\n var firstOpts = this.resolveDataElementOptions(start, mode);\n var sharedOptions = this.getSharedOptions(firstOpts);\n var includeOptions = this.includeOptions(mode, sharedOptions);\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n\n for (var i = start; i < start + count; i++) {\n var point = points[i];\n var parsed = !reset && this.getParsed(i);\n var properties = {};\n var iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n var vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n\n if (includeOptions) {\n properties.options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n\n if (reset) {\n properties.options.radius = 0;\n }\n }\n\n this.updateElement(point, i, properties, mode);\n }\n\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n }, {\n key: \"resolveDataElementOptions\",\n value: function resolveDataElementOptions(index, mode) {\n var parsed = this.getParsed(index);\n\n var values = _get(_getPrototypeOf(BubbleController.prototype), \"resolveDataElementOptions\", this).call(this, index, mode);\n\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n\n var radius = values.radius;\n\n if (mode !== 'active') {\n values.radius = 0;\n }\n\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n }]);\n\n return BubbleController;\n}(DatasetController);\n\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n var ratioX = 1;\n var ratioY = 1;\n var offsetX = 0;\n var offsetY = 0;\n\n if (circumference < TAU) {\n var startAngle = rotation;\n var endAngle = startAngle + circumference;\n var startX = Math.cos(startAngle);\n var startY = Math.sin(startAngle);\n var endX = Math.cos(endAngle);\n var endY = Math.sin(endAngle);\n\n var calcMax = function calcMax(angle, a, b) {\n return _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n };\n\n var calcMin = function calcMin(angle, a, b) {\n return _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n };\n\n var maxX = calcMax(0, startX, endX);\n var maxY = calcMax(HALF_PI, startY, endY);\n var minX = calcMin(PI, startX, endX);\n var minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n\n return {\n ratioX: ratioX,\n ratioY: ratioY,\n offsetX: offsetX,\n offsetY: offsetY\n };\n}\n\nvar DoughnutController = /*#__PURE__*/function (_DatasetController3) {\n _inherits(DoughnutController, _DatasetController3);\n\n var _super3 = _createSuper(DoughnutController);\n\n function DoughnutController(chart, datasetIndex) {\n var _this4;\n\n _classCallCheck(this, DoughnutController);\n\n _this4 = _super3.call(this, chart, datasetIndex);\n _this4.enableOptionSharing = true;\n _this4.innerRadius = undefined;\n _this4.outerRadius = undefined;\n _this4.offsetX = undefined;\n _this4.offsetY = undefined;\n return _this4;\n }\n\n _createClass(DoughnutController, [{\n key: \"linkScales\",\n value: function linkScales() {}\n }, {\n key: \"parse\",\n value: function parse(start, count) {\n var data = this.getDataset().data;\n var meta = this._cachedMeta;\n\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n var getter = function getter(i) {\n return +data[i];\n };\n\n if (isObject(data[start])) {\n var _this$_parsing$key = this._parsing.key,\n key = _this$_parsing$key === void 0 ? 'value' : _this$_parsing$key;\n\n getter = function getter(i) {\n return +resolveObjectKey(data[i], key);\n };\n }\n\n var i, ilen;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n }, {\n key: \"_getRotation\",\n value: function _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n }, {\n key: \"_getCircumference\",\n value: function _getCircumference() {\n return toRadians(this.options.circumference);\n }\n }, {\n key: \"_getRotationExtents\",\n value: function _getRotationExtents() {\n var min = TAU;\n var max = -TAU;\n\n for (var i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n var controller = this.chart.getDatasetMeta(i).controller;\n\n var rotation = controller._getRotation();\n\n var circumference = controller._getCircumference();\n\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n\n return {\n rotation: min,\n circumference: max - min\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var chart = this.chart;\n var chartArea = chart.chartArea;\n var meta = this._cachedMeta;\n var arcs = meta.data;\n var spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n var maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n var cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n\n var chartWeight = this._getRingWeight(this.index);\n\n var _this$_getRotationExt = this._getRotationExtents(),\n circumference = _this$_getRotationExt.circumference,\n rotation = _this$_getRotationExt.rotation;\n\n var _getRatioAndOffset = getRatioAndOffset(rotation, circumference, cutout),\n ratioX = _getRatioAndOffset.ratioX,\n ratioY = _getRatioAndOffset.ratioY,\n offsetX = _getRatioAndOffset.offsetX,\n offsetY = _getRatioAndOffset.offsetY;\n\n var maxWidth = (chartArea.width - spacing) / ratioX;\n var maxHeight = (chartArea.height - spacing) / ratioY;\n var maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n var outerRadius = toDimension(this.options.radius, maxRadius);\n var innerRadius = Math.max(outerRadius * cutout, 0);\n\n var radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n }, {\n key: \"_circumference\",\n value: function _circumference(i, reset) {\n var opts = this.options;\n var meta = this._cachedMeta;\n\n var circumference = this._getCircumference();\n\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(arcs, start, count, mode) {\n var reset = mode === 'reset';\n var chart = this.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var animationOpts = opts.animation;\n var centerX = (chartArea.left + chartArea.right) / 2;\n var centerY = (chartArea.top + chartArea.bottom) / 2;\n var animateScale = reset && animationOpts.animateScale;\n var innerRadius = animateScale ? 0 : this.innerRadius;\n var outerRadius = animateScale ? 0 : this.outerRadius;\n var firstOpts = this.resolveDataElementOptions(start, mode);\n var sharedOptions = this.getSharedOptions(firstOpts);\n var includeOptions = this.includeOptions(mode, sharedOptions);\n\n var startAngle = this._getRotation();\n\n var i;\n\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n\n for (i = start; i < start + count; ++i) {\n var circumference = this._circumference(i, reset);\n\n var arc = arcs[i];\n var properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle: startAngle,\n endAngle: startAngle + circumference,\n circumference: circumference,\n outerRadius: outerRadius,\n innerRadius: innerRadius\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n }, {\n key: \"calculateTotal\",\n value: function calculateTotal() {\n var meta = this._cachedMeta;\n var metaData = meta.data;\n var total = 0;\n var i;\n\n for (i = 0; i < metaData.length; i++) {\n var value = meta._parsed[i];\n\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n\n return total;\n }\n }, {\n key: \"calculateCircumference\",\n value: function calculateCircumference(value) {\n var total = this._cachedMeta.total;\n\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n\n return 0;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var chart = this.chart;\n var labels = chart.data.labels || [];\n var value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value: value\n };\n }\n }, {\n key: \"getMaxBorderWidth\",\n value: function getMaxBorderWidth(arcs) {\n var max = 0;\n var chart = this.chart;\n var i, ilen, meta, controller, options;\n\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n\n if (controller !== this) {\n controller.configure();\n }\n\n break;\n }\n }\n }\n\n if (!arcs) {\n return 0;\n }\n\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n\n return max;\n }\n }, {\n key: \"getMaxOffset\",\n value: function getMaxOffset(arcs) {\n var max = 0;\n\n for (var i = 0, ilen = arcs.length; i < ilen; ++i) {\n var options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n\n return max;\n }\n }, {\n key: \"_getRingWeightOffset\",\n value: function _getRingWeightOffset(datasetIndex) {\n var ringWeightOffset = 0;\n\n for (var i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n\n return ringWeightOffset;\n }\n }, {\n key: \"_getRingWeight\",\n value: function _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n }, {\n key: \"_getVisibleDatasetWeightTotal\",\n value: function _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n }]);\n\n return DoughnutController;\n}(DatasetController);\n\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n};\nDoughnutController.descriptors = {\n _scriptable: function _scriptable(name) {\n return name !== 'spacing';\n },\n _indexable: function _indexable(name) {\n return name !== 'spacing';\n }\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels: function generateLabels(chart) {\n var data = chart.data;\n\n if (data.labels.length && data.datasets.length) {\n var pointStyle = chart.legend.options.labels.pointStyle;\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n\n return [];\n }\n },\n onClick: function onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n },\n label: function label(tooltipItem) {\n var dataLabel = tooltipItem.label;\n var value = ': ' + tooltipItem.formattedValue;\n\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n\n return dataLabel;\n }\n }\n }\n }\n};\n\nvar LineController = /*#__PURE__*/function (_DatasetController4) {\n _inherits(LineController, _DatasetController4);\n\n var _super4 = _createSuper(LineController);\n\n function LineController() {\n _classCallCheck(this, LineController);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(LineController, [{\n key: \"initialize\",\n value: function initialize() {\n this.enableOptionSharing = true;\n\n _get(_getPrototypeOf(LineController.prototype), \"initialize\", this).call(this);\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var meta = this._cachedMeta;\n var line = meta.dataset,\n _meta$data = meta.data,\n points = _meta$data === void 0 ? [] : _meta$data,\n _dataset = meta._dataset;\n var animationsDisabled = this.chart._animationsDisabled;\n\n var _getStartAndCountOfVi = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled),\n start = _getStartAndCountOfVi.start,\n count = _getStartAndCountOfVi.count;\n\n this._drawStart = start;\n this._drawCount = count;\n\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n var options = this.resolveDatasetElementOptions(mode);\n\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options: options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var reset = mode === 'reset';\n var _this$_cachedMeta3 = this._cachedMeta,\n iScale = _this$_cachedMeta3.iScale,\n vScale = _this$_cachedMeta3.vScale,\n _stacked = _this$_cachedMeta3._stacked,\n _dataset = _this$_cachedMeta3._dataset;\n var firstOpts = this.resolveDataElementOptions(start, mode);\n var sharedOptions = this.getSharedOptions(firstOpts);\n var includeOptions = this.includeOptions(mode, sharedOptions);\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var _this$options2 = this.options,\n spanGaps = _this$options2.spanGaps,\n segment = _this$options2.segment;\n var maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n var directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n var prevParsed = start > 0 && this.getParsed(start - 1);\n\n for (var i = start; i < start + count; ++i) {\n var point = points[i];\n var parsed = this.getParsed(i);\n var properties = directUpdate ? point : {};\n var nullData = isNullOrUndef(parsed[vAxis]);\n var iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n var vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && parsed[iAxis] - prevParsed[iAxis] > maxGapLength;\n\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n var meta = this._cachedMeta;\n var dataset = meta.dataset;\n var border = dataset.options && dataset.options.borderWidth || 0;\n var data = meta.data || [];\n\n if (!data.length) {\n return border;\n }\n\n var firstPoint = data[0].size(this.resolveDataElementOptions(0));\n var lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n\n _get(_getPrototypeOf(LineController.prototype), \"draw\", this).call(this);\n }\n }]);\n\n return LineController;\n}(DatasetController);\n\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n};\n\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n var pointCount = points.length;\n var start = 0;\n var count = pointCount;\n\n if (meta._sorted) {\n var iScale = meta.iScale,\n _parsed = meta._parsed;\n var axis = iScale.axis;\n\n var _iScale$getUserBounds = iScale.getUserBounds(),\n min = _iScale$getUserBounds.min,\n max = _iScale$getUserBounds.max,\n minDefined = _iScale$getUserBounds.minDefined,\n maxDefined = _iScale$getUserBounds.maxDefined;\n\n if (minDefined) {\n start = _limitValue(Math.min(_lookupByKey(_parsed, iScale.axis, min).lo, animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo), 0, pointCount - 1);\n }\n\n if (maxDefined) {\n count = _limitValue(Math.max(_lookupByKey(_parsed, iScale.axis, max).hi + 1, animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1), start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n\n return {\n start: start,\n count: count\n };\n}\n\nfunction scaleRangesChanged(meta) {\n var xScale = meta.xScale,\n yScale = meta.yScale,\n _scaleRanges = meta._scaleRanges;\n var newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n\n var changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nvar PolarAreaController = /*#__PURE__*/function (_DatasetController5) {\n _inherits(PolarAreaController, _DatasetController5);\n\n var _super5 = _createSuper(PolarAreaController);\n\n function PolarAreaController(chart, datasetIndex) {\n var _this5;\n\n _classCallCheck(this, PolarAreaController);\n\n _this5 = _super5.call(this, chart, datasetIndex);\n _this5.innerRadius = undefined;\n _this5.outerRadius = undefined;\n return _this5;\n }\n\n _createClass(PolarAreaController, [{\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var chart = this.chart;\n var labels = chart.data.labels || [];\n var value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value: value\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var arcs = this._cachedMeta.data;\n\n this._updateRadius();\n\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n }, {\n key: \"_updateRadius\",\n value: function _updateRadius() {\n var chart = this.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n var outerRadius = Math.max(minSize / 2, 0);\n var innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n var radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(arcs, start, count, mode) {\n var reset = mode === 'reset';\n var chart = this.chart;\n var dataset = this.getDataset();\n var opts = chart.options;\n var animationOpts = opts.animation;\n var scale = this._cachedMeta.rScale;\n var centerX = scale.xCenter;\n var centerY = scale.yCenter;\n var datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n var angle = datasetStartAngle;\n var i;\n var defaultAngle = 360 / this.countVisibleElements();\n\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n\n for (i = start; i < start + count; i++) {\n var arc = arcs[i];\n var startAngle = angle;\n\n var endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n\n var outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(dataset.data[i]) : 0;\n angle = endAngle;\n\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n\n var properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n }, {\n key: \"countVisibleElements\",\n value: function countVisibleElements() {\n var _this6 = this;\n\n var dataset = this.getDataset();\n var meta = this._cachedMeta;\n var count = 0;\n meta.data.forEach(function (element, index) {\n if (!isNaN(dataset.data[index]) && _this6.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n }, {\n key: \"_computeAngle\",\n value: function _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n }]);\n\n return PolarAreaController;\n}(DatasetController);\n\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n }\n },\n indexAxis: 'r',\n startAngle: 0\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels: function generateLabels(chart) {\n var data = chart.data;\n\n if (data.labels.length && data.datasets.length) {\n var pointStyle = chart.legend.options.labels.pointStyle;\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n\n return [];\n }\n },\n onClick: function onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n },\n label: function label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nvar PieController = /*#__PURE__*/function (_DoughnutController) {\n _inherits(PieController, _DoughnutController);\n\n var _super6 = _createSuper(PieController);\n\n function PieController() {\n _classCallCheck(this, PieController);\n\n return _super6.apply(this, arguments);\n }\n\n return PieController;\n}(DoughnutController);\n\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nvar RadarController = /*#__PURE__*/function (_DatasetController6) {\n _inherits(RadarController, _DatasetController6);\n\n var _super7 = _createSuper(RadarController);\n\n function RadarController() {\n _classCallCheck(this, RadarController);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(RadarController, [{\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var vScale = this._cachedMeta.vScale;\n var parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var meta = this._cachedMeta;\n var line = meta.dataset;\n var points = meta.data || [];\n var labels = meta.iScale.getLabels();\n line.points = points;\n\n if (mode !== 'resize') {\n var options = this.resolveDatasetElementOptions(mode);\n\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n\n var properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options: options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n\n this.updateElements(points, 0, points.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var dataset = this.getDataset();\n var scale = this._cachedMeta.rScale;\n var reset = mode === 'reset';\n\n for (var i = start; i < start + count; i++) {\n var point = points[i];\n var options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n var pointPosition = scale.getPointPositionForValue(i, dataset.data[i]);\n var x = reset ? scale.xCenter : pointPosition.x;\n var y = reset ? scale.yCenter : pointPosition.y;\n var properties = {\n x: x,\n y: y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options: options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n }]);\n\n return RadarController;\n}(DatasetController);\n\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n};\n\nvar ScatterController = /*#__PURE__*/function (_LineController) {\n _inherits(ScatterController, _LineController);\n\n var _super8 = _createSuper(ScatterController);\n\n function ScatterController() {\n _classCallCheck(this, ScatterController);\n\n return _super8.apply(this, arguments);\n }\n\n return ScatterController;\n}(LineController);\n\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n },\n label: function label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\nvar controllers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BarController: BarController,\n BubbleController: BubbleController,\n DoughnutController: DoughnutController,\n LineController: LineController,\n PolarAreaController: PolarAreaController,\n PieController: PieController,\n RadarController: RadarController,\n ScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n\nvar DateAdapter = /*#__PURE__*/function () {\n function DateAdapter(options) {\n _classCallCheck(this, DateAdapter);\n\n this.options = options || {};\n }\n\n _createClass(DateAdapter, [{\n key: \"formats\",\n value: function formats() {\n return abstract();\n }\n }, {\n key: \"parse\",\n value: function parse(value, format) {\n return abstract();\n }\n }, {\n key: \"format\",\n value: function format(timestamp, _format) {\n return abstract();\n }\n }, {\n key: \"add\",\n value: function add(timestamp, amount, unit) {\n return abstract();\n }\n }, {\n key: \"diff\",\n value: function diff(a, b, unit) {\n return abstract();\n }\n }, {\n key: \"startOf\",\n value: function startOf(timestamp, unit, weekday) {\n return abstract();\n }\n }, {\n key: \"endOf\",\n value: function endOf(timestamp, unit) {\n return abstract();\n }\n }]);\n\n return DateAdapter;\n}();\n\nDateAdapter.override = function (members) {\n Object.assign(DateAdapter.prototype, members);\n};\n\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction getRelativePosition(e, chart) {\n if ('native' in e) {\n return {\n x: e.x,\n y: e.y\n };\n }\n\n return getRelativePosition$1(e, chart);\n}\n\nfunction evaluateAllVisibleItems(chart, handler) {\n var metasets = chart.getSortedVisibleDatasetMetas();\n var index, data, element;\n\n for (var i = 0, ilen = metasets.length; i < ilen; ++i) {\n var _metasets$i = metasets[i];\n index = _metasets$i.index;\n data = _metasets$i.data;\n\n for (var j = 0, jlen = data.length; j < jlen; ++j) {\n element = data[j];\n\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n\nfunction binarySearch(metaset, axis, value, intersect) {\n var controller = metaset.controller,\n data = metaset.data,\n _sorted = metaset._sorted;\n var iScale = controller._cachedMeta.iScale;\n\n if (iScale && axis === iScale.axis && _sorted && data.length) {\n var lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n var el = data[0];\n var range = typeof el.getRange === 'function' && el.getRange(axis);\n\n if (range) {\n var start = lookupMethod(data, axis, value - range);\n var end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n\nfunction optimizedEvaluateItems(chart, axis, position, handler, intersect) {\n var metasets = chart.getSortedVisibleDatasetMetas();\n var value = position[axis];\n\n for (var i = 0, ilen = metasets.length; i < ilen; ++i) {\n var _metasets$i2 = metasets[i],\n index = _metasets$i2.index,\n data = _metasets$i2.data;\n\n var _binarySearch = binarySearch(metasets[i], axis, value, intersect),\n lo = _binarySearch.lo,\n hi = _binarySearch.hi;\n\n for (var j = lo; j <= hi; ++j) {\n var element = data[j];\n\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n\nfunction getDistanceMetricForAxis(axis) {\n var useX = axis.indexOf('x') !== -1;\n var useY = axis.indexOf('y') !== -1;\n return function (pt1, pt2) {\n var deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n var deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n\nfunction getIntersectItems(chart, position, axis, useFinalPosition) {\n var items = [];\n\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n\n var evaluationFunc = function evaluationFunc(element, datasetIndex, index) {\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n };\n\n optimizedEvaluateItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition) {\n var distanceMetric = getDistanceMetricForAxis(axis);\n var minDistance = Number.POSITIVE_INFINITY;\n var items = [];\n\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n\n var evaluationFunc = function evaluationFunc(element, datasetIndex, index) {\n if (intersect && !element.inRange(position.x, position.y, useFinalPosition)) {\n return;\n }\n\n var center = element.getCenterPoint(useFinalPosition);\n\n if (!_isPointInArea(center, chart.chartArea, chart._minPadding) && !element.inRange(position.x, position.y, useFinalPosition)) {\n return;\n }\n\n var distance = distanceMetric(position, center);\n\n if (distance < minDistance) {\n items = [{\n element: element,\n datasetIndex: datasetIndex,\n index: index\n }];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n };\n\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\nfunction getAxisItems(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var items = [];\n var axis = options.axis;\n var rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n var intersectsItem = false;\n evaluateAllVisibleItems(chart, function (element, datasetIndex, index) {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n intersectsItem = true;\n }\n });\n\n if (options.intersect && !intersectsItem) {\n return [];\n }\n\n return items;\n}\n\nvar Interaction = {\n modes: {\n index: function index(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'x';\n var items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition) : getNearestItems(chart, position, axis, false, useFinalPosition);\n var elements = [];\n\n if (!items.length) {\n return [];\n }\n\n chart.getSortedVisibleDatasetMetas().forEach(function (meta) {\n var index = items[0].index;\n var element = meta.data[index];\n\n if (element && !element.skip) {\n elements.push({\n element: element,\n datasetIndex: meta.index,\n index: index\n });\n }\n });\n return elements;\n },\n dataset: function dataset(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n var items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition) : getNearestItems(chart, position, axis, false, useFinalPosition);\n\n if (items.length > 0) {\n var datasetIndex = items[0].datasetIndex;\n var data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n\n for (var i = 0; i < data.length; ++i) {\n items.push({\n element: data[i],\n datasetIndex: datasetIndex,\n index: i\n });\n }\n }\n\n return items;\n },\n point: function point(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n return getIntersectItems(chart, position, axis, useFinalPosition);\n },\n nearest: function nearest(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition);\n },\n x: function x(chart, e, options, useFinalPosition) {\n options.axis = 'x';\n return getAxisItems(chart, e, options, useFinalPosition);\n },\n y: function y(chart, e, options, useFinalPosition) {\n options.axis = 'y';\n return getAxisItems(chart, e, options, useFinalPosition);\n }\n }\n};\nvar STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\n\nfunction filterByPosition(array, position) {\n return array.filter(function (v) {\n return v.pos === position;\n });\n}\n\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(function (v) {\n return STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis;\n });\n}\n\nfunction sortByWeight(array, reverse) {\n return array.sort(function (a, b) {\n var v0 = reverse ? b : a;\n var v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\n\nfunction wrapBoxes(boxes) {\n var layoutBoxes = [];\n var i, ilen, box, pos, stack, stackWeight;\n\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n var _box = box;\n pos = _box.position;\n var _box$options = _box.options;\n stack = _box$options.stack;\n var _box$options$stackWei = _box$options.stackWeight;\n stackWeight = _box$options$stackWei === void 0 ? 1 : _box$options$stackWei;\n layoutBoxes.push({\n index: i,\n box: box,\n pos: pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight: stackWeight\n });\n }\n\n return layoutBoxes;\n}\n\nfunction buildStacks(layouts) {\n var stacks = {};\n\n var _iterator5 = _createForOfIteratorHelper(layouts),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var wrap = _step5.value;\n var stack = wrap.stack,\n pos = wrap.pos,\n stackWeight = wrap.stackWeight;\n\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n\n var _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n\n _stack.count++;\n _stack.weight += stackWeight;\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return stacks;\n}\n\nfunction setLayoutDims(layouts, params) {\n var stacks = buildStacks(layouts);\n var vBoxMaxWidth = params.vBoxMaxWidth,\n hBoxMaxHeight = params.hBoxMaxHeight;\n var i, ilen, layout;\n\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n var fullSize = layout.box.fullSize;\n var stack = stacks[layout.stack];\n var factor = stack && layout.stackWeight / stack.weight;\n\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n\n return stacks;\n}\n\nfunction buildLayoutBoxes(boxes) {\n var layoutBoxes = wrapBoxes(boxes);\n var fullSize = sortByWeight(layoutBoxes.filter(function (wrap) {\n return wrap.box.fullSize;\n }), true);\n var left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n var right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n var top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n var bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n var centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n var centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize: fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\n\nfunction updateDims(chartArea, params, layout, stacks) {\n var pos = layout.pos,\n box = layout.box;\n var maxPadding = chartArea.maxPadding;\n\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n\n var stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n\n var newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n var newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n var widthChanged = newWidth !== chartArea.w;\n var heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\n\nfunction handleMaxPadding(chartArea) {\n var maxPadding = chartArea.maxPadding;\n\n function updatePos(pos) {\n var change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n var maxPadding = chartArea.maxPadding;\n\n function marginForPositions(positions) {\n var margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach(function (pos) {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n\n return horizontal ? marginForPositions(['left', 'right']) : marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n var refitBoxes = [];\n var i, ilen, layout, box, refit, changed;\n\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n\n var _updateDims = updateDims(chartArea, params, layout, stacks),\n same = _updateDims.same,\n other = _updateDims.other;\n\n refit |= same && refitBoxes.length;\n changed = changed || other;\n\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\n\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\n\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n var userPadding = params.padding;\n var x = chartArea.x,\n y = chartArea.y;\n\n var _iterator6 = _createForOfIteratorHelper(boxes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var layout = _step6.value;\n var box = layout.box;\n var stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n var weight = layout.stackWeight / stack.weight || 1;\n\n if (layout.horizontal) {\n var width = chartArea.w * weight;\n var height = stack.size || box.height;\n\n if (defined(stack.start)) {\n y = stack.start;\n }\n\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n var _height = chartArea.h * weight;\n\n var _width = stack.size || box.width;\n\n if (defined(stack.start)) {\n x = stack.start;\n }\n\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, _width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, _width, _height);\n }\n\n stack.start = x;\n stack.placed += _height;\n x = box.right;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n chartArea.x = x;\n chartArea.y = y;\n}\n\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox: function addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n\n item._layers = item._layers || function () {\n return [{\n z: 0,\n draw: function draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n\n chart.boxes.push(item);\n },\n removeBox: function removeBox(chart, layoutItem) {\n var index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure: function configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update: function update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n\n var padding = toPadding(chart.options.layout.padding);\n var availableWidth = Math.max(width - padding.width, 0);\n var availableHeight = Math.max(height - padding.height, 0);\n var boxes = buildLayoutBoxes(chart.boxes);\n var verticalBoxes = boxes.vertical;\n var horizontalBoxes = boxes.horizontal;\n each(chart.boxes, function (box) {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n var visibleVerticalBoxCount = verticalBoxes.reduce(function (total, wrap) {\n return wrap.box.options && wrap.box.options.display === false ? total : total + 1;\n }, 0) || 1;\n var params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding: padding,\n availableWidth: availableWidth,\n availableHeight: availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n var maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n var chartArea = Object.assign({\n maxPadding: maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n var stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, function (layout) {\n var box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h);\n });\n }\n};\n\nvar BasePlatform = /*#__PURE__*/function () {\n function BasePlatform() {\n _classCallCheck(this, BasePlatform);\n }\n\n _createClass(BasePlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(canvas, aspectRatio) {}\n }, {\n key: \"releaseContext\",\n value: function releaseContext(context) {\n return false;\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(chart, type, listener) {}\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(chart, type, listener) {}\n }, {\n key: \"getDevicePixelRatio\",\n value: function getDevicePixelRatio() {\n return 1;\n }\n }, {\n key: \"getMaximumSize\",\n value: function getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width: width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n }, {\n key: \"isAttached\",\n value: function isAttached(canvas) {\n return true;\n }\n }, {\n key: \"updateConfig\",\n value: function updateConfig(config) {}\n }]);\n\n return BasePlatform;\n}();\n\nvar BasicPlatform = /*#__PURE__*/function (_BasePlatform) {\n _inherits(BasicPlatform, _BasePlatform);\n\n var _super9 = _createSuper(BasicPlatform);\n\n function BasicPlatform() {\n _classCallCheck(this, BasicPlatform);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(BasicPlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n }, {\n key: \"updateConfig\",\n value: function updateConfig(config) {\n config.options.animation = false;\n }\n }]);\n\n return BasicPlatform;\n}(BasePlatform);\n\nvar EXPANDO_KEY = '$chartjs';\nvar EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\n\nvar isNullOrEmpty = function isNullOrEmpty(value) {\n return value === null || value === '';\n};\n\nfunction initCanvas(canvas, aspectRatio) {\n var style = canvas.style;\n var renderHeight = canvas.getAttribute('height');\n var renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n\n if (isNullOrEmpty(renderWidth)) {\n var displayWidth = readUsedSize(canvas, 'width');\n\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n var displayHeight = readUsedSize(canvas, 'height');\n\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n\n return canvas;\n}\n\nvar eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\n\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction fromNativeEvent(event, chart) {\n var type = EVENT_TYPES[event.type] || event.type;\n\n var _getRelativePosition$ = getRelativePosition$1(event, chart),\n x = _getRelativePosition$.x,\n y = _getRelativePosition$.y;\n\n return {\n type: type,\n chart: chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\n\nfunction createAttachObserver(chart, type, listener) {\n var canvas = chart.canvas;\n var observer = new MutationObserver(function (entries) {\n var _iterator7 = _createForOfIteratorHelper(entries),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var entry = _step7.value;\n\n var _iterator8 = _createForOfIteratorHelper(entry.addedNodes),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var node = _step8.value;\n\n if (node === canvas || node.contains(canvas)) {\n return listener();\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\n\nfunction createDetachObserver(chart, type, listener) {\n var canvas = chart.canvas;\n var observer = new MutationObserver(function (entries) {\n var _iterator9 = _createForOfIteratorHelper(entries),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var entry = _step9.value;\n\n var _iterator10 = _createForOfIteratorHelper(entry.removedNodes),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var node = _step10.value;\n\n if (node === canvas || node.contains(canvas)) {\n return listener();\n }\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\n\nvar drpListeningCharts = new Map();\nvar oldDevicePixelRatio = 0;\n\nfunction onWindowResize() {\n var dpr = window.devicePixelRatio;\n\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach(function (resize, chart) {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\n\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n\n drpListeningCharts.set(chart, resize);\n}\n\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\n\nfunction createResizeObserver(chart, type, listener) {\n var canvas = chart.canvas;\n\n var container = canvas && _getParentNode(canvas);\n\n if (!container) {\n return;\n }\n\n var resize = throttled(function (width, height) {\n var w = container.clientWidth;\n listener(width, height);\n\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n var observer = new ResizeObserver(function (entries) {\n var entry = entries[0];\n var width = entry.contentRect.width;\n var height = entry.contentRect.height;\n\n if (width === 0 && height === 0) {\n return;\n }\n\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\n\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\n\nfunction createProxyAndListen(chart, type, listener) {\n var canvas = chart.canvas;\n var proxy = throttled(function (event) {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, function (args) {\n var event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\n\nvar DomPlatform = /*#__PURE__*/function (_BasePlatform2) {\n _inherits(DomPlatform, _BasePlatform2);\n\n var _super10 = _createSuper(DomPlatform);\n\n function DomPlatform() {\n _classCallCheck(this, DomPlatform);\n\n return _super10.apply(this, arguments);\n }\n\n _createClass(DomPlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(canvas, aspectRatio) {\n var context = canvas && canvas.getContext && canvas.getContext('2d');\n\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n\n return null;\n }\n }, {\n key: \"releaseContext\",\n value: function releaseContext(context) {\n var canvas = context.canvas;\n\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n\n var initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach(function (prop) {\n var value = initial[prop];\n\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n var style = initial.style || {};\n Object.keys(style).forEach(function (key) {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n var proxies = chart.$proxies || (chart.$proxies = {});\n var handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n var handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(chart, type) {\n var proxies = chart.$proxies || (chart.$proxies = {});\n var proxy = proxies[type];\n\n if (!proxy) {\n return;\n }\n\n var handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n var handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n }, {\n key: \"getDevicePixelRatio\",\n value: function getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n }, {\n key: \"getMaximumSize\",\n value: function getMaximumSize(canvas, width, height, aspectRatio) {\n return _getMaximumSize(canvas, width, height, aspectRatio);\n }\n }, {\n key: \"isAttached\",\n value: function isAttached(canvas) {\n var container = _getParentNode(canvas);\n\n return !!(container && container.isConnected);\n }\n }]);\n\n return DomPlatform;\n}(BasePlatform);\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n\n return DomPlatform;\n}\n\nvar Element = /*#__PURE__*/function () {\n function Element() {\n _classCallCheck(this, Element);\n\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n\n _createClass(Element, [{\n key: \"tooltipPosition\",\n value: function tooltipPosition(useFinalPosition) {\n var _this$getProps = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps.x,\n y = _this$getProps.y;\n\n return {\n x: x,\n y: y\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n }, {\n key: \"getProps\",\n value: function getProps(props, final) {\n var _this7 = this;\n\n var anims = this.$animations;\n\n if (!final || !anims) {\n return this;\n }\n\n var ret = {};\n props.forEach(function (prop) {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : _this7[prop];\n });\n return ret;\n }\n }]);\n\n return Element;\n}();\n\nElement.defaults = {};\nElement.defaultRoutes = undefined;\nvar formatters = {\n values: function values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric: function numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n\n var locale = this.chart.options.locale;\n var notation;\n var delta = tickValue;\n\n if (ticks.length > 1) {\n var maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n\n delta = calculateDelta(tickValue, ticks);\n }\n\n var logDelta = log10(Math.abs(delta));\n var numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n var options = {\n notation: notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic: function logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n\n var remain = tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n\n return '';\n }\n};\n\nfunction calculateDelta(tickValue, ticks) {\n var delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n\n return delta;\n}\n\nvar Ticks = {\n formatters: formatters\n};\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: function tickWidth(_ctx, options) {\n return options.lineWidth;\n },\n tickColor: function tickColor(_ctx, options) {\n return options.color;\n },\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: function _scriptable(name) {\n return !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser';\n },\n _indexable: function _indexable(name) {\n return name !== 'borderDash' && name !== 'tickBorderDash';\n }\n});\ndefaults.describe('scales', {\n _fallback: 'scale'\n});\ndefaults.describe('scale.ticks', {\n _scriptable: function _scriptable(name) {\n return name !== 'backdropPadding' && name !== 'callback';\n },\n _indexable: function _indexable(name) {\n return name !== 'backdropPadding';\n }\n});\n\nfunction autoSkip(scale, ticks) {\n var tickOpts = scale.options.ticks;\n var ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n var majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n var numMajorIndices = majorIndices.length;\n var first = majorIndices[0];\n var last = majorIndices[numMajorIndices - 1];\n var newTicks = [];\n\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n\n var spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n\n if (numMajorIndices > 0) {\n var i, ilen;\n var avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\n\nfunction determineMaxTicks(scale) {\n var offset = scale.options.offset;\n\n var tickLength = scale._tickSize();\n\n var maxScale = scale._length / tickLength + (offset ? 0 : 1);\n var maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n var evenMajorSpacing = getEvenSpacing(majorIndices);\n var spacing = ticks.length / ticksLimit;\n\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n\n var factors = _factorize(evenMajorSpacing);\n\n for (var i = 0, ilen = factors.length - 1; i < ilen; i++) {\n var factor = factors[i];\n\n if (factor > spacing) {\n return factor;\n }\n }\n\n return Math.max(spacing, 1);\n}\n\nfunction getMajorIndices(ticks) {\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n\n return result;\n}\n\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n var count = 0;\n var next = majorIndices[0];\n var i;\n spacing = Math.ceil(spacing);\n\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n var start = valueOrDefault(majorStart, 0);\n var end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n var count = 0;\n var length, i, next;\n spacing = Math.ceil(spacing);\n\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n\n next = start;\n\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n\nfunction getEvenSpacing(arr) {\n var len = arr.length;\n var i, diff;\n\n if (len < 2) {\n return false;\n }\n\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n\n return diff;\n}\n\nvar reverseAlign = function reverseAlign(align) {\n return align === 'left' ? 'right' : align === 'right' ? 'left' : align;\n};\n\nvar offsetFromEdge = function offsetFromEdge(scale, edge, offset) {\n return edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\n};\n\nfunction sample(arr, numItems) {\n var result = [];\n var increment = arr.length / numItems;\n var len = arr.length;\n var i = 0;\n\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n\n return result;\n}\n\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n var length = scale.ticks.length;\n var validIndex = Math.min(index, length - 1);\n var start = scale._startPixel;\n var end = scale._endPixel;\n var epsilon = 1e-6;\n var lineValue = scale.getPixelForTick(validIndex);\n var offset;\n\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n\n lineValue += validIndex < index ? offset : -offset;\n\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n\n return lineValue;\n}\n\nfunction garbageCollect(caches, length) {\n each(caches, function (cache) {\n var gc = cache.gc;\n var gcLen = gc.length / 2;\n var i;\n\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n\n gc.splice(0, gcLen);\n }\n });\n}\n\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n\n var font = toFont(options.font, fallback);\n var padding = toPadding(options.padding);\n var lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\n\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale: scale,\n type: 'scale'\n });\n}\n\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick: tick,\n index: index,\n type: 'tick'\n });\n}\n\nfunction titleAlign(align, position, reverse) {\n var ret = _toLeftRightCenter(align);\n\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n\n return ret;\n}\n\nfunction titleArgs(scale, offset, position, align) {\n var top = scale.top,\n left = scale.left,\n bottom = scale.bottom,\n right = scale.right,\n chart = scale.chart;\n var chartArea = chart.chartArea,\n scales = chart.scales;\n var rotation = 0;\n var maxWidth, titleX, titleY;\n var height = bottom - top;\n var width = right - left;\n\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n\n if (isObject(position)) {\n var positionAxisID = Object.keys(position)[0];\n var value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n var _positionAxisID = Object.keys(position)[0];\n var _value = position[_positionAxisID];\n titleX = scales[_positionAxisID].getPixelForValue(_value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n\n return {\n titleX: titleX,\n titleY: titleY,\n maxWidth: maxWidth,\n rotation: rotation\n };\n}\n\nvar Scale = /*#__PURE__*/function (_Element) {\n _inherits(Scale, _Element);\n\n var _super11 = _createSuper(Scale);\n\n function Scale(cfg) {\n var _this8;\n\n _classCallCheck(this, Scale);\n\n _this8 = _super11.call(this);\n _this8.id = cfg.id;\n _this8.type = cfg.type;\n _this8.options = undefined;\n _this8.ctx = cfg.ctx;\n _this8.chart = cfg.chart;\n _this8.top = undefined;\n _this8.bottom = undefined;\n _this8.left = undefined;\n _this8.right = undefined;\n _this8.width = undefined;\n _this8.height = undefined;\n _this8._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n _this8.maxWidth = undefined;\n _this8.maxHeight = undefined;\n _this8.paddingTop = undefined;\n _this8.paddingBottom = undefined;\n _this8.paddingLeft = undefined;\n _this8.paddingRight = undefined;\n _this8.axis = undefined;\n _this8.labelRotation = undefined;\n _this8.min = undefined;\n _this8.max = undefined;\n _this8._range = undefined;\n _this8.ticks = [];\n _this8._gridLineItems = null;\n _this8._labelItems = null;\n _this8._labelSizes = null;\n _this8._length = 0;\n _this8._maxLength = 0;\n _this8._longestTextCache = {};\n _this8._startPixel = undefined;\n _this8._endPixel = undefined;\n _this8._reversePixels = false;\n _this8._userMax = undefined;\n _this8._userMin = undefined;\n _this8._suggestedMax = undefined;\n _this8._suggestedMin = undefined;\n _this8._ticksLength = 0;\n _this8._borderValue = 0;\n _this8._cache = {};\n _this8._dataLimitsCached = false;\n _this8.$context = undefined;\n return _this8;\n }\n\n _createClass(Scale, [{\n key: \"init\",\n value: function init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n }, {\n key: \"parse\",\n value: function parse(raw, index) {\n return raw;\n }\n }, {\n key: \"getUserBounds\",\n value: function getUserBounds() {\n var _userMin = this._userMin,\n _userMax = this._userMax,\n _suggestedMin = this._suggestedMin,\n _suggestedMax = this._suggestedMax;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n }, {\n key: \"getMinMax\",\n value: function getMinMax(canStack) {\n var _this$getUserBounds = this.getUserBounds(),\n min = _this$getUserBounds.min,\n max = _this$getUserBounds.max,\n minDefined = _this$getUserBounds.minDefined,\n maxDefined = _this$getUserBounds.maxDefined;\n\n var range;\n\n if (minDefined && maxDefined) {\n return {\n min: min,\n max: max\n };\n }\n\n var metas = this.getMatchingVisibleMetas();\n\n for (var i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n }, {\n key: \"getPadding\",\n value: function getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n }, {\n key: \"getTicks\",\n value: function getTicks() {\n return this.ticks;\n }\n }, {\n key: \"getLabels\",\n value: function getLabels() {\n var data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n }, {\n key: \"beforeLayout\",\n value: function beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n }, {\n key: \"beforeUpdate\",\n value: function beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n }, {\n key: \"update\",\n value: function update(maxWidth, maxHeight, margins) {\n var _this$options3 = this.options,\n beginAtZero = _this$options3.beginAtZero,\n grace = _this$options3.grace,\n tickOpts = _this$options3.ticks;\n var sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n var samplingEnabled = sampleSize < this.ticks.length;\n\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n }\n\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var reversePixels = this.options.reverse;\n var startPixel, endPixel;\n\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n }, {\n key: \"afterUpdate\",\n value: function afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n }, {\n key: \"beforeSetDimensions\",\n value: function beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n }, {\n key: \"setDimensions\",\n value: function setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n }, {\n key: \"afterSetDimensions\",\n value: function afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n }, {\n key: \"_callHooks\",\n value: function _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n }, {\n key: \"beforeDataLimits\",\n value: function beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {}\n }, {\n key: \"afterDataLimits\",\n value: function afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n }, {\n key: \"beforeBuildTicks\",\n value: function beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n return [];\n }\n }, {\n key: \"afterBuildTicks\",\n value: function afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n }, {\n key: \"beforeTickToLabelConversion\",\n value: function beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var tickOpts = this.options.ticks;\n var i, ilen, tick;\n\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n }, {\n key: \"afterTickToLabelConversion\",\n value: function afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n }, {\n key: \"beforeCalculateLabelRotation\",\n value: function beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n }, {\n key: \"calculateLabelRotation\",\n value: function calculateLabelRotation() {\n var options = this.options;\n var tickOpts = options.ticks;\n var numTicks = this.ticks.length;\n var minRotation = tickOpts.minRotation || 0;\n var maxRotation = tickOpts.maxRotation;\n var labelRotation = minRotation;\n var tickWidth, maxHeight, maxLabelDiagonal;\n\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n\n var labelSizes = this._getLabelSizes();\n\n var maxLabelWidth = labelSizes.widest.width;\n var maxLabelHeight = labelSizes.highest.height;\n\n var maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n\n this.labelRotation = labelRotation;\n }\n }, {\n key: \"afterCalculateLabelRotation\",\n value: function afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n }, {\n key: \"beforeFit\",\n value: function beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var minSize = {\n width: 0,\n height: 0\n };\n var chart = this.chart,\n _this$options4 = this.options,\n tickOpts = _this$options4.ticks,\n titleOpts = _this$options4.title,\n gridOpts = _this$options4.grid;\n\n var display = this._isVisible();\n\n var isHorizontal = this.isHorizontal();\n\n if (display) {\n var titleHeight = getTitleHeight(titleOpts, chart.options.font);\n\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n\n if (tickOpts.display && this.ticks.length) {\n var _this$_getLabelSizes = this._getLabelSizes(),\n first = _this$_getLabelSizes.first,\n last = _this$_getLabelSizes.last,\n widest = _this$_getLabelSizes.widest,\n highest = _this$_getLabelSizes.highest;\n\n var tickPadding = tickOpts.padding * 2;\n var angleRadians = toRadians(this.labelRotation);\n var cos = Math.cos(angleRadians);\n var sin = Math.sin(angleRadians);\n\n if (isHorizontal) {\n var labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n var labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n\n this._calculatePadding(first, last, sin, cos);\n }\n }\n\n this._handleMargins();\n\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n }, {\n key: \"_calculatePadding\",\n value: function _calculatePadding(first, last, sin, cos) {\n var _this$options5 = this.options,\n _this$options5$ticks = _this$options5.ticks,\n align = _this$options5$ticks.align,\n padding = _this$options5$ticks.padding,\n position = _this$options5.position;\n var isRotated = this.labelRotation !== 0;\n var labelsBelowTicks = position !== 'top' && this.axis === 'x';\n\n if (this.isHorizontal()) {\n var offsetLeft = this.getPixelForTick(0) - this.left;\n var offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n var paddingLeft = 0;\n var paddingRight = 0;\n\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n var paddingTop = last.height / 2;\n var paddingBottom = first.height / 2;\n\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n }, {\n key: \"_handleMargins\",\n value: function _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n }, {\n key: \"afterFit\",\n value: function afterFit() {\n callback(this.options.afterFit, [this]);\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n var _this$options6 = this.options,\n axis = _this$options6.axis,\n position = _this$options6.position;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n }, {\n key: \"isFullSize\",\n value: function isFullSize() {\n return this.options.fullSize;\n }\n }, {\n key: \"_convertTicksToLabels\",\n value: function _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n var i, ilen;\n\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n\n this.afterTickToLabelConversion();\n }\n }, {\n key: \"_getLabelSizes\",\n value: function _getLabelSizes() {\n var labelSizes = this._labelSizes;\n\n if (!labelSizes) {\n var sampleSize = this.options.ticks.sampleSize;\n var ticks = this.ticks;\n\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n\n return labelSizes;\n }\n }, {\n key: \"_computeLabelSizes\",\n value: function _computeLabelSizes(ticks, length) {\n var ctx = this.ctx,\n caches = this._longestTextCache;\n var widths = [];\n var heights = [];\n var widestLabelSize = 0;\n var highestLabelSize = 0;\n var i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n\n garbageCollect(caches, length);\n var widest = widths.indexOf(widestLabelSize);\n var highest = heights.indexOf(highestLabelSize);\n\n var valueAt = function valueAt(idx) {\n return {\n width: widths[idx] || 0,\n height: heights[idx] || 0\n };\n };\n\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths: widths,\n heights: heights\n };\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return value;\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value, index) {\n return NaN;\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {}\n }, {\n key: \"getPixelForTick\",\n value: function getPixelForTick(index) {\n var ticks = this.ticks;\n\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n\n return this.getPixelForValue(ticks[index].value);\n }\n }, {\n key: \"getPixelForDecimal\",\n value: function getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n\n var pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n }, {\n key: \"getDecimalForPixel\",\n value: function getDecimalForPixel(pixel) {\n var decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n }, {\n key: \"getBasePixel\",\n value: function getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n }, {\n key: \"getBaseValue\",\n value: function getBaseValue() {\n var min = this.min,\n max = this.max;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n }, {\n key: \"getContext\",\n value: function getContext(index) {\n var ticks = this.ticks || [];\n\n if (index >= 0 && index < ticks.length) {\n var tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n }, {\n key: \"_tickSize\",\n value: function _tickSize() {\n var optionTicks = this.options.ticks;\n var rot = toRadians(this.labelRotation);\n var cos = Math.abs(Math.cos(rot));\n var sin = Math.abs(Math.sin(rot));\n\n var labelSizes = this._getLabelSizes();\n\n var padding = optionTicks.autoSkipPadding || 0;\n var w = labelSizes ? labelSizes.widest.width + padding : 0;\n var h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n }, {\n key: \"_isVisible\",\n value: function _isVisible() {\n var display = this.options.display;\n\n if (display !== 'auto') {\n return !!display;\n }\n\n return this.getMatchingVisibleMetas().length > 0;\n }\n }, {\n key: \"_computeGridLineItems\",\n value: function _computeGridLineItems(chartArea) {\n var axis = this.axis;\n var chart = this.chart;\n var options = this.options;\n var grid = options.grid,\n position = options.position;\n var offset = grid.offset;\n var isHorizontal = this.isHorizontal();\n var ticks = this.ticks;\n var ticksLength = ticks.length + (offset ? 1 : 0);\n var tl = getTickMarkLength(grid);\n var items = [];\n var borderOpts = grid.setContext(this.getContext());\n var axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n var axisHalfWidth = axisWidth / 2;\n\n var alignBorderValue = function alignBorderValue(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n\n var borderValue, i, lineValue, alignedLineValue;\n var tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n var positionAxisID = Object.keys(position)[0];\n var value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n var _positionAxisID2 = Object.keys(position)[0];\n var _value2 = position[_positionAxisID2];\n borderValue = alignBorderValue(this.chart.scales[_positionAxisID2].getPixelForValue(_value2));\n }\n\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n\n var limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n var step = Math.max(1, Math.ceil(ticksLength / limit));\n\n for (i = 0; i < ticksLength; i += step) {\n var optsAtIndex = grid.setContext(this.getContext(i));\n var lineWidth = optsAtIndex.lineWidth;\n var lineColor = optsAtIndex.color;\n var borderDash = grid.borderDash || [];\n var borderDashOffset = optsAtIndex.borderDashOffset;\n var tickWidth = optsAtIndex.tickWidth;\n var tickColor = optsAtIndex.tickColor;\n var tickBorderDash = optsAtIndex.tickBorderDash || [];\n var tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n\n if (lineValue === undefined) {\n continue;\n }\n\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n\n items.push({\n tx1: tx1,\n ty1: ty1,\n tx2: tx2,\n ty2: ty2,\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n width: lineWidth,\n color: lineColor,\n borderDash: borderDash,\n borderDashOffset: borderDashOffset,\n tickWidth: tickWidth,\n tickColor: tickColor,\n tickBorderDash: tickBorderDash,\n tickBorderDashOffset: tickBorderDashOffset\n });\n }\n\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n }, {\n key: \"_computeLabelItems\",\n value: function _computeLabelItems(chartArea) {\n var axis = this.axis;\n var options = this.options;\n var position = options.position,\n optionTicks = options.ticks;\n var isHorizontal = this.isHorizontal();\n var ticks = this.ticks;\n var align = optionTicks.align,\n crossAlign = optionTicks.crossAlign,\n padding = optionTicks.padding,\n mirror = optionTicks.mirror;\n var tl = getTickMarkLength(options.grid);\n var tickAndPadding = tl + padding;\n var hTickAndPadding = mirror ? -padding : tickAndPadding;\n var rotation = -toRadians(this.labelRotation);\n var items = [];\n var i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n var textBaseline = 'middle';\n\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n var ret = this._getYAxisLabelAlignment(tl);\n\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n var _ret = this._getYAxisLabelAlignment(tl);\n\n textAlign = _ret.textAlign;\n x = _ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n var positionAxisID = Object.keys(position)[0];\n var value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n var _positionAxisID3 = Object.keys(position)[0];\n var _value3 = position[_positionAxisID3];\n x = this.chart.scales[_positionAxisID3].getPixelForValue(_value3);\n }\n\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n\n var labelSizes = this._getLabelSizes();\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n var optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n var halfCount = lineCount / 2;\n var color = optsAtIndex.color;\n var strokeColor = optsAtIndex.textStrokeColor;\n var strokeWidth = optsAtIndex.textStrokeWidth;\n\n if (isHorizontal) {\n x = pixel;\n\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n\n var backdrop = void 0;\n\n if (optsAtIndex.showLabelBackdrop) {\n var labelPadding = toPadding(optsAtIndex.backdropPadding);\n var height = labelSizes.heights[i];\n var width = labelSizes.widths[i];\n var top = y + textOffset - labelPadding.top;\n var left = x - labelPadding.left;\n\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n\n case 'bottom':\n top -= height;\n break;\n }\n\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n\n case 'right':\n left -= width;\n break;\n }\n\n backdrop = {\n left: left,\n top: top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n\n items.push({\n rotation: rotation,\n label: label,\n font: font,\n color: color,\n strokeColor: strokeColor,\n strokeWidth: strokeWidth,\n textOffset: textOffset,\n textAlign: textAlign,\n textBaseline: textBaseline,\n translation: [x, y],\n backdrop: backdrop\n });\n }\n\n return items;\n }\n }, {\n key: \"_getXAxisLabelAlignment\",\n value: function _getXAxisLabelAlignment() {\n var _this$options7 = this.options,\n position = _this$options7.position,\n ticks = _this$options7.ticks;\n var rotation = -toRadians(this.labelRotation);\n\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n\n var align = 'center';\n\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n }\n\n return align;\n }\n }, {\n key: \"_getYAxisLabelAlignment\",\n value: function _getYAxisLabelAlignment(tl) {\n var _this$options8 = this.options,\n position = _this$options8.position,\n _this$options8$ticks = _this$options8.ticks,\n crossAlign = _this$options8$ticks.crossAlign,\n mirror = _this$options8$ticks.mirror,\n padding = _this$options8$ticks.padding;\n\n var labelSizes = this._getLabelSizes();\n\n var tickAndPadding = tl + padding;\n var widest = labelSizes.widest.width;\n var textAlign;\n var x;\n\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n\n return {\n textAlign: textAlign,\n x: x\n };\n }\n }, {\n key: \"_computeLabelArea\",\n value: function _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n\n var chart = this.chart;\n var position = this.options.position;\n\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n }, {\n key: \"drawBackground\",\n value: function drawBackground() {\n var ctx = this.ctx,\n backgroundColor = this.options.backgroundColor,\n left = this.left,\n top = this.top,\n width = this.width,\n height = this.height;\n\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n }, {\n key: \"getLineWidthForValue\",\n value: function getLineWidthForValue(value) {\n var grid = this.options.grid;\n\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n\n var ticks = this.ticks;\n var index = ticks.findIndex(function (t) {\n return t.value === value;\n });\n\n if (index >= 0) {\n var opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n\n return 0;\n }\n }, {\n key: \"drawGrid\",\n value: function drawGrid(chartArea) {\n var grid = this.options.grid;\n var ctx = this.ctx;\n\n var items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n\n var i, ilen;\n\n var drawLine = function drawLine(p1, p2, style) {\n if (!style.width || !style.color) {\n return;\n }\n\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n var item = items[i];\n\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n }, {\n key: \"drawBorder\",\n value: function drawBorder() {\n var chart = this.chart,\n ctx = this.ctx,\n grid = this.options.grid;\n var borderOpts = grid.setContext(this.getContext());\n var axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n\n if (!axisWidth) {\n return;\n }\n\n var lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n var borderValue = this._borderValue;\n var x1, x2, y1, y2;\n\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n }, {\n key: \"drawLabels\",\n value: function drawLabels(chartArea) {\n var optionTicks = this.options.ticks;\n\n if (!optionTicks.display) {\n return;\n }\n\n var ctx = this.ctx;\n\n var area = this._computeLabelArea();\n\n if (area) {\n clipArea(ctx, area);\n }\n\n var items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n\n var i, ilen;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n var item = items[i];\n var tickFont = item.font;\n var label = item.label;\n\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n\n var y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n\n if (area) {\n unclipArea(ctx);\n }\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {\n var ctx = this.ctx,\n _this$options9 = this.options,\n position = _this$options9.position,\n title = _this$options9.title,\n reverse = _this$options9.reverse;\n\n if (!title.display) {\n return;\n }\n\n var font = toFont(title.font);\n var padding = toPadding(title.padding);\n var align = title.align;\n var offset = font.lineHeight / 2;\n\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n\n var _titleArgs = titleArgs(this, offset, position, align),\n titleX = _titleArgs.titleX,\n titleY = _titleArgs.titleY,\n maxWidth = _titleArgs.maxWidth,\n rotation = _titleArgs.rotation;\n\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth: maxWidth,\n rotation: rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY]\n });\n }\n }, {\n key: \"draw\",\n value: function draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n }, {\n key: \"_layers\",\n value: function _layers() {\n var _this9 = this;\n\n var opts = this.options;\n var tz = opts.ticks && opts.ticks.z || 0;\n var gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: function draw(chartArea) {\n _this9.draw(chartArea);\n }\n }];\n }\n\n return [{\n z: gz,\n draw: function draw(chartArea) {\n _this9.drawBackground();\n\n _this9.drawGrid(chartArea);\n\n _this9.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: function draw() {\n _this9.drawBorder();\n }\n }, {\n z: tz,\n draw: function draw(chartArea) {\n _this9.drawLabels(chartArea);\n }\n }];\n }\n }, {\n key: \"getMatchingVisibleMetas\",\n value: function getMatchingVisibleMetas(type) {\n var metas = this.chart.getSortedVisibleDatasetMetas();\n var axisID = this.axis + 'AxisID';\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n var meta = metas[i];\n\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n\n return result;\n }\n }, {\n key: \"_resolveTickFontOptions\",\n value: function _resolveTickFontOptions(index) {\n var opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n }, {\n key: \"_maxDigits\",\n value: function _maxDigits() {\n var fontSize = this._resolveTickFontOptions(0).lineHeight;\n\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n }]);\n\n return Scale;\n}(Element);\n\nvar TypedRegistry = /*#__PURE__*/function () {\n function TypedRegistry(type, scope, override) {\n _classCallCheck(this, TypedRegistry);\n\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n\n _createClass(TypedRegistry, [{\n key: \"isForType\",\n value: function isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n }, {\n key: \"register\",\n value: function register(item) {\n var proto = Object.getPrototypeOf(item);\n var parentScope;\n\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n\n var items = this.items;\n var id = item.id;\n var scope = this.scope + '.' + id;\n\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n\n if (id in items) {\n return scope;\n }\n\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n\n return scope;\n }\n }, {\n key: \"get\",\n value: function get(id) {\n return this.items[id];\n }\n }, {\n key: \"unregister\",\n value: function unregister(item) {\n var items = this.items;\n var id = item.id;\n var scope = this.scope;\n\n if (id in items) {\n delete items[id];\n }\n\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n }]);\n\n return TypedRegistry;\n}();\n\nfunction registerDefaults(item, scope, parentScope) {\n var itemDefaults = merge(Object.create(null), [parentScope ? defaults.get(parentScope) : {}, defaults.get(scope), item.defaults]);\n defaults.set(scope, itemDefaults);\n\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\n\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(function (property) {\n var propertyParts = property.split('.');\n var sourceName = propertyParts.pop();\n var sourceScope = [scope].concat(propertyParts).join('.');\n var parts = routes[property].split('.');\n var targetName = parts.pop();\n var targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\n\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nvar Registry = /*#__PURE__*/function () {\n function Registry() {\n _classCallCheck(this, Registry);\n\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n\n _createClass(Registry, [{\n key: \"add\",\n value: function add() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._each('register', args);\n }\n }, {\n key: \"remove\",\n value: function remove() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n this._each('unregister', args);\n }\n }, {\n key: \"addControllers\",\n value: function addControllers() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n this._each('register', args, this.controllers);\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n this._each('register', args, this.elements);\n }\n }, {\n key: \"addPlugins\",\n value: function addPlugins() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n this._each('register', args, this.plugins);\n }\n }, {\n key: \"addScales\",\n value: function addScales() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n this._each('register', args, this.scales);\n }\n }, {\n key: \"getController\",\n value: function getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n }, {\n key: \"getElement\",\n value: function getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n }, {\n key: \"getPlugin\",\n value: function getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n }, {\n key: \"getScale\",\n value: function getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n }, {\n key: \"removeControllers\",\n value: function removeControllers() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n this._each('unregister', args, this.controllers);\n }\n }, {\n key: \"removeElements\",\n value: function removeElements() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n this._each('unregister', args, this.elements);\n }\n }, {\n key: \"removePlugins\",\n value: function removePlugins() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n this._each('unregister', args, this.plugins);\n }\n }, {\n key: \"removeScales\",\n value: function removeScales() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n\n this._each('unregister', args, this.scales);\n }\n }, {\n key: \"_each\",\n value: function _each(method, args, typedRegistry) {\n var _this10 = this;\n\n _toConsumableArray(args).forEach(function (arg) {\n var reg = typedRegistry || _this10._getRegistryForType(arg);\n\n if (typedRegistry || reg.isForType(arg) || reg === _this10.plugins && arg.id) {\n _this10._exec(method, reg, arg);\n } else {\n each(arg, function (item) {\n var itemReg = typedRegistry || _this10._getRegistryForType(item);\n\n _this10._exec(method, itemReg, item);\n });\n }\n });\n }\n }, {\n key: \"_exec\",\n value: function _exec(method, registry, component) {\n var camelMethod = _capitalize(method);\n\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n }, {\n key: \"_getRegistryForType\",\n value: function _getRegistryForType(type) {\n for (var i = 0; i < this._typedRegistries.length; i++) {\n var reg = this._typedRegistries[i];\n\n if (reg.isForType(type)) {\n return reg;\n }\n }\n\n return this.plugins;\n }\n }, {\n key: \"_get\",\n value: function _get(id, typedRegistry, type) {\n var item = typedRegistry.get(id);\n\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n\n return item;\n }\n }]);\n\n return Registry;\n}();\n\nvar registry = new Registry();\n\nvar PluginService = /*#__PURE__*/function () {\n function PluginService() {\n _classCallCheck(this, PluginService);\n\n this._init = [];\n }\n\n _createClass(PluginService, [{\n key: \"notify\",\n value: function notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n\n this._notify(this._init, chart, 'install');\n }\n\n var descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n\n var result = this._notify(descriptors, chart, hook, args);\n\n if (hook === 'destroy') {\n this._notify(descriptors, chart, 'stop');\n\n this._notify(this._init, chart, 'uninstall');\n }\n\n return result;\n }\n }, {\n key: \"_notify\",\n value: function _notify(descriptors, chart, hook, args) {\n args = args || {};\n\n var _iterator11 = _createForOfIteratorHelper(descriptors),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var descriptor = _step11.value;\n var plugin = descriptor.plugin;\n var method = plugin[hook];\n var params = [chart, args, descriptor.options];\n\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n return true;\n }\n }, {\n key: \"invalidate\",\n value: function invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n }, {\n key: \"_descriptors\",\n value: function _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n\n var descriptors = this._cache = this._createDescriptors(chart);\n\n this._notifyStateChanges(chart);\n\n return descriptors;\n }\n }, {\n key: \"_createDescriptors\",\n value: function _createDescriptors(chart, all) {\n var config = chart && chart.config;\n var options = valueOrDefault(config.options && config.options.plugins, {});\n var plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n }, {\n key: \"_notifyStateChanges\",\n value: function _notifyStateChanges(chart) {\n var previousDescriptors = this._oldCache || [];\n var descriptors = this._cache;\n\n var diff = function diff(a, b) {\n return a.filter(function (x) {\n return !b.some(function (y) {\n return x.plugin.id === y.plugin.id;\n });\n });\n };\n\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n }]);\n\n return PluginService;\n}();\n\nfunction allPlugins(config) {\n var plugins = [];\n var keys = Object.keys(registry.plugins.items);\n\n for (var i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n\n var local = config.plugins || [];\n\n for (var _i2 = 0; _i2 < local.length; _i2++) {\n var plugin = local[_i2];\n\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n }\n }\n\n return plugins;\n}\n\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n\n if (options === true) {\n return {};\n }\n\n return options;\n}\n\nfunction createDescriptors(chart, plugins, options, all) {\n var result = [];\n var context = chart.getContext();\n\n for (var i = 0; i < plugins.length; i++) {\n var plugin = plugins[i];\n var id = plugin.id;\n var opts = getOpts(options[id], all);\n\n if (opts === null) {\n continue;\n }\n\n result.push({\n plugin: plugin,\n options: pluginOpts(chart.config, plugin, opts, context)\n });\n }\n\n return result;\n}\n\nfunction pluginOpts(config, plugin, opts, context) {\n var keys = config.pluginScopeKeys(plugin);\n var scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n var datasetDefaults = defaults.datasets[type] || {};\n var datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\n\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n var axis = id;\n\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n\n return axis;\n}\n\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\n\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\n\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\n\nfunction mergeScaleConfig(config, options) {\n var chartDefaults = overrides[config.type] || {\n scales: {}\n };\n var configScales = options.scales || {};\n var chartIndexAxis = getIndexAxis(config.type, options);\n var firstIDs = Object.create(null);\n var scales = Object.create(null);\n Object.keys(configScales).forEach(function (id) {\n var scaleConf = configScales[id];\n\n if (!isObject(scaleConf)) {\n return console.error(\"Invalid scale configuration for scale: \".concat(id));\n }\n\n if (scaleConf._proxy) {\n return console.warn(\"Ignoring resolver passed as options for scale: \".concat(id));\n }\n\n var axis = determineAxis(id, scaleConf);\n var defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n var defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{\n axis: axis\n }, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(function (dataset) {\n var type = dataset.type || config.type;\n var indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n var datasetDefaults = overrides[type] || {};\n var defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(function (defaultID) {\n var axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n var id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{\n axis: axis\n }, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(function (key) {\n var scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\n\nfunction initOptions(config) {\n var options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\n\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\n\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\n\nvar keyCache = new Map();\nvar keysCached = new Set();\n\nfunction cachedKeys(cacheKey, generate) {\n var keys = keyCache.get(cacheKey);\n\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n\n return keys;\n}\n\nvar addIfFound = function addIfFound(set, obj, key) {\n var opts = resolveObjectKey(obj, key);\n\n if (opts !== undefined) {\n set.add(opts);\n }\n};\n\nvar Config = /*#__PURE__*/function () {\n function Config(config) {\n _classCallCheck(this, Config);\n\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n\n _createClass(Config, [{\n key: \"platform\",\n get: function get() {\n return this._config.platform;\n }\n }, {\n key: \"type\",\n get: function get() {\n return this._config.type;\n },\n set: function set(type) {\n this._config.type = type;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this._config.data;\n },\n set: function set(data) {\n this._config.data = initData(data);\n }\n }, {\n key: \"options\",\n get: function get() {\n return this._config.options;\n },\n set: function set(options) {\n this._config.options = options;\n }\n }, {\n key: \"plugins\",\n get: function get() {\n return this._config.plugins;\n }\n }, {\n key: \"update\",\n value: function update() {\n var config = this._config;\n this.clearCache();\n initOptions(config);\n }\n }, {\n key: \"clearCache\",\n value: function clearCache() {\n this._scopeCache.clear();\n\n this._resolverCache.clear();\n }\n }, {\n key: \"datasetScopeKeys\",\n value: function datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, function () {\n return [[\"datasets.\".concat(datasetType), '']];\n });\n }\n }, {\n key: \"datasetAnimationScopeKeys\",\n value: function datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(\"\".concat(datasetType, \".transition.\").concat(transition), function () {\n return [[\"datasets.\".concat(datasetType, \".transitions.\").concat(transition), \"transitions.\".concat(transition)], [\"datasets.\".concat(datasetType), '']];\n });\n }\n }, {\n key: \"datasetElementScopeKeys\",\n value: function datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(\"\".concat(datasetType, \"-\").concat(elementType), function () {\n return [[\"datasets.\".concat(datasetType, \".elements.\").concat(elementType), \"datasets.\".concat(datasetType), \"elements.\".concat(elementType), '']];\n });\n }\n }, {\n key: \"pluginScopeKeys\",\n value: function pluginScopeKeys(plugin) {\n var id = plugin.id;\n var type = this.type;\n return cachedKeys(\"\".concat(type, \"-plugin-\").concat(id), function () {\n return [[\"plugins.\".concat(id)].concat(_toConsumableArray(plugin.additionalOptionScopes || []))];\n });\n }\n }, {\n key: \"_cachedScopes\",\n value: function _cachedScopes(mainScope, resetCache) {\n var _scopeCache = this._scopeCache;\n\n var cache = _scopeCache.get(mainScope);\n\n if (!cache || resetCache) {\n cache = new Map();\n\n _scopeCache.set(mainScope, cache);\n }\n\n return cache;\n }\n }, {\n key: \"getOptionScopes\",\n value: function getOptionScopes(mainScope, keyLists, resetCache) {\n var options = this.options,\n type = this.type;\n\n var cache = this._cachedScopes(mainScope, resetCache);\n\n var cached = cache.get(keyLists);\n\n if (cached) {\n return cached;\n }\n\n var scopes = new Set();\n keyLists.forEach(function (keys) {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(function (key) {\n return addIfFound(scopes, mainScope, key);\n });\n }\n\n keys.forEach(function (key) {\n return addIfFound(scopes, options, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, overrides[type] || {}, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, defaults, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, descriptors, key);\n });\n });\n var array = Array.from(scopes);\n\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n\n return array;\n }\n }, {\n key: \"chartOptionScopes\",\n value: function chartOptionScopes() {\n var options = this.options,\n type = this.type;\n return [options, overrides[type] || {}, defaults.datasets[type] || {}, {\n type: type\n }, defaults, descriptors];\n }\n }, {\n key: \"resolveNamedOptions\",\n value: function resolveNamedOptions(scopes, names, context) {\n var prefixes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [''];\n var result = {\n $shared: true\n };\n\n var _getResolver = getResolver(this._resolverCache, scopes, prefixes),\n resolver = _getResolver.resolver,\n subPrefixes = _getResolver.subPrefixes;\n\n var options = resolver;\n\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n var subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n\n var _iterator12 = _createForOfIteratorHelper(names),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var prop = _step12.value;\n result[prop] = options[prop];\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n\n return result;\n }\n }, {\n key: \"createResolver\",\n value: function createResolver(scopes, context) {\n var prefixes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [''];\n var descriptorDefaults = arguments.length > 3 ? arguments[3] : undefined;\n\n var _getResolver2 = getResolver(this._resolverCache, scopes, prefixes),\n resolver = _getResolver2.resolver;\n\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n }]);\n\n return Config;\n}();\n\nfunction getResolver(resolverCache, scopes, prefixes) {\n var cache = resolverCache.get(scopes);\n\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n\n var cacheKey = prefixes.join();\n var cached = cache.get(cacheKey);\n\n if (!cached) {\n var resolver = _createResolver(scopes, prefixes);\n\n cached = {\n resolver: resolver,\n subPrefixes: prefixes.filter(function (p) {\n return !p.toLowerCase().includes('hover');\n })\n };\n cache.set(cacheKey, cached);\n }\n\n return cached;\n}\n\nvar hasFunction = function hasFunction(value) {\n return isObject(value) && Object.getOwnPropertyNames(value).reduce(function (acc, key) {\n return acc || isFunction(value[key]);\n }, false);\n};\n\nfunction needContext(proxy, names) {\n var _descriptors2 = _descriptors(proxy),\n isScriptable = _descriptors2.isScriptable,\n isIndexable = _descriptors2.isIndexable;\n\n var _iterator13 = _createForOfIteratorHelper(names),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var prop = _step13.value;\n var scriptable = isScriptable(prop);\n var indexable = isIndexable(prop);\n var value = (indexable || scriptable) && proxy[prop];\n\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n return false;\n}\n\nvar version = \"3.6.0\";\nvar KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\n\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\n\nfunction compare2Level(l1, l2) {\n return function (a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\n\nfunction onAnimationsComplete(context) {\n var chart = context.chart;\n var animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\n\nfunction onAnimationProgress(context) {\n var chart = context.chart;\n var animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\n\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n\n if (item && item.canvas) {\n item = item.canvas;\n }\n\n return item;\n}\n\nvar instances = {};\n\nvar getChart = function getChart(key) {\n var canvas = getCanvas(key);\n return Object.values(instances).filter(function (c) {\n return c.canvas === canvas;\n }).pop();\n};\n\nvar Chart = /*#__PURE__*/function () {\n function Chart(item, userConfig) {\n var _this11 = this;\n\n _classCallCheck(this, Chart);\n\n var config = this.config = new Config(userConfig);\n var initialCanvas = getCanvas(item);\n var existingChart = getChart(initialCanvas);\n\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas can be reused.');\n }\n\n var options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n var context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n var canvas = context && context.canvas;\n var height = canvas && canvas.height;\n var width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(function (mode) {\n return _this11.update(mode);\n }, options.resizeDelay || 0);\n instances[this.id] = this;\n\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n\n this._initialize();\n\n if (this.attached) {\n this.update();\n }\n }\n\n _createClass(Chart, [{\n key: \"aspectRatio\",\n get: function get() {\n var _this$options10 = this.options,\n aspectRatio = _this$options10.aspectRatio,\n maintainAspectRatio = _this$options10.maintainAspectRatio,\n width = this.width,\n height = this.height,\n _aspectRatio = this._aspectRatio;\n\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n\n return height ? width / height : null;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.config.data;\n },\n set: function set(data) {\n this.config.data = data;\n }\n }, {\n key: \"options\",\n get: function get() {\n return this._options;\n },\n set: function set(options) {\n this.config.options = options;\n }\n }, {\n key: \"_initialize\",\n value: function _initialize() {\n this.notifyPlugins('beforeInit');\n\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n animator.stop(this);\n return this;\n }\n }, {\n key: \"resize\",\n value: function resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width: width,\n height: height\n };\n }\n }\n }, {\n key: \"_resize\",\n value: function _resize(width, height) {\n var options = this.options;\n var canvas = this.canvas;\n var aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n var newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n var newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n var mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [this, newSize], this);\n\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n }, {\n key: \"ensureScalesHaveIDs\",\n value: function ensureScalesHaveIDs() {\n var options = this.options;\n var scalesOptions = options.scales || {};\n each(scalesOptions, function (axisOptions, axisID) {\n axisOptions.id = axisID;\n });\n }\n }, {\n key: \"buildOrUpdateScales\",\n value: function buildOrUpdateScales() {\n var _this12 = this;\n\n var options = this.options;\n var scaleOpts = options.scales;\n var scales = this.scales;\n var updated = Object.keys(scales).reduce(function (obj, id) {\n obj[id] = false;\n return obj;\n }, {});\n var items = [];\n\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map(function (id) {\n var scaleOptions = scaleOpts[id];\n var axis = determineAxis(id, scaleOptions);\n var isRadial = axis === 'r';\n var isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n\n each(items, function (item) {\n var scaleOptions = item.options;\n var id = scaleOptions.id;\n var axis = determineAxis(id, scaleOptions);\n var scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n\n updated[id] = true;\n var scale = null;\n\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n var scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id: id,\n type: scaleType,\n ctx: _this12.ctx,\n chart: _this12\n });\n scales[scale.id] = scale;\n }\n\n scale.init(scaleOptions, options);\n });\n each(updated, function (hasUpdated, id) {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, function (scale) {\n layouts.configure(_this12, scale, scale.options);\n layouts.addBox(_this12, scale);\n });\n }\n }, {\n key: \"_updateMetasets\",\n value: function _updateMetasets() {\n var metasets = this._metasets;\n var numData = this.data.datasets.length;\n var numMeta = metasets.length;\n metasets.sort(function (a, b) {\n return a.index - b.index;\n });\n\n if (numMeta > numData) {\n for (var i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n\n metasets.splice(numData, numMeta - numData);\n }\n\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n }, {\n key: \"_removeUnreferencedMetasets\",\n value: function _removeUnreferencedMetasets() {\n var _this13 = this;\n\n var metasets = this._metasets,\n datasets = this.data.datasets;\n\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n\n metasets.forEach(function (meta, index) {\n if (datasets.filter(function (x) {\n return x === meta._dataset;\n }).length === 0) {\n _this13._destroyDatasetMeta(index);\n }\n });\n }\n }, {\n key: \"buildOrUpdateControllers\",\n value: function buildOrUpdateControllers() {\n var newControllers = [];\n var datasets = this.data.datasets;\n var i, ilen;\n\n this._removeUnreferencedMetasets();\n\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n var dataset = datasets[i];\n var meta = this.getDatasetMeta(i);\n var type = dataset.type || this.config.type;\n\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n\n meta = this.getDatasetMeta(i);\n }\n\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n var ControllerClass = registry.getController(type);\n var _defaults$datasets$ty = defaults.datasets[type],\n datasetElementType = _defaults$datasets$ty.datasetElementType,\n dataElementType = _defaults$datasets$ty.dataElementType;\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n\n this._updateMetasets();\n\n return newControllers;\n }\n }, {\n key: \"_resetElements\",\n value: function _resetElements() {\n var _this14 = this;\n\n each(this.data.datasets, function (dataset, datasetIndex) {\n _this14.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._resetElements();\n\n this.notifyPlugins('reset');\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var _this15 = this;\n\n var config = this.config;\n config.update();\n var options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n each(this.scales, function (scale) {\n layouts.removeBox(_this15, scale);\n });\n var animsDisabled = this._animationsDisabled = !options.animation;\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n var existingEvents = new Set(Object.keys(this._listeners));\n var newEvents = new Set(options.events);\n\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n\n this._plugins.invalidate();\n\n if (this.notifyPlugins('beforeUpdate', {\n mode: mode,\n cancelable: true\n }) === false) {\n return;\n }\n\n var newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n var minPadding = 0;\n\n for (var i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n var _this$getDatasetMeta = this.getDatasetMeta(i),\n controller = _this$getDatasetMeta.controller;\n\n var reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n\n this._updateLayout(minPadding);\n\n if (!animsDisabled) {\n each(newControllers, function (controller) {\n controller.reset();\n });\n }\n\n this._updateDatasets(mode);\n\n this.notifyPlugins('afterUpdate', {\n mode: mode\n });\n\n this._layers.sort(compare2Level('z', '_idx'));\n\n if (this._lastEvent) {\n this._eventHandler(this._lastEvent, true);\n }\n\n this.render();\n }\n }, {\n key: \"_updateLayout\",\n value: function _updateLayout(minPadding) {\n var _this16 = this;\n\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n\n layouts.update(this, this.width, this.height, minPadding);\n var area = this.chartArea;\n var noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, function (box) {\n var _this16$_layers;\n\n if (noArea && box.position === 'chartArea') {\n return;\n }\n\n if (box.configure) {\n box.configure();\n }\n\n (_this16$_layers = _this16._layers).push.apply(_this16$_layers, _toConsumableArray(box._layers()));\n }, this);\n\n this._layers.forEach(function (item, index) {\n item._idx = index;\n });\n\n this.notifyPlugins('afterLayout');\n }\n }, {\n key: \"_updateDatasets\",\n value: function _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode: mode,\n cancelable: true\n }) === false) {\n return;\n }\n\n for (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({\n datasetIndex: i\n }) : mode);\n }\n\n this.notifyPlugins('afterDatasetsUpdate', {\n mode: mode\n });\n }\n }, {\n key: \"_updateDataset\",\n value: function _updateDataset(index, mode) {\n var meta = this.getDatasetMeta(index);\n var args = {\n meta: meta,\n index: index,\n mode: mode,\n cancelable: true\n };\n\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n\n meta.controller._update(mode);\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var i;\n\n if (this._resizeBeforeDraw) {\n var _this$_resizeBeforeDr = this._resizeBeforeDraw,\n width = _this$_resizeBeforeDr.width,\n height = _this$_resizeBeforeDr.height;\n\n this._resize(width, height);\n\n this._resizeBeforeDraw = null;\n }\n\n this.clear();\n\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n\n var layers = this._layers;\n\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this._drawDatasets();\n\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this.notifyPlugins('afterDraw');\n }\n }, {\n key: \"_getSortedDatasetMetas\",\n value: function _getSortedDatasetMetas(filterVisible) {\n var metasets = this._sortedMetasets;\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n var meta = metasets[i];\n\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n\n return result;\n }\n }, {\n key: \"getSortedVisibleDatasetMetas\",\n value: function getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n }, {\n key: \"_drawDatasets\",\n value: function _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n\n var metasets = this.getSortedVisibleDatasetMetas();\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n\n this.notifyPlugins('afterDatasetsDraw');\n }\n }, {\n key: \"_drawDataset\",\n value: function _drawDataset(meta) {\n var ctx = this.ctx;\n var clip = meta._clip;\n var useClip = !clip.disabled;\n var area = this.chartArea;\n var args = {\n meta: meta,\n index: meta.index,\n cancelable: true\n };\n\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n\n meta.controller.draw();\n\n if (useClip) {\n unclipArea(ctx);\n }\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n }, {\n key: \"getElementsAtEventForMode\",\n value: function getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n var method = Interaction.modes[mode];\n\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n\n return [];\n }\n }, {\n key: \"getDatasetMeta\",\n value: function getDatasetMeta(datasetIndex) {\n var dataset = this.data.datasets[datasetIndex];\n var metasets = this._metasets;\n var meta = metasets.filter(function (x) {\n return x && x._dataset === dataset;\n }).pop();\n\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n\n return meta;\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n }, {\n key: \"getVisibleDatasetCount\",\n value: function getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n }, {\n key: \"isDatasetVisible\",\n value: function isDatasetVisible(datasetIndex) {\n var dataset = this.data.datasets[datasetIndex];\n\n if (!dataset) {\n return false;\n }\n\n var meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n }, {\n key: \"setDatasetVisibility\",\n value: function setDatasetVisibility(datasetIndex, visible) {\n var meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n }, {\n key: \"toggleDataVisibility\",\n value: function toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n }, {\n key: \"getDataVisibility\",\n value: function getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n }, {\n key: \"_updateVisibility\",\n value: function _updateVisibility(datasetIndex, dataIndex, visible) {\n var mode = visible ? 'show' : 'hide';\n var meta = this.getDatasetMeta(datasetIndex);\n\n var anims = meta.controller._resolveAnimations(undefined, mode);\n\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible: visible\n });\n this.update(function (ctx) {\n return ctx.datasetIndex === datasetIndex ? mode : undefined;\n });\n }\n }\n }, {\n key: \"hide\",\n value: function hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n }, {\n key: \"show\",\n value: function show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n }, {\n key: \"_destroyDatasetMeta\",\n value: function _destroyDatasetMeta(datasetIndex) {\n var meta = this._metasets[datasetIndex];\n\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n\n delete this._metasets[datasetIndex];\n }\n }, {\n key: \"_stop\",\n value: function _stop() {\n var i, ilen;\n this.stop();\n animator.remove(this);\n\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var canvas = this.canvas,\n ctx = this.ctx;\n\n this._stop();\n\n this.config.clearCache();\n\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n\n this.notifyPlugins('destroy');\n delete instances[this.id];\n }\n }, {\n key: \"toBase64Image\",\n value: function toBase64Image() {\n var _this$canvas;\n\n return (_this$canvas = this.canvas).toDataURL.apply(_this$canvas, arguments);\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n this.bindUserEvents();\n\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n }, {\n key: \"bindUserEvents\",\n value: function bindUserEvents() {\n var _this17 = this;\n\n var listeners = this._listeners;\n var platform = this.platform;\n\n var _add = function _add(type, listener) {\n platform.addEventListener(_this17, type, listener);\n listeners[type] = listener;\n };\n\n var listener = function listener(e, x, y) {\n e.offsetX = x;\n e.offsetY = y;\n\n _this17._eventHandler(e);\n };\n\n each(this.options.events, function (type) {\n return _add(type, listener);\n });\n }\n }, {\n key: \"bindResponsiveEvents\",\n value: function bindResponsiveEvents() {\n var _this18 = this;\n\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n\n var listeners = this._responsiveListeners;\n var platform = this.platform;\n\n var _add = function _add(type, listener) {\n platform.addEventListener(_this18, type, listener);\n listeners[type] = listener;\n };\n\n var _remove = function _remove(type, listener) {\n if (listeners[type]) {\n platform.removeEventListener(_this18, type, listener);\n delete listeners[type];\n }\n };\n\n var listener = function listener(width, height) {\n if (_this18.canvas) {\n _this18.resize(width, height);\n }\n };\n\n var detached;\n\n var attached = function attached() {\n _remove('attach', attached);\n\n _this18.attached = true;\n\n _this18.resize();\n\n _add('resize', listener);\n\n _add('detach', detached);\n };\n\n detached = function detached() {\n _this18.attached = false;\n\n _remove('resize', listener);\n\n _this18._stop();\n\n _this18._resize(0, 0);\n\n _add('attach', attached);\n };\n\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n var _this19 = this;\n\n each(this._listeners, function (listener, type) {\n _this19.platform.removeEventListener(_this19, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, function (listener, type) {\n _this19.platform.removeEventListener(_this19, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n }, {\n key: \"updateHoverStyle\",\n value: function updateHoverStyle(items, mode, enabled) {\n var prefix = enabled ? 'set' : 'remove';\n var meta, item, i, ilen;\n\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n var controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n }, {\n key: \"getActiveElements\",\n value: function getActiveElements() {\n return this._active || [];\n }\n }, {\n key: \"setActiveElements\",\n value: function setActiveElements(activeElements) {\n var _this20 = this;\n\n var lastActive = this._active || [];\n var active = activeElements.map(function (_ref5) {\n var datasetIndex = _ref5.datasetIndex,\n index = _ref5.index;\n\n var meta = _this20.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n\n return {\n datasetIndex: datasetIndex,\n element: meta.data[index],\n index: index\n };\n });\n var changed = !_elementsEqual(active, lastActive);\n\n if (changed) {\n this._active = active;\n\n this._updateHoverStyles(active, lastActive);\n }\n }\n }, {\n key: \"notifyPlugins\",\n value: function notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n }, {\n key: \"_updateHoverStyles\",\n value: function _updateHoverStyles(active, lastActive, replay) {\n var hoverOptions = this.options.hover;\n\n var diff = function diff(a, b) {\n return a.filter(function (x) {\n return !b.some(function (y) {\n return x.datasetIndex === y.datasetIndex && x.index === y.index;\n });\n });\n };\n\n var deactivated = diff(lastActive, active);\n var activated = replay ? active : diff(active, lastActive);\n\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n }, {\n key: \"_eventHandler\",\n value: function _eventHandler(e, replay) {\n var _this21 = this;\n\n var args = {\n event: e,\n replay: replay,\n cancelable: true\n };\n\n var eventFilter = function eventFilter(plugin) {\n return (plugin.options.events || _this21.options.events).includes(e.native.type);\n };\n\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n\n var changed = this._handleEvent(e, replay);\n\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n\n if (changed || args.changed) {\n this.render();\n }\n\n return this;\n }\n }, {\n key: \"_handleEvent\",\n value: function _handleEvent(e, replay) {\n var _this$_active = this._active,\n lastActive = _this$_active === void 0 ? [] : _this$_active,\n options = this.options;\n var hoverOptions = options.hover;\n var useFinalPosition = replay;\n var active = [];\n var changed = false;\n var lastEvent = null;\n\n if (e.type !== 'mouseout') {\n active = this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n lastEvent = e.type === 'click' ? this._lastEvent : e;\n }\n\n this._lastEvent = null;\n\n if (_isPointInArea(e, this.chartArea, this._minPadding)) {\n callback(options.onHover, [e, active, this], this);\n\n if (e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu') {\n callback(options.onClick, [e, active, this], this);\n }\n }\n\n changed = !_elementsEqual(active, lastActive);\n\n if (changed || replay) {\n this._active = active;\n\n this._updateHoverStyles(active, lastActive, replay);\n }\n\n this._lastEvent = lastEvent;\n return changed;\n }\n }]);\n\n return Chart;\n}();\n\nvar invalidatePlugins = function invalidatePlugins() {\n return each(Chart.instances, function (chart) {\n return chart._plugins.invalidate();\n });\n};\n\nvar enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable: enumerable,\n value: defaults\n },\n instances: {\n enumerable: enumerable,\n value: instances\n },\n overrides: {\n enumerable: enumerable,\n value: overrides\n },\n registry: {\n enumerable: enumerable,\n value: registry\n },\n version: {\n enumerable: enumerable,\n value: version\n },\n getChart: {\n enumerable: enumerable,\n value: getChart\n },\n register: {\n enumerable: enumerable,\n value: function value() {\n registry.add.apply(registry, arguments);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable: enumerable,\n value: function value() {\n registry.remove.apply(registry, arguments);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n var startAngle = element.startAngle,\n pixelMargin = element.pixelMargin,\n x = element.x,\n y = element.y,\n outerRadius = element.outerRadius,\n innerRadius = element.innerRadius;\n var angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n\n ctx.closePath();\n ctx.clip();\n}\n\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\n\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n var o = toRadiusCorners(arc.options.borderRadius);\n var halfThickness = (outerRadius - innerRadius) / 2;\n var innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n\n var computeOuterLimit = function computeOuterLimit(val) {\n var outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n\nfunction pathArc(ctx, element, offset, spacing, end) {\n var x = element.x,\n y = element.y,\n start = element.startAngle,\n pixelMargin = element.pixelMargin,\n innerR = element.innerRadius;\n var outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n var innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n var spacingOffset = 0;\n var alpha = end - start;\n\n if (spacing) {\n var noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n var noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n var avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n var adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n\n var beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n var angleOffset = (alpha - beta) / 2;\n var startAngle = start + angleOffset + spacingOffset;\n var endAngle = end - angleOffset - spacingOffset;\n\n var _parseBorderRadius$ = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle),\n outerStart = _parseBorderRadius$.outerStart,\n outerEnd = _parseBorderRadius$.outerEnd,\n innerStart = _parseBorderRadius$.innerStart,\n innerEnd = _parseBorderRadius$.innerEnd;\n\n var outerStartAdjustedRadius = outerRadius - outerStart;\n var outerEndAdjustedRadius = outerRadius - outerEnd;\n var outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n var outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n var innerStartAdjustedRadius = innerRadius + innerStart;\n var innerEndAdjustedRadius = innerRadius + innerEnd;\n var innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n var innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n\n if (outerEnd > 0) {\n var pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n\n var p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n\n if (innerEnd > 0) {\n var _pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n\n ctx.arc(_pCenter.x, _pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, startAngle + innerStart / innerRadius, true);\n\n if (innerStart > 0) {\n var _pCenter2 = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n\n ctx.arc(_pCenter2.x, _pCenter2.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n\n var p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n\n if (outerStart > 0) {\n var _pCenter3 = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n\n ctx.arc(_pCenter3.x, _pCenter3.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n\n ctx.closePath();\n}\n\nfunction drawArc(ctx, element, offset, spacing) {\n var fullCircles = element.fullCircles,\n startAngle = element.startAngle,\n circumference = element.circumference;\n var endAngle = element.endAngle;\n\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n\n for (var i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\n\nfunction drawFullCircleBorders(ctx, element, inner) {\n var x = element.x,\n y = element.y,\n startAngle = element.startAngle,\n pixelMargin = element.pixelMargin,\n fullCircles = element.fullCircles;\n var outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n var innerRadius = element.innerRadius + pixelMargin;\n var i;\n\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\n\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n var options = element.options;\n var inner = options.borderAlign === 'inner';\n\n if (!options.borderWidth) {\n return;\n }\n\n if (inner) {\n ctx.lineWidth = options.borderWidth * 2;\n ctx.lineJoin = 'round';\n } else {\n ctx.lineWidth = options.borderWidth;\n ctx.lineJoin = 'bevel';\n }\n\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\n\nvar ArcElement = /*#__PURE__*/function (_Element2) {\n _inherits(ArcElement, _Element2);\n\n var _super12 = _createSuper(ArcElement);\n\n function ArcElement(cfg) {\n var _this22;\n\n _classCallCheck(this, ArcElement);\n\n _this22 = _super12.call(this);\n _this22.options = undefined;\n _this22.circumference = undefined;\n _this22.startAngle = undefined;\n _this22.endAngle = undefined;\n _this22.innerRadius = undefined;\n _this22.outerRadius = undefined;\n _this22.pixelMargin = 0;\n _this22.fullCircles = 0;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this22), cfg);\n }\n\n return _this22;\n }\n\n _createClass(ArcElement, [{\n key: \"inRange\",\n value: function inRange(chartX, chartY, useFinalPosition) {\n var point = this.getProps(['x', 'y'], useFinalPosition);\n\n var _getAngleFromPoint = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n }),\n angle = _getAngleFromPoint.angle,\n distance = _getAngleFromPoint.distance;\n\n var _this$getProps2 = this.getProps(['startAngle', 'endAngle', 'innerRadius', 'outerRadius', 'circumference'], useFinalPosition),\n startAngle = _this$getProps2.startAngle,\n endAngle = _this$getProps2.endAngle,\n innerRadius = _this$getProps2.innerRadius,\n outerRadius = _this$getProps2.outerRadius,\n circumference = _this$getProps2.circumference;\n\n var rAdjust = this.options.spacing / 2;\n\n var betweenAngles = circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n\n var withinRadius = distance >= innerRadius + rAdjust && distance <= outerRadius + rAdjust;\n return betweenAngles && withinRadius;\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps3 = this.getProps(['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius', 'circumference'], useFinalPosition),\n x = _this$getProps3.x,\n y = _this$getProps3.y,\n startAngle = _this$getProps3.startAngle,\n endAngle = _this$getProps3.endAngle,\n innerRadius = _this$getProps3.innerRadius,\n outerRadius = _this$getProps3.outerRadius;\n\n var _this$options11 = this.options,\n offset = _this$options11.offset,\n spacing = _this$options11.spacing;\n var halfAngle = (startAngle + endAngle) / 2;\n var halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n }, {\n key: \"tooltipPosition\",\n value: function tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n }, {\n key: \"draw\",\n value: function draw(ctx) {\n var options = this.options,\n circumference = this.circumference;\n var offset = (options.offset || 0) / 2;\n var spacing = (options.spacing || 0) / 2;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n\n ctx.save();\n var radiusOffset = 0;\n\n if (offset) {\n radiusOffset = offset / 2;\n var halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n var endAngle = drawArc(ctx, this, radiusOffset, spacing);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n }]);\n\n return ArcElement;\n}(Element);\n\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options) {\n var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : options;\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\n\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n\n return lineTo;\n}\n\nfunction pathVars(points, segment) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var count = points.length;\n var _params$start = params.start,\n paramsStart = _params$start === void 0 ? 0 : _params$start,\n _params$end = params.end,\n paramsEnd = _params$end === void 0 ? count - 1 : _params$end;\n var segmentStart = segment.start,\n segmentEnd = segment.end;\n var start = Math.max(paramsStart, segmentStart);\n var end = Math.min(paramsEnd, segmentEnd);\n var outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count: count,\n start: start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n\nfunction pathSegment(ctx, line, segment, params) {\n var points = line.points,\n options = line.options;\n\n var _pathVars = pathVars(points, segment, params),\n count = _pathVars.count,\n start = _pathVars.start,\n loop = _pathVars.loop,\n ilen = _pathVars.ilen;\n\n var lineMethod = getLineMethod(options);\n\n var _ref6 = params || {},\n _ref6$move = _ref6.move,\n move = _ref6$move === void 0 ? true : _ref6$move,\n reverse = _ref6.reverse;\n\n var i, point, prev;\n\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n prev = point;\n }\n\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n return !!loop;\n}\n\nfunction fastPathSegment(ctx, line, segment, params) {\n var points = line.points;\n\n var _pathVars2 = pathVars(points, segment, params),\n count = _pathVars2.count,\n start = _pathVars2.start,\n ilen = _pathVars2.ilen;\n\n var _ref7 = params || {},\n _ref7$move = _ref7.move,\n move = _ref7$move === void 0 ? true : _ref7$move,\n reverse = _ref7.reverse;\n\n var avgX = 0;\n var countX = 0;\n var i, point, prevX, minY, maxY, lastY;\n\n var pointIndex = function pointIndex(index) {\n return (start + (reverse ? ilen - index : index)) % count;\n };\n\n var drawX = function drawX() {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n\n if (point.skip) {\n continue;\n }\n\n var x = point.x;\n var y = point.y;\n var truncX = x | 0;\n\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n\n lastY = y;\n }\n\n drawX();\n}\n\nfunction _getSegmentMethod(line) {\n var opts = line.options;\n var borderDash = opts.borderDash && opts.borderDash.length;\n var useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n\n return _pointInLine;\n}\n\nfunction strokePathWithCache(ctx, line, start, count) {\n var path = line._path;\n\n if (!path) {\n path = line._path = new Path2D();\n\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\n\nfunction strokePathDirect(ctx, line, start, count) {\n var segments = line.segments,\n options = line.options;\n\n var segmentMethod = _getSegmentMethod(line);\n\n var _iterator14 = _createForOfIteratorHelper(segments),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var segment = _step14.value;\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n\n if (segmentMethod(ctx, line, segment, {\n start: start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n\n ctx.stroke();\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n}\n\nvar usePath2D = typeof Path2D === 'function';\n\nfunction _draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\n\nvar LineElement = /*#__PURE__*/function (_Element3) {\n _inherits(LineElement, _Element3);\n\n var _super13 = _createSuper(LineElement);\n\n function LineElement(cfg) {\n var _this23;\n\n _classCallCheck(this, LineElement);\n\n _this23 = _super13.call(this);\n _this23.animated = true;\n _this23.options = undefined;\n _this23._chart = undefined;\n _this23._loop = undefined;\n _this23._fullLoop = undefined;\n _this23._path = undefined;\n _this23._points = undefined;\n _this23._segments = undefined;\n _this23._decimated = false;\n _this23._pointsUpdated = false;\n _this23._datasetIndex = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this23), cfg);\n }\n\n return _this23;\n }\n\n _createClass(LineElement, [{\n key: \"updateControlPoints\",\n value: function updateControlPoints(chartArea, indexAxis) {\n var options = this.options;\n\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n var loop = options.spanGaps ? this._loop : this._fullLoop;\n\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n\n this._pointsUpdated = true;\n }\n }\n }, {\n key: \"points\",\n get: function get() {\n return this._points;\n },\n set: function set(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n }, {\n key: \"segments\",\n get: function get() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n }, {\n key: \"first\",\n value: function first() {\n var segments = this.segments;\n var points = this.points;\n return segments.length && points[segments[0].start];\n }\n }, {\n key: \"last\",\n value: function last() {\n var segments = this.segments;\n var points = this.points;\n var count = segments.length;\n return count && points[segments[count - 1].end];\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(point, property) {\n var options = this.options;\n var value = point[property];\n var points = this.points;\n\n var segments = _boundSegments(this, {\n property: property,\n start: value,\n end: value\n });\n\n if (!segments.length) {\n return;\n }\n\n var result = [];\n\n var _interpolate = _getInterpolationMethod(options);\n\n var i, ilen;\n\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n var _segments$i = segments[i],\n start = _segments$i.start,\n end = _segments$i.end;\n var p1 = points[start];\n var p2 = points[end];\n\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n\n var t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n\n var interpolated = _interpolate(p1, p2, t, options.stepped);\n\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n\n return result.length === 1 ? result[0] : result;\n }\n }, {\n key: \"pathSegment\",\n value: function pathSegment(ctx, segment, params) {\n var segmentMethod = _getSegmentMethod(this);\n\n return segmentMethod(ctx, this, segment, params);\n }\n }, {\n key: \"path\",\n value: function path(ctx, start, count) {\n var segments = this.segments;\n\n var segmentMethod = _getSegmentMethod(this);\n\n var loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n\n var _iterator15 = _createForOfIteratorHelper(segments),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var segment = _step15.value;\n loop &= segmentMethod(ctx, this, segment, {\n start: start,\n end: start + count - 1\n });\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n\n return !!loop;\n }\n }, {\n key: \"draw\",\n value: function draw(ctx, chartArea, start, count) {\n var options = this.options || {};\n var points = this.points || [];\n\n if (points.length && options.borderWidth) {\n ctx.save();\n\n _draw(ctx, this, start, count);\n\n ctx.restore();\n }\n\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n }]);\n\n return LineElement;\n}(Element);\n\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: function _indexable(name) {\n return name !== 'borderDash' && name !== 'fill';\n }\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n var options = el.options;\n\n var _el$getProps = el.getProps([axis], useFinalPosition),\n value = _el$getProps[axis];\n\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\n\nvar PointElement = /*#__PURE__*/function (_Element4) {\n _inherits(PointElement, _Element4);\n\n var _super14 = _createSuper(PointElement);\n\n function PointElement(cfg) {\n var _this24;\n\n _classCallCheck(this, PointElement);\n\n _this24 = _super14.call(this);\n _this24.options = undefined;\n _this24.parsed = undefined;\n _this24.skip = undefined;\n _this24.stop = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this24), cfg);\n }\n\n return _this24;\n }\n\n _createClass(PointElement, [{\n key: \"inRange\",\n value: function inRange(mouseX, mouseY, useFinalPosition) {\n var options = this.options;\n\n var _this$getProps4 = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps4.x,\n y = _this$getProps4.y;\n\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n }, {\n key: \"inXRange\",\n value: function inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n }, {\n key: \"inYRange\",\n value: function inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps5 = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps5.x,\n y = _this$getProps5.y;\n\n return {\n x: x,\n y: y\n };\n }\n }, {\n key: \"size\",\n value: function size(options) {\n options = options || this.options || {};\n var radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n var borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n }, {\n key: \"draw\",\n value: function draw(ctx, area) {\n var options = this.options;\n\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n }, {\n key: \"getRange\",\n value: function getRange() {\n var options = this.options || {};\n return options.radius + options.hitRadius;\n }\n }]);\n\n return PointElement;\n}(Element);\n\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n var _bar$getProps = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition),\n x = _bar$getProps.x,\n y = _bar$getProps.y,\n base = _bar$getProps.base,\n width = _bar$getProps.width,\n height = _bar$getProps.height;\n\n var left, right, top, bottom, half;\n\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n\n return {\n left: left,\n top: top,\n right: right,\n bottom: bottom\n };\n}\n\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\n\nfunction parseBorderWidth(bar, maxW, maxH) {\n var value = bar.options.borderWidth;\n var skip = bar.borderSkipped;\n var o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\n\nfunction parseBorderRadius(bar, maxW, maxH) {\n var _bar$getProps2 = bar.getProps(['enableBorderRadius']),\n enableBorderRadius = _bar$getProps2.enableBorderRadius;\n\n var value = bar.options.borderRadius;\n var o = toTRBLCorners(value);\n var maxR = Math.min(maxW, maxH);\n var skip = bar.borderSkipped;\n var enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\n\nfunction boundingRects(bar) {\n var bounds = getBarBounds(bar);\n var width = bounds.right - bounds.left;\n var height = bounds.bottom - bounds.top;\n var border = parseBorderWidth(bar, width / 2, height / 2);\n var radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius: radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\n\nfunction _inRange(bar, x, y, useFinalPosition) {\n var skipX = x === null;\n var skipY = y === null;\n var skipBoth = skipX && skipY;\n var bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || x >= bounds.left && x <= bounds.right) && (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\n\nfunction inflateRect(rect, amount) {\n var refRect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var x = rect.x !== refRect.x ? -amount : 0;\n var y = rect.y !== refRect.y ? -amount : 0;\n var w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n var h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\n\nvar BarElement = /*#__PURE__*/function (_Element5) {\n _inherits(BarElement, _Element5);\n\n var _super15 = _createSuper(BarElement);\n\n function BarElement(cfg) {\n var _this25;\n\n _classCallCheck(this, BarElement);\n\n _this25 = _super15.call(this);\n _this25.options = undefined;\n _this25.horizontal = undefined;\n _this25.base = undefined;\n _this25.width = undefined;\n _this25.height = undefined;\n _this25.inflateAmount = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this25), cfg);\n }\n\n return _this25;\n }\n\n _createClass(BarElement, [{\n key: \"draw\",\n value: function draw(ctx) {\n var inflateAmount = this.inflateAmount,\n _this$options12 = this.options,\n borderColor = _this$options12.borderColor,\n backgroundColor = _this$options12.backgroundColor;\n\n var _boundingRects = boundingRects(this),\n inner = _boundingRects.inner,\n outer = _boundingRects.outer;\n\n var addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }, {\n key: \"inRange\",\n value: function inRange(mouseX, mouseY, useFinalPosition) {\n return _inRange(this, mouseX, mouseY, useFinalPosition);\n }\n }, {\n key: \"inXRange\",\n value: function inXRange(mouseX, useFinalPosition) {\n return _inRange(this, mouseX, null, useFinalPosition);\n }\n }, {\n key: \"inYRange\",\n value: function inYRange(mouseY, useFinalPosition) {\n return _inRange(this, null, mouseY, useFinalPosition);\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps6 = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition),\n x = _this$getProps6.x,\n y = _this$getProps6.y,\n base = _this$getProps6.base,\n horizontal = _this$getProps6.horizontal;\n\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n }, {\n key: \"getRange\",\n value: function getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n }]);\n\n return BarElement;\n}(Element);\n\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nvar elements = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ArcElement: ArcElement,\n LineElement: LineElement,\n PointElement: PointElement,\n BarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n var samples = options.samples || availableWidth;\n\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n\n var decimated = [];\n var bucketWidth = (count - 2) / (samples - 2);\n var sampledIndex = 0;\n var endIndex = start + count - 1;\n var a = start;\n var i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n\n for (i = 0; i < samples - 2; i++) {\n var avgX = 0;\n var avgY = 0;\n var j = void 0;\n var avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n var avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n var avgRangeLength = avgRangeEnd - avgRangeStart;\n\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n var rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n var rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n var _data$a = data[a],\n pointAx = _data$a.x,\n pointAy = _data$a.y;\n maxArea = area = -1;\n\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\n\nfunction minMaxDecimation(data, start, count, availableWidth) {\n var avgX = 0;\n var countX = 0;\n var i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n var decimated = [];\n var endIndex = start + count - 1;\n var xMin = data[start].x;\n var xMax = data[endIndex].x;\n var dx = xMax - xMin;\n\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n var truncX = x | 0;\n\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n var lastIndex = i - 1;\n\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n var intermediateIndex1 = Math.min(minIndex, maxIndex);\n var intermediateIndex2 = Math.max(minIndex, maxIndex);\n\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push(_objectSpread(_objectSpread({}, data[intermediateIndex1]), {}, {\n x: avgX\n }));\n }\n\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push(_objectSpread(_objectSpread({}, data[intermediateIndex2]), {}, {\n x: avgX\n }));\n }\n }\n\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n\n return decimated;\n}\n\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n var data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n value: data\n });\n }\n}\n\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach(function (dataset) {\n cleanDecimatedDataset(dataset);\n });\n}\n\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n var pointCount = points.length;\n var start = 0;\n var count;\n var iScale = meta.iScale;\n\n var _iScale$getUserBounds2 = iScale.getUserBounds(),\n min = _iScale$getUserBounds2.min,\n max = _iScale$getUserBounds2.max,\n minDefined = _iScale$getUserBounds2.minDefined,\n maxDefined = _iScale$getUserBounds2.maxDefined;\n\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n\n return {\n start: start,\n count: count\n };\n}\n\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: function beforeElementsUpdate(chart, args, options) {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n\n var availableWidth = chart.width;\n chart.data.datasets.forEach(function (dataset, datasetIndex) {\n var _data = dataset._data,\n indexAxis = dataset.indexAxis;\n var meta = chart.getDatasetMeta(datasetIndex);\n var data = _data || dataset.data;\n\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n\n if (meta.type !== 'line') {\n return;\n }\n\n var xAxis = chart.scales[meta.xAxisID];\n\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n\n if (chart.options.parsing) {\n return;\n }\n\n var _getStartAndCountOfVi2 = getStartAndCountOfVisiblePointsSimplified(meta, data),\n start = _getStartAndCountOfVi2.start,\n count = _getStartAndCountOfVi2.count;\n\n var threshold = options.threshold || 4 * availableWidth;\n\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function get() {\n return this._decimated;\n },\n set: function set(d) {\n this._data = d;\n }\n });\n }\n\n var decimated;\n\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n\n default:\n throw new Error(\"Unsupported decimation algorithm '\".concat(options.algorithm, \"'\"));\n }\n\n dataset._decimated = decimated;\n });\n },\n destroy: function destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction getLineByIndex(chart, index) {\n var meta = chart.getDatasetMeta(index);\n var visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\n\nfunction parseFillOption(line) {\n var options = line.options;\n var fillOption = options.fill;\n var fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n\n if (fill === false || fill === null) {\n return false;\n }\n\n if (fill === true) {\n return 'origin';\n }\n\n return fill;\n}\n\nfunction decodeFill(line, index, count) {\n var fill = parseFillOption(line);\n\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n\n var target = parseFloat(fill);\n\n if (isNumberFinite(target) && Math.floor(target) === target) {\n if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n\n return target;\n }\n\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\n\nfunction computeLinearBoundary(source) {\n var _source$scale = source.scale,\n scale = _source$scale === void 0 ? {} : _source$scale,\n fill = source.fill;\n var target = null;\n var horizontal;\n\n if (fill === 'start') {\n target = scale.bottom;\n } else if (fill === 'end') {\n target = scale.top;\n } else if (isObject(fill)) {\n target = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n\n if (isNumberFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n\n return null;\n}\n\nvar simpleArc = /*#__PURE__*/function () {\n function simpleArc(opts) {\n _classCallCheck(this, simpleArc);\n\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n\n _createClass(simpleArc, [{\n key: \"pathSegment\",\n value: function pathSegment(ctx, bounds, opts) {\n var x = this.x,\n y = this.y,\n radius = this.radius;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(point) {\n var x = this.x,\n y = this.y,\n radius = this.radius;\n var angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle: angle\n };\n }\n }]);\n\n return simpleArc;\n}();\n\nfunction computeCircularBoundary(source) {\n var scale = source.scale,\n fill = source.fill;\n var options = scale.options;\n var length = scale.getLabels().length;\n var target = [];\n var start = options.reverse ? scale.max : scale.min;\n var end = options.reverse ? scale.min : scale.max;\n var i, center, value;\n\n if (fill === 'start') {\n value = start;\n } else if (fill === 'end') {\n value = end;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n\n if (options.grid.circular) {\n center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n\n for (i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n\n return target;\n}\n\nfunction computeBoundary(source) {\n var scale = source.scale || {};\n\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n\n return computeLinearBoundary(source);\n}\n\nfunction findSegmentEnd(start, end, points) {\n for (; end > start; end--) {\n var point = points[end];\n\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n\n return end;\n}\n\nfunction pointsFromSegments(boundary, line) {\n var _ref8 = boundary || {},\n _ref8$x = _ref8.x,\n x = _ref8$x === void 0 ? null : _ref8$x,\n _ref8$y = _ref8.y,\n y = _ref8$y === void 0 ? null : _ref8$y;\n\n var linePoints = line.points;\n var points = [];\n line.segments.forEach(function (_ref9) {\n var start = _ref9.start,\n end = _ref9.end;\n end = findSegmentEnd(start, end, linePoints);\n var first = linePoints[start];\n var last = linePoints[end];\n\n if (y !== null) {\n points.push({\n x: first.x,\n y: y\n });\n points.push({\n x: last.x,\n y: y\n });\n } else if (x !== null) {\n points.push({\n x: x,\n y: first.y\n });\n points.push({\n x: x,\n y: last.y\n });\n }\n });\n return points;\n}\n\nfunction buildStackLine(source) {\n var scale = source.scale,\n index = source.index,\n line = source.line;\n var points = [];\n var segments = line.segments;\n var sourcePoints = line.points;\n var linesBelow = getLinesBelow(scale, index);\n linesBelow.push(createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n\n for (var j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n\n return new LineElement({\n points: points,\n options: {}\n });\n}\n\nfunction getLinesBelow(scale, index) {\n var below = [];\n var metas = scale.getMatchingVisibleMetas('line');\n\n for (var i = 0; i < metas.length; i++) {\n var meta = metas[i];\n\n if (meta.index === index) {\n break;\n }\n\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n\n return below;\n}\n\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n var postponed = [];\n\n for (var j = 0; j < linesBelow.length; j++) {\n var line = linesBelow[j];\n\n var _findPoint = findPoint(line, sourcePoint, 'x'),\n first = _findPoint.first,\n last = _findPoint.last,\n point = _findPoint.point;\n\n if (!point || first && last) {\n continue;\n }\n\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n\n if (!last) {\n break;\n }\n }\n }\n\n points.push.apply(points, postponed);\n}\n\nfunction findPoint(line, sourcePoint, property) {\n var point = line.interpolate(sourcePoint, property);\n\n if (!point) {\n return {};\n }\n\n var pointValue = point[property];\n var segments = line.segments;\n var linePoints = line.points;\n var first = false;\n var last = false;\n\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n var firstValue = linePoints[segment.start][property];\n var lastValue = linePoints[segment.end][property];\n\n if (pointValue >= firstValue && pointValue <= lastValue) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n\n return {\n first: first,\n last: last,\n point: point\n };\n}\n\nfunction getTarget(source) {\n var chart = source.chart,\n fill = source.fill,\n line = source.line;\n\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n\n if (fill === 'stack') {\n return buildStackLine(source);\n }\n\n if (fill === 'shape') {\n return true;\n }\n\n var boundary = computeBoundary(source);\n\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n\n return createBoundaryLine(boundary, line);\n}\n\nfunction createBoundaryLine(boundary, line) {\n var points = [];\n var _loop = false;\n\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = pointsFromSegments(boundary, line);\n }\n\n return points.length ? new LineElement({\n points: points,\n options: {\n tension: 0\n },\n _loop: _loop,\n _fullLoop: _loop\n }) : null;\n}\n\nfunction resolveTarget(sources, index, propagate) {\n var source = sources[index];\n var fill = source.fill;\n var visited = [index];\n var target;\n\n if (!propagate) {\n return fill;\n }\n\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n\n target = sources[fill];\n\n if (!target) {\n return false;\n }\n\n if (target.visible) {\n return fill;\n }\n\n visited.push(fill);\n fill = target.fill;\n }\n\n return false;\n}\n\nfunction _clip(ctx, target, clipY) {\n ctx.beginPath();\n target.path(ctx);\n ctx.lineTo(target.last().x, clipY);\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\n\nfunction getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n\n var start = first[property];\n var end = last[property];\n\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n\n return {\n property: property,\n start: start,\n end: end\n };\n}\n\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _segments(line, target, property) {\n var segments = line.segments;\n var points = line.points;\n var tpoints = target.points;\n var parts = [];\n\n var _iterator16 = _createForOfIteratorHelper(segments),\n _step16;\n\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var segment = _step16.value;\n var start = segment.start,\n end = segment.end;\n end = findSegmentEnd(start, end, points);\n var bounds = getBounds(property, points[start], points[end], segment.loop);\n\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n\n var targetSegments = _boundSegments(target, bounds);\n\n var _iterator17 = _createForOfIteratorHelper(targetSegments),\n _step17;\n\n try {\n for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n var tgt = _step17.value;\n var subBounds = getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n\n var fillSources = _boundSegment(segment, points, subBounds);\n\n var _iterator18 = _createForOfIteratorHelper(fillSources),\n _step18;\n\n try {\n for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n var fillSource = _step18.value;\n parts.push({\n source: fillSource,\n target: tgt,\n start: _defineProperty({}, property, _getEdge(bounds, subBounds, 'start', Math.max)),\n end: _defineProperty({}, property, _getEdge(bounds, subBounds, 'end', Math.min))\n });\n }\n } catch (err) {\n _iterator18.e(err);\n } finally {\n _iterator18.f();\n }\n }\n } catch (err) {\n _iterator17.e(err);\n } finally {\n _iterator17.f();\n }\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n\n return parts;\n}\n\nfunction clipBounds(ctx, scale, bounds) {\n var _scale$chart$chartAre = scale.chart.chartArea,\n top = _scale$chart$chartAre.top,\n bottom = _scale$chart$chartAre.bottom;\n\n var _ref10 = bounds || {},\n property = _ref10.property,\n start = _ref10.start,\n end = _ref10.end;\n\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\n\nfunction interpolatedLineTo(ctx, target, point, property) {\n var interpolatedPoint = target.interpolate(point, property);\n\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nfunction _fill(ctx, cfg) {\n var line = cfg.line,\n target = cfg.target,\n property = cfg.property,\n color = cfg.color,\n scale = cfg.scale;\n\n var segments = _segments(line, target, property);\n\n var _iterator19 = _createForOfIteratorHelper(segments),\n _step19;\n\n try {\n for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n var _ref12 = _step19.value;\n var src = _ref12.source;\n var tgt = _ref12.target;\n var start = _ref12.start;\n var end = _ref12.end;\n var _src$style = src.style;\n _src$style = _src$style === void 0 ? {} : _src$style;\n var _src$style$background = _src$style.backgroundColor,\n backgroundColor = _src$style$background === void 0 ? color : _src$style$background;\n var notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && getBounds(property, start, end));\n ctx.beginPath();\n var lineLoop = !!line.pathSegment(ctx, src);\n var loop = void 0;\n\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n\n var targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n } catch (err) {\n _iterator19.e(err);\n } finally {\n _iterator19.f();\n }\n}\n\nfunction doFill(ctx, cfg) {\n var line = cfg.line,\n target = cfg.target,\n above = cfg.above,\n below = cfg.below,\n area = cfg.area,\n scale = cfg.scale;\n var property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n\n if (property === 'x' && below !== above) {\n _clip(ctx, target, area.top);\n\n _fill(ctx, {\n line: line,\n target: target,\n color: above,\n scale: scale,\n property: property\n });\n\n ctx.restore();\n ctx.save();\n\n _clip(ctx, target, area.bottom);\n }\n\n _fill(ctx, {\n line: line,\n target: target,\n color: below,\n scale: scale,\n property: property\n });\n\n ctx.restore();\n}\n\nfunction drawfill(ctx, source, area) {\n var target = getTarget(source);\n var line = source.line,\n scale = source.scale,\n axis = source.axis;\n var lineOpts = line.options;\n var fillOption = lineOpts.fill;\n var color = lineOpts.backgroundColor;\n\n var _ref13 = fillOption || {},\n _ref13$above = _ref13.above,\n above = _ref13$above === void 0 ? color : _ref13$above,\n _ref13$below = _ref13.below,\n below = _ref13$below === void 0 ? color : _ref13$below;\n\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line: line,\n target: target,\n above: above,\n below: below,\n area: area,\n scale: scale,\n axis: axis\n });\n unclipArea(ctx);\n }\n}\n\nvar plugin_filler = {\n id: 'filler',\n afterDatasetsUpdate: function afterDatasetsUpdate(chart, _args, options) {\n var count = (chart.data.datasets || []).length;\n var sources = [];\n var meta, i, line, source;\n\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: decodeFill(line, i, count),\n chart: chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line: line\n };\n }\n\n meta.$filler = source;\n sources.push(source);\n }\n\n for (i = 0; i < count; ++i) {\n source = sources[i];\n\n if (!source || source.fill === false) {\n continue;\n }\n\n source.fill = resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw: function beforeDraw(chart, _args, options) {\n var draw = options.drawTime === 'beforeDraw';\n var metasets = chart.getSortedVisibleDatasetMetas();\n var area = chart.chartArea;\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n var source = metasets[i].$filler;\n\n if (!source) {\n continue;\n }\n\n source.line.updateControlPoints(area, source.axis);\n\n if (draw) {\n drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw: function beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n\n var metasets = chart.getSortedVisibleDatasetMetas();\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n var source = metasets[i].$filler;\n\n if (source) {\n drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw: function beforeDatasetDraw(chart, args, options) {\n var source = args.meta.$filler;\n\n if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n\n drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nvar getBoxSize = function getBoxSize(labelOpts, fontSize) {\n var _labelOpts$boxHeight = labelOpts.boxHeight,\n boxHeight = _labelOpts$boxHeight === void 0 ? fontSize : _labelOpts$boxHeight,\n _labelOpts$boxWidth = labelOpts.boxWidth,\n boxWidth = _labelOpts$boxWidth === void 0 ? fontSize : _labelOpts$boxWidth;\n\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = Math.min(boxWidth, fontSize);\n }\n\n return {\n boxWidth: boxWidth,\n boxHeight: boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\n\nvar itemsEqual = function itemsEqual(a, b) {\n return a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\n};\n\nvar Legend = /*#__PURE__*/function (_Element6) {\n _inherits(Legend, _Element6);\n\n var _super16 = _createSuper(Legend);\n\n function Legend(config) {\n var _this26;\n\n _classCallCheck(this, Legend);\n\n _this26 = _super16.call(this);\n _this26._added = false;\n _this26.legendHitBoxes = [];\n _this26._hoveredItem = null;\n _this26.doughnutMode = false;\n _this26.chart = config.chart;\n _this26.options = config.options;\n _this26.ctx = config.ctx;\n _this26.legendItems = undefined;\n _this26.columnSizes = undefined;\n _this26.lineWidths = undefined;\n _this26.maxHeight = undefined;\n _this26.maxWidth = undefined;\n _this26.top = undefined;\n _this26.bottom = undefined;\n _this26.left = undefined;\n _this26.right = undefined;\n _this26.height = undefined;\n _this26.width = undefined;\n _this26._margins = undefined;\n _this26.position = undefined;\n _this26.weight = undefined;\n _this26.fullSize = undefined;\n return _this26;\n }\n\n _createClass(Legend, [{\n key: \"update\",\n value: function update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n }, {\n key: \"setDimensions\",\n value: function setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n }, {\n key: \"buildLabels\",\n value: function buildLabels() {\n var _this27 = this;\n\n var labelOpts = this.options.labels || {};\n var legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n\n if (labelOpts.filter) {\n legendItems = legendItems.filter(function (item) {\n return labelOpts.filter(item, _this27.chart.data);\n });\n }\n\n if (labelOpts.sort) {\n legendItems = legendItems.sort(function (a, b) {\n return labelOpts.sort(a, b, _this27.chart.data);\n });\n }\n\n if (this.options.reverse) {\n legendItems.reverse();\n }\n\n this.legendItems = legendItems;\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var options = this.options,\n ctx = this.ctx;\n\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n\n var labelOpts = options.labels;\n var labelFont = toFont(labelOpts.font);\n var fontSize = labelFont.size;\n\n var titleHeight = this._computeTitleHeight();\n\n var _getBoxSize = getBoxSize(labelOpts, fontSize),\n boxWidth = _getBoxSize.boxWidth,\n itemHeight = _getBoxSize.itemHeight;\n\n var width, height;\n ctx.font = labelFont.string;\n\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n }, {\n key: \"_fitRows\",\n value: function _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n var ctx = this.ctx,\n maxWidth = this.maxWidth,\n padding = this.options.labels.padding;\n var hitboxes = this.legendHitBoxes = [];\n var lineWidths = this.lineWidths = [0];\n var lineHeight = itemHeight + padding;\n var totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n var row = -1;\n var top = -lineHeight;\n this.legendItems.forEach(function (legendItem, i) {\n var itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n\n hitboxes[i] = {\n left: 0,\n top: top,\n row: row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n }, {\n key: \"_fitCols\",\n value: function _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n var ctx = this.ctx,\n maxHeight = this.maxHeight,\n padding = this.options.labels.padding;\n var hitboxes = this.legendHitBoxes = [];\n var columnSizes = this.columnSizes = [];\n var heightLimit = maxHeight - titleHeight;\n var totalWidth = padding;\n var currentColWidth = 0;\n var currentColHeight = 0;\n var left = 0;\n var col = 0;\n this.legendItems.forEach(function (legendItem, i) {\n var itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n\n hitboxes[i] = {\n left: left,\n top: currentColHeight,\n col: col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n }, {\n key: \"adjustHitBoxes\",\n value: function adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n\n var titleHeight = this._computeTitleHeight();\n\n var hitboxes = this.legendHitBoxes,\n _this$options13 = this.options,\n align = _this$options13.align,\n padding = _this$options13.labels.padding,\n rtl = _this$options13.rtl;\n var rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n\n if (this.isHorizontal()) {\n var row = 0;\n\n var left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n\n var _iterator20 = _createForOfIteratorHelper(hitboxes),\n _step20;\n\n try {\n for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n var hitbox = _step20.value;\n\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } catch (err) {\n _iterator20.e(err);\n } finally {\n _iterator20.f();\n }\n } else {\n var col = 0;\n\n var top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n\n var _iterator21 = _createForOfIteratorHelper(hitboxes),\n _step21;\n\n try {\n for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n var _hitbox = _step21.value;\n\n if (_hitbox.col !== col) {\n col = _hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n\n _hitbox.top = top;\n _hitbox.left += this.left + padding;\n _hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(_hitbox.left), _hitbox.width);\n top += _hitbox.height + padding;\n }\n } catch (err) {\n _iterator21.e(err);\n } finally {\n _iterator21.f();\n }\n }\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n }, {\n key: \"draw\",\n value: function draw() {\n if (this.options.display) {\n var ctx = this.ctx;\n clipArea(ctx, this);\n\n this._draw();\n\n unclipArea(ctx);\n }\n }\n }, {\n key: \"_draw\",\n value: function _draw() {\n var _this28 = this;\n\n var opts = this.options,\n columnSizes = this.columnSizes,\n lineWidths = this.lineWidths,\n ctx = this.ctx;\n var align = opts.align,\n labelOpts = opts.labels;\n var defaultColor = defaults.color;\n var rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n var labelFont = toFont(labelOpts.font);\n var fontColor = labelOpts.color,\n padding = labelOpts.padding;\n var fontSize = labelFont.size;\n var halfFontSize = fontSize / 2;\n var cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n\n var _getBoxSize2 = getBoxSize(labelOpts, fontSize),\n boxWidth = _getBoxSize2.boxWidth,\n boxHeight = _getBoxSize2.boxHeight,\n itemHeight = _getBoxSize2.itemHeight;\n\n var drawLegendBox = function drawLegendBox(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n\n ctx.save();\n var lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n\n if (labelOpts.usePointStyle) {\n var drawOptions = {\n radius: boxWidth * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n var centerX = rtlHelper.xPlus(x, boxWidth / 2);\n var centerY = y + halfFontSize;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n var yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n var xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n var borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n\n if (Object.values(borderRadius).some(function (v) {\n return v !== 0;\n })) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n\n ctx.fill();\n\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n\n ctx.restore();\n };\n\n var fillText = function fillText(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n\n var isHorizontal = this.isHorizontal();\n\n var titleHeight = this._computeTitleHeight();\n\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n\n overrideTextDirection(this.ctx, opts.textDirection);\n var lineHeight = itemHeight + padding;\n this.legendItems.forEach(function (legendItem, i) {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n var textWidth = ctx.measureText(legendItem.text).width;\n var textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n var width = boxWidth + halfFontSize + textWidth;\n var x = cursor.x;\n var y = cursor.y;\n rtlHelper.setWidth(_this28.width);\n\n if (isHorizontal) {\n if (i > 0 && x + width + padding > _this28.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, _this28.left + padding, _this28.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > _this28.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, _this28.top + titleHeight + padding, _this28.bottom - columnSizes[cursor.line].height);\n }\n\n var realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : _this28.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {\n var opts = this.options;\n var titleOpts = opts.title;\n var titleFont = toFont(titleOpts.font);\n var titlePadding = toPadding(titleOpts.padding);\n\n if (!titleOpts.display) {\n return;\n }\n\n var rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n var ctx = this.ctx;\n var position = titleOpts.position;\n var halfFontSize = titleFont.size / 2;\n var topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n var y;\n var left = this.left;\n var maxWidth = this.width;\n\n if (this.isHorizontal()) {\n maxWidth = Math.max.apply(Math, _toConsumableArray(this.lineWidths));\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n var maxHeight = this.columnSizes.reduce(function (acc, size) {\n return Math.max(acc, size.height);\n }, 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n\n var x = _alignStartEnd(position, left, left + maxWidth);\n\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n }, {\n key: \"_computeTitleHeight\",\n value: function _computeTitleHeight() {\n var titleOpts = this.options.title;\n var titleFont = toFont(titleOpts.font);\n var titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n }, {\n key: \"_getLegendItemAt\",\n value: function _getLegendItemAt(x, y) {\n var i, hitBox, lh;\n\n if (x >= this.left && x <= this.right && y >= this.top && y <= this.bottom) {\n lh = this.legendHitBoxes;\n\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n\n if (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n return this.legendItems[i];\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e) {\n var opts = this.options;\n\n if (!isListened(e.type, opts)) {\n return;\n }\n\n var hoveredItem = this._getLegendItemAt(e.x, e.y);\n\n if (e.type === 'mousemove') {\n var previous = this._hoveredItem;\n var sameItem = itemsEqual(previous, hoveredItem);\n\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n\n this._hoveredItem = hoveredItem;\n\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n }]);\n\n return Legend;\n}(Element);\n\nfunction isListened(type, opts) {\n if (type === 'mousemove' && (opts.onHover || opts.onLeave)) {\n return true;\n }\n\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n\n return false;\n}\n\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start: function start(chart, _args, options) {\n var legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options: options,\n chart: chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop: function stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate: function afterUpdate(chart) {\n var legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent: function afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick: function onClick(e, legendItem, legend) {\n var index = legendItem.datasetIndex;\n var ci = legend.chart;\n\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: function color(ctx) {\n return ctx.chart.options.color;\n },\n boxWidth: 40,\n padding: 10,\n generateLabels: function generateLabels(chart) {\n var datasets = chart.data.datasets;\n var _chart$legend$options = chart.legend.options.labels,\n usePointStyle = _chart$legend$options.usePointStyle,\n pointStyle = _chart$legend$options.pointStyle,\n textAlign = _chart$legend$options.textAlign,\n color = _chart$legend$options.color;\n return chart._getSortedDatasetMetas().map(function (meta) {\n var style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n var borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: function color(ctx) {\n return ctx.chart.options.color;\n },\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: function _scriptable(name) {\n return !name.startsWith('on');\n },\n labels: {\n _scriptable: function _scriptable(name) {\n return !['generateLabels', 'filter', 'sort'].includes(name);\n }\n }\n }\n};\n\nvar Title = /*#__PURE__*/function (_Element7) {\n _inherits(Title, _Element7);\n\n var _super17 = _createSuper(Title);\n\n function Title(config) {\n var _this29;\n\n _classCallCheck(this, Title);\n\n _this29 = _super17.call(this);\n _this29.chart = config.chart;\n _this29.options = config.options;\n _this29.ctx = config.ctx;\n _this29._padding = undefined;\n _this29.top = undefined;\n _this29.bottom = undefined;\n _this29.left = undefined;\n _this29.right = undefined;\n _this29.width = undefined;\n _this29.height = undefined;\n _this29.position = undefined;\n _this29.weight = undefined;\n _this29.fullSize = undefined;\n return _this29;\n }\n\n _createClass(Title, [{\n key: \"update\",\n value: function update(maxWidth, maxHeight) {\n var opts = this.options;\n this.left = 0;\n this.top = 0;\n\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n var lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n\n var textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n var pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n }, {\n key: \"_drawArgs\",\n value: function _drawArgs(offset) {\n var top = this.top,\n left = this.left,\n bottom = this.bottom,\n right = this.right,\n options = this.options;\n var align = options.align;\n var rotation = 0;\n var maxWidth, titleX, titleY;\n\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n\n maxWidth = bottom - top;\n }\n\n return {\n titleX: titleX,\n titleY: titleY,\n maxWidth: maxWidth,\n rotation: rotation\n };\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var ctx = this.ctx;\n var opts = this.options;\n\n if (!opts.display) {\n return;\n }\n\n var fontOpts = toFont(opts.font);\n var lineHeight = fontOpts.lineHeight;\n var offset = lineHeight / 2 + this._padding.top;\n\n var _this$_drawArgs = this._drawArgs(offset),\n titleX = _this$_drawArgs.titleX,\n titleY = _this$_drawArgs.titleY,\n maxWidth = _this$_drawArgs.maxWidth,\n rotation = _this$_drawArgs.rotation;\n\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth: maxWidth,\n rotation: rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY]\n });\n }\n }]);\n\n return Title;\n}(Element);\n\nfunction createTitle(chart, titleOpts) {\n var title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart: chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\n\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start: function start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop: function stop(chart) {\n var titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\nvar map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start: function start(chart, _args, options) {\n var title = new Title({\n ctx: chart.ctx,\n options: options,\n chart: chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop: function stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\nvar positioners = {\n average: function average(items) {\n if (!items.length) {\n return false;\n }\n\n var i, len;\n var x = 0;\n var y = 0;\n var count = 0;\n\n for (i = 0, len = items.length; i < len; ++i) {\n var el = items[i].element;\n\n if (el && el.hasValue()) {\n var pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest: function nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n\n var x = eventPosition.x;\n var y = eventPosition.y;\n var minDistance = Number.POSITIVE_INFINITY;\n var i, len, nearestElement;\n\n for (i = 0, len = items.length; i < len; ++i) {\n var el = items[i].element;\n\n if (el && el.hasValue()) {\n var center = el.getCenterPoint();\n var d = distanceBetweenPoints(eventPosition, center);\n\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n\n if (nearestElement) {\n var tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n\n return {\n x: x,\n y: y\n };\n }\n};\n\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n\n return base;\n}\n\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n\n return str;\n}\n\nfunction createTooltipItem(chart, item) {\n var element = item.element,\n datasetIndex = item.datasetIndex,\n index = item.index;\n var controller = chart.getDatasetMeta(datasetIndex).controller;\n\n var _controller$getLabelA = controller.getLabelAndValue(index),\n label = _controller$getLabelA.label,\n value = _controller$getLabelA.value;\n\n return {\n chart: chart,\n label: label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex: datasetIndex,\n element: element\n };\n}\n\nfunction getTooltipSize(tooltip, options) {\n var ctx = tooltip._chart.ctx;\n var body = tooltip.body,\n footer = tooltip.footer,\n title = tooltip.title;\n var boxWidth = options.boxWidth,\n boxHeight = options.boxHeight;\n var bodyFont = toFont(options.bodyFont);\n var titleFont = toFont(options.titleFont);\n var footerFont = toFont(options.footerFont);\n var titleLineCount = title.length;\n var footerLineCount = footer.length;\n var bodyLineItemCount = body.length;\n var padding = toPadding(options.padding);\n var height = padding.height;\n var width = 0;\n var combinedBodyLength = body.reduce(function (count, bodyItem) {\n return count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\n }, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n\n if (combinedBodyLength) {\n var bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n\n var widthPadding = 0;\n\n var maxLineWidth = function maxLineWidth(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n each(body, function (bodyItem) {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width: width,\n height: height\n };\n}\n\nfunction determineYAlign(chart, size) {\n var y = size.y,\n height = size.height;\n\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n\n return 'center';\n}\n\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n var x = size.x,\n width = size.width;\n var caret = options.caretSize + options.caretPadding;\n\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\n\nfunction determineXAlign(chart, options, size, yAlign) {\n var x = size.x,\n width = size.width;\n var chartWidth = chart.width,\n _chart$chartArea = chart.chartArea,\n left = _chart$chartArea.left,\n right = _chart$chartArea.right;\n var xAlign = 'center';\n\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n\n return xAlign;\n}\n\nfunction determineAlignment(chart, options, size) {\n var yAlign = options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign: yAlign\n };\n}\n\nfunction alignX(size, xAlign) {\n var x = size.x,\n width = size.width;\n\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n\n return x;\n}\n\nfunction alignY(size, yAlign, paddingAndSize) {\n var y = size.y,\n height = size.height;\n\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n\n return y;\n}\n\nfunction getBackgroundPoint(options, size, alignment, chart) {\n var caretSize = options.caretSize,\n caretPadding = options.caretPadding,\n cornerRadius = options.cornerRadius;\n var xAlign = alignment.xAlign,\n yAlign = alignment.yAlign;\n var paddingAndSize = caretSize + caretPadding;\n\n var _toTRBLCorners = toTRBLCorners(cornerRadius),\n topLeft = _toTRBLCorners.topLeft,\n topRight = _toTRBLCorners.topRight,\n bottomLeft = _toTRBLCorners.bottomLeft,\n bottomRight = _toTRBLCorners.bottomRight;\n\n var x = alignX(size, xAlign);\n var y = alignY(size, yAlign, paddingAndSize);\n\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretPadding;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretPadding;\n }\n\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\n\nfunction getAlignedX(tooltip, align, options) {\n var padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\n\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip: tooltip,\n tooltipItems: tooltipItems,\n type: 'tooltip'\n });\n}\n\nfunction overrideCallbacks(callbacks, context) {\n var override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\n\nvar Tooltip = /*#__PURE__*/function (_Element8) {\n _inherits(Tooltip, _Element8);\n\n var _super18 = _createSuper(Tooltip);\n\n function Tooltip(config) {\n var _this30;\n\n _classCallCheck(this, Tooltip);\n\n _this30 = _super18.call(this);\n _this30.opacity = 0;\n _this30._active = [];\n _this30._chart = config._chart;\n _this30._eventPosition = undefined;\n _this30._size = undefined;\n _this30._cachedAnimations = undefined;\n _this30._tooltipItems = [];\n _this30.$animations = undefined;\n _this30.$context = undefined;\n _this30.options = config.options;\n _this30.dataPoints = undefined;\n _this30.title = undefined;\n _this30.beforeBody = undefined;\n _this30.body = undefined;\n _this30.afterBody = undefined;\n _this30.footer = undefined;\n _this30.xAlign = undefined;\n _this30.yAlign = undefined;\n _this30.x = undefined;\n _this30.y = undefined;\n _this30.height = undefined;\n _this30.width = undefined;\n _this30.caretX = undefined;\n _this30.caretY = undefined;\n _this30.labelColors = undefined;\n _this30.labelPointStyles = undefined;\n _this30.labelTextColors = undefined;\n return _this30;\n }\n\n _createClass(Tooltip, [{\n key: \"initialize\",\n value: function initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n }, {\n key: \"_resolveAnimations\",\n value: function _resolveAnimations() {\n var cached = this._cachedAnimations;\n\n if (cached) {\n return cached;\n }\n\n var chart = this._chart;\n var options = this.options.setContext(this.getContext());\n var opts = options.enabled && chart.options.animation && options.animations;\n var animations = new Animations(this._chart, opts);\n\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n\n return animations;\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.$context || (this.$context = createTooltipContext(this._chart.getContext(), this, this._tooltipItems));\n }\n }, {\n key: \"getTitle\",\n value: function getTitle(context, options) {\n var callbacks = options.callbacks;\n var beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n var title = callbacks.title.apply(this, [context]);\n var afterTitle = callbacks.afterTitle.apply(this, [context]);\n var lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n }, {\n key: \"getBeforeBody\",\n value: function getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n }, {\n key: \"getBody\",\n value: function getBody(tooltipItems, options) {\n var _this31 = this;\n\n var callbacks = options.callbacks;\n var bodyItems = [];\n each(tooltipItems, function (context) {\n var bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n var scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(_this31, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(_this31, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(_this31, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n }, {\n key: \"getAfterBody\",\n value: function getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n }, {\n key: \"getFooter\",\n value: function getFooter(tooltipItems, options) {\n var callbacks = options.callbacks;\n var beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n var footer = callbacks.footer.apply(this, [tooltipItems]);\n var afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n var lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n }, {\n key: \"_createItems\",\n value: function _createItems(options) {\n var _this32 = this;\n\n var active = this._active;\n var data = this._chart.data;\n var labelColors = [];\n var labelPointStyles = [];\n var labelTextColors = [];\n var tooltipItems = [];\n var i, len;\n\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this._chart, active[i]));\n }\n\n if (options.filter) {\n tooltipItems = tooltipItems.filter(function (element, index, array) {\n return options.filter(element, index, array, data);\n });\n }\n\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort(function (a, b) {\n return options.itemSort(a, b, data);\n });\n }\n\n each(tooltipItems, function (context) {\n var scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(_this32, context));\n labelPointStyles.push(scoped.labelPointStyle.call(_this32, context));\n labelTextColors.push(scoped.labelTextColor.call(_this32, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n }, {\n key: \"update\",\n value: function update(changed, replay) {\n var options = this.options.setContext(this.getContext());\n var active = this._active;\n var properties;\n var tooltipItems = [];\n\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n var position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n var size = this._size = getTooltipSize(this, options);\n var positionAndSize = Object.assign({}, position, size);\n var alignment = determineAlignment(this._chart, options, positionAndSize);\n var backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this._chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n\n if (changed && options.external) {\n options.external.call(this, {\n chart: this._chart,\n tooltip: this,\n replay: replay\n });\n }\n }\n }, {\n key: \"drawCaret\",\n value: function drawCaret(tooltipPoint, ctx, size, options) {\n var caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n }, {\n key: \"getCaretPosition\",\n value: function getCaretPosition(tooltipPoint, size, options) {\n var xAlign = this.xAlign,\n yAlign = this.yAlign;\n var caretSize = options.caretSize,\n cornerRadius = options.cornerRadius;\n\n var _toTRBLCorners2 = toTRBLCorners(cornerRadius),\n topLeft = _toTRBLCorners2.topLeft,\n topRight = _toTRBLCorners2.topRight,\n bottomLeft = _toTRBLCorners2.bottomLeft,\n bottomRight = _toTRBLCorners2.bottomRight;\n\n var ptX = tooltipPoint.x,\n ptY = tooltipPoint.y;\n var width = size.width,\n height = size.height;\n var x1, x2, x3, y1, y2, y3;\n\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n\n y3 = y1;\n }\n\n return {\n x1: x1,\n x2: x2,\n x3: x3,\n y1: y1,\n y2: y2,\n y3: y3\n };\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle(pt, ctx, options) {\n var title = this.title;\n var length = title.length;\n var titleFont, titleSpacing, i;\n\n if (length) {\n var rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n }, {\n key: \"_drawColorBox\",\n value: function _drawColorBox(ctx, pt, i, rtlHelper, options) {\n var labelColors = this.labelColors[i];\n var labelPointStyle = this.labelPointStyles[i];\n var boxHeight = options.boxHeight,\n boxWidth = options.boxWidth,\n boxPadding = options.boxPadding;\n var bodyFont = toFont(options.bodyFont);\n var colorX = getAlignedX(this, 'left', options);\n var rtlColorX = rtlHelper.x(colorX);\n var yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n var colorY = pt.y + yOffSet;\n\n if (options.usePointStyle) {\n var drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n var centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n var centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n var outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n var innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n var borderRadius = toTRBLCorners(labelColors.borderRadius);\n\n if (Object.values(borderRadius).some(function (v) {\n return v !== 0;\n })) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n\n ctx.fillStyle = this.labelTextColors[i];\n }\n }, {\n key: \"drawBody\",\n value: function drawBody(pt, ctx, options) {\n var body = this.body;\n var bodySpacing = options.bodySpacing,\n bodyAlign = options.bodyAlign,\n displayColors = options.displayColors,\n boxHeight = options.boxHeight,\n boxWidth = options.boxWidth,\n boxPadding = options.boxPadding;\n var bodyFont = toFont(options.bodyFont);\n var bodyLineHeight = bodyFont.lineHeight;\n var xLinePadding = 0;\n var rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n var fillLineOfText = function fillLineOfText(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n\n var bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n var bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n\n each(bodyItem.after, fillLineOfText);\n }\n\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n }, {\n key: \"drawFooter\",\n value: function drawFooter(pt, ctx, options) {\n var footer = this.footer;\n var length = footer.length;\n var footerFont, i;\n\n if (length) {\n var rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n }, {\n key: \"drawBackground\",\n value: function drawBackground(pt, ctx, tooltipSize, options) {\n var xAlign = this.xAlign,\n yAlign = this.yAlign;\n var x = pt.x,\n y = pt.y;\n var width = tooltipSize.width,\n height = tooltipSize.height;\n\n var _toTRBLCorners3 = toTRBLCorners(options.cornerRadius),\n topLeft = _toTRBLCorners3.topLeft,\n topRight = _toTRBLCorners3.topRight,\n bottomLeft = _toTRBLCorners3.bottomLeft,\n bottomRight = _toTRBLCorners3.bottomRight;\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n }, {\n key: \"_updateAnimationTarget\",\n value: function _updateAnimationTarget(options) {\n var chart = this._chart;\n var anims = this.$animations;\n var animX = anims && anims.x;\n var animY = anims && anims.y;\n\n if (animX || animY) {\n var position = positioners[options.position].call(this, this._active, this._eventPosition);\n\n if (!position) {\n return;\n }\n\n var size = this._size = getTooltipSize(this, options);\n var positionAndSize = Object.assign({}, position, this._size);\n var alignment = determineAlignment(chart, options, positionAndSize);\n var point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n\n this._resolveAnimations().update(this, point);\n }\n }\n }\n }, {\n key: \"draw\",\n value: function draw(ctx) {\n var options = this.options.setContext(this.getContext());\n var opacity = this.opacity;\n\n if (!opacity) {\n return;\n }\n\n this._updateAnimationTarget(options);\n\n var tooltipSize = {\n width: this.width,\n height: this.height\n };\n var pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n var padding = toPadding(options.padding);\n var hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n }, {\n key: \"getActiveElements\",\n value: function getActiveElements() {\n return this._active || [];\n }\n }, {\n key: \"setActiveElements\",\n value: function setActiveElements(activeElements, eventPosition) {\n var _this33 = this;\n\n var lastActive = this._active;\n var active = activeElements.map(function (_ref14) {\n var datasetIndex = _ref14.datasetIndex,\n index = _ref14.index;\n\n var meta = _this33._chart.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n\n return {\n datasetIndex: datasetIndex,\n element: meta.data[index],\n index: index\n };\n });\n var changed = !_elementsEqual(lastActive, active);\n\n var positionChanged = this._positionChanged(active, eventPosition);\n\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this.update(true);\n }\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e, replay) {\n var options = this.options;\n var lastActive = this._active || [];\n var changed = false;\n var active = [];\n\n if (e.type !== 'mouseout') {\n active = this._chart.getElementsAtEventForMode(e, options.mode, options, replay);\n\n if (options.reverse) {\n active.reverse();\n }\n }\n\n var positionChanged = this._positionChanged(active, e);\n\n changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n\n if (changed) {\n this._active = active;\n\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n\n return changed;\n }\n }, {\n key: \"_positionChanged\",\n value: function _positionChanged(active, e) {\n var caretX = this.caretX,\n caretY = this.caretY,\n options = this.options;\n var position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n }]);\n\n return Tooltip;\n}(Element);\n\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners: positioners,\n afterInit: function afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n _chart: chart,\n options: options\n });\n }\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset: function reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw: function afterDraw(chart) {\n var tooltip = chart.tooltip;\n var args = {\n tooltip: tooltip\n };\n\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n\n if (tooltip) {\n tooltip.draw(chart.ctx);\n }\n\n chart.notifyPlugins('afterTooltipDraw', args);\n },\n afterEvent: function afterEvent(chart, args) {\n if (chart.tooltip) {\n var useFinalPosition = args.replay;\n\n if (chart.tooltip.handleEvent(args.event, useFinalPosition)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: function boxHeight(ctx, opts) {\n return opts.bodyFont.size;\n },\n boxWidth: function boxWidth(ctx, opts) {\n return opts.bodyFont.size;\n },\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY']\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title: function title(tooltipItems) {\n if (tooltipItems.length > 0) {\n var item = tooltipItems[0];\n var labels = item.chart.data.labels;\n var labelCount = labels ? labels.length : 0;\n\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label: function label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n\n var label = tooltipItem.dataset.label || '';\n\n if (label) {\n label += ': ';\n }\n\n var value = tooltipItem.formattedValue;\n\n if (!isNullOrUndef(value)) {\n label += value;\n }\n\n return label;\n },\n labelColor: function labelColor(tooltipItem) {\n var meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n var options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor: function labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle: function labelPointStyle(tooltipItem) {\n var meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n var options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: function _scriptable(name) {\n return name !== 'filter' && name !== 'itemSort' && name !== 'external';\n },\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\nvar plugins = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Decimation: plugin_decimation,\n Filler: plugin_filler,\n Legend: plugin_legend,\n SubTitle: plugin_subtitle,\n Title: plugin_title,\n Tooltip: plugin_tooltip\n});\n\nvar addIfString = function addIfString(labels, raw, index) {\n return typeof raw === 'string' ? labels.push(raw) - 1 : isNaN(raw) ? null : index;\n};\n\nfunction findOrAddLabel(labels, raw, index) {\n var first = labels.indexOf(raw);\n\n if (first === -1) {\n return addIfString(labels, raw, index);\n }\n\n var last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\n\nvar validIndex = function validIndex(index, max) {\n return index === null ? null : _limitValue(Math.round(index), 0, max);\n};\n\nvar CategoryScale = /*#__PURE__*/function (_Scale) {\n _inherits(CategoryScale, _Scale);\n\n var _super19 = _createSuper(CategoryScale);\n\n function CategoryScale(cfg) {\n var _this34;\n\n _classCallCheck(this, CategoryScale);\n\n _this34 = _super19.call(this, cfg);\n _this34._startValue = undefined;\n _this34._valueRange = 0;\n return _this34;\n }\n\n _createClass(CategoryScale, [{\n key: \"parse\",\n value: function parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n\n var labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw));\n return validIndex(index, labels.length - 1);\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getUserBounds2 = this.getUserBounds(),\n minDefined = _this$getUserBounds2.minDefined,\n maxDefined = _this$getUserBounds2.maxDefined;\n\n var _this$getMinMax = this.getMinMax(true),\n min = _this$getMinMax.min,\n max = _this$getMinMax.max;\n\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n\n this.min = min;\n this.max = max;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var min = this.min;\n var max = this.max;\n var offset = this.options.offset;\n var ticks = [];\n var labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n\n for (var value = min; value <= max; value++) {\n ticks.push({\n value: value\n });\n }\n\n return ticks;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n var labels = this.getLabels();\n\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n\n return value;\n }\n }, {\n key: \"configure\",\n value: function configure() {\n _get(_getPrototypeOf(CategoryScale.prototype), \"configure\", this).call(this);\n\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n }, {\n key: \"getPixelForTick\",\n value: function getPixelForTick(index) {\n var ticks = this.ticks;\n\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n\n return this.getPixelForValue(ticks[index].value);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n }, {\n key: \"getBasePixel\",\n value: function getBasePixel() {\n return this.bottom;\n }\n }]);\n\n return CategoryScale;\n}(Scale);\n\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n var ticks = [];\n var MIN_SPACING = 1e-14;\n var bounds = generationOptions.bounds,\n step = generationOptions.step,\n min = generationOptions.min,\n max = generationOptions.max,\n precision = generationOptions.precision,\n count = generationOptions.count,\n maxTicks = generationOptions.maxTicks,\n maxDigits = generationOptions.maxDigits,\n includeBounds = generationOptions.includeBounds;\n var unit = step || 1;\n var maxSpaces = maxTicks - 1;\n var rmin = dataRange.min,\n rmax = dataRange.max;\n var minDefined = !isNullOrUndef(min);\n var maxDefined = !isNullOrUndef(max);\n var countDefined = !isNullOrUndef(count);\n var minSpacing = (rmax - rmin) / (maxDigits + 1);\n var spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n var factor, niceMin, niceMax, numSpaces;\n\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{\n value: rmin\n }, {\n value: rmax\n }];\n }\n\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n\n var decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n var j = 0;\n\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n\n if (niceMin < min) {\n j++;\n }\n\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n\n for (; j < numSpaces; ++j) {\n ticks.push({\n value: Math.round((niceMin + j * spacing) * factor) / factor\n });\n }\n\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n\n return ticks;\n}\n\nfunction relativeLabelSize(value, minSpacing, _ref15) {\n var horizontal = _ref15.horizontal,\n minRotation = _ref15.minRotation;\n var rad = toRadians(minRotation);\n var ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n var length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\n\nvar LinearScaleBase = /*#__PURE__*/function (_Scale2) {\n _inherits(LinearScaleBase, _Scale2);\n\n var _super20 = _createSuper(LinearScaleBase);\n\n function LinearScaleBase(cfg) {\n var _this35;\n\n _classCallCheck(this, LinearScaleBase);\n\n _this35 = _super20.call(this, cfg);\n _this35.start = undefined;\n _this35.end = undefined;\n _this35._startValue = undefined;\n _this35._endValue = undefined;\n _this35._valueRange = 0;\n return _this35;\n }\n\n _createClass(LinearScaleBase, [{\n key: \"parse\",\n value: function parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n\n return +raw;\n }\n }, {\n key: \"handleTickRangeOptions\",\n value: function handleTickRangeOptions() {\n var beginAtZero = this.options.beginAtZero;\n\n var _this$getUserBounds3 = this.getUserBounds(),\n minDefined = _this$getUserBounds3.minDefined,\n maxDefined = _this$getUserBounds3.maxDefined;\n\n var min = this.min,\n max = this.max;\n\n var setMin = function setMin(v) {\n return min = minDefined ? min : v;\n };\n\n var setMax = function setMax(v) {\n return max = maxDefined ? max : v;\n };\n\n if (beginAtZero) {\n var minSign = sign(min);\n var maxSign = sign(max);\n\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n\n if (min === max) {\n var offset = 1;\n\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n\n setMax(max + offset);\n\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n\n this.min = min;\n this.max = max;\n }\n }, {\n key: \"getTickLimit\",\n value: function getTickLimit() {\n var tickOpts = this.options.ticks;\n var maxTicksLimit = tickOpts.maxTicksLimit,\n stepSize = tickOpts.stepSize;\n var maxTicks;\n\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n\n if (maxTicks > 1000) {\n console.warn(\"scales.\".concat(this.id, \".ticks.stepSize: \").concat(stepSize, \" would result generating up to \").concat(maxTicks, \" ticks. Limiting to 1000.\"));\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n\n return maxTicks;\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var opts = this.options;\n var tickOpts = opts.ticks;\n var maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n var numericGeneratorOptions = {\n maxTicks: maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n var dataRange = this._range || this;\n var ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var ticks = this.ticks;\n var start = this.min;\n var end = this.max;\n\n _get(_getPrototypeOf(LinearScaleBase.prototype), \"configure\", this).call(this);\n\n if (this.options.offset && ticks.length) {\n var offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale);\n }\n }]);\n\n return LinearScaleBase;\n}(Scale);\n\nvar LinearScale = /*#__PURE__*/function (_LinearScaleBase) {\n _inherits(LinearScale, _LinearScaleBase);\n\n var _super21 = _createSuper(LinearScale);\n\n function LinearScale() {\n _classCallCheck(this, LinearScale);\n\n return _super21.apply(this, arguments);\n }\n\n _createClass(LinearScale, [{\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getMinMax2 = this.getMinMax(true),\n min = _this$getMinMax2.min,\n max = _this$getMinMax2.max;\n\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n var horizontal = this.isHorizontal();\n var length = horizontal ? this.width : this.height;\n var minRotation = toRadians(this.options.ticks.minRotation);\n var ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n\n var tickFont = this._resolveTickFontOptions(0);\n\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n }]);\n\n return LinearScale;\n}(LinearScaleBase);\n\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n var remain = tickVal / Math.pow(10, Math.floor(log10(tickVal)));\n return remain === 1;\n}\n\nfunction generateTicks(generationOptions, dataRange) {\n var endExp = Math.floor(log10(dataRange.max));\n var endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n var ticks = [];\n var tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n var exp = Math.floor(log10(tickVal));\n var significand = Math.floor(tickVal / Math.pow(10, exp));\n var precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n\n do {\n ticks.push({\n value: tickVal,\n major: isMajor(tickVal)\n });\n ++significand;\n\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || exp === endExp && significand < endSignificand);\n\n var lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({\n value: lastTick,\n major: isMajor(tickVal)\n });\n return ticks;\n}\n\nvar LogarithmicScale = /*#__PURE__*/function (_Scale3) {\n _inherits(LogarithmicScale, _Scale3);\n\n var _super22 = _createSuper(LogarithmicScale);\n\n function LogarithmicScale(cfg) {\n var _this36;\n\n _classCallCheck(this, LogarithmicScale);\n\n _this36 = _super22.call(this, cfg);\n _this36.start = undefined;\n _this36.end = undefined;\n _this36._startValue = undefined;\n _this36._valueRange = 0;\n return _this36;\n }\n\n _createClass(LogarithmicScale, [{\n key: \"parse\",\n value: function parse(raw, index) {\n var value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getMinMax3 = this.getMinMax(true),\n min = _this$getMinMax3.min,\n max = _this$getMinMax3.max;\n\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n\n this.handleTickRangeOptions();\n }\n }, {\n key: \"handleTickRangeOptions\",\n value: function handleTickRangeOptions() {\n var _this$getUserBounds4 = this.getUserBounds(),\n minDefined = _this$getUserBounds4.minDefined,\n maxDefined = _this$getUserBounds4.maxDefined;\n\n var min = this.min;\n var max = this.max;\n\n var setMin = function setMin(v) {\n return min = minDefined ? min : v;\n };\n\n var setMax = function setMax(v) {\n return max = maxDefined ? max : v;\n };\n\n var exp = function exp(v, m) {\n return Math.pow(10, Math.floor(log10(v)) + m);\n };\n\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n\n this.min = min;\n this.max = max;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var opts = this.options;\n var generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n var ticks = generateTicks(generationOptions, this);\n\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale);\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var start = this.min;\n\n _get(_getPrototypeOf(LogarithmicScale.prototype), \"configure\", this).call(this);\n\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n\n if (value === null || isNaN(value)) {\n return NaN;\n }\n\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n }]);\n\n return LogarithmicScale;\n}(Scale);\n\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n var tickOpts = opts.ticks;\n\n if (tickOpts.display && opts.display) {\n var padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n\n return 0;\n}\n\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n\n return {\n start: pos,\n end: pos + size\n };\n}\n\nfunction fitWithPointLabels(scale) {\n var furthestLimits = {\n l: 0,\n r: scale.width,\n t: 0,\n b: scale.height - scale.paddingTop\n };\n var furthestAngles = {};\n var labelSizes = [];\n var padding = [];\n var valueCount = scale.getLabels().length;\n\n for (var i = 0; i < valueCount; i++) {\n var opts = scale.options.pointLabels.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n var pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i]);\n var plFont = toFont(opts.font);\n var textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n var angleRadians = scale.getIndexAngle(i);\n var angle = toDegrees(angleRadians);\n var hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n var vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n\n if (hLimits.start < furthestLimits.l) {\n furthestLimits.l = hLimits.start;\n furthestAngles.l = angleRadians;\n }\n\n if (hLimits.end > furthestLimits.r) {\n furthestLimits.r = hLimits.end;\n furthestAngles.r = angleRadians;\n }\n\n if (vLimits.start < furthestLimits.t) {\n furthestLimits.t = vLimits.start;\n furthestAngles.t = angleRadians;\n }\n\n if (vLimits.end > furthestLimits.b) {\n furthestLimits.b = vLimits.end;\n furthestAngles.b = angleRadians;\n }\n }\n\n scale._setReductions(scale.drawingArea, furthestLimits, furthestAngles);\n\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\n\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n var items = [];\n var valueCount = scale.getLabels().length;\n var opts = scale.options;\n var tickBackdropHeight = getTickBackdropHeight(opts);\n var outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n\n for (var i = 0; i < valueCount; i++) {\n var extra = i === 0 ? tickBackdropHeight / 2 : 0;\n var pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i]);\n var angle = toDegrees(scale.getIndexAngle(i));\n var size = labelSizes[i];\n var y = yForAngle(pointLabelPosition.y, size.h, angle);\n var textAlign = getTextAlignForAngle(angle);\n var left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y: y,\n textAlign: textAlign,\n left: left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n\n return items;\n}\n\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n\n return 'right';\n}\n\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n\n return x;\n}\n\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n\n return y;\n}\n\nfunction drawPointLabels(scale, labelCount) {\n var ctx = scale.ctx,\n pointLabels = scale.options.pointLabels;\n\n for (var i = labelCount - 1; i >= 0; i--) {\n var optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n var plFont = toFont(optsAtIndex.font);\n var _scale$_pointLabelIte = scale._pointLabelItems[i],\n x = _scale$_pointLabelIte.x,\n y = _scale$_pointLabelIte.y,\n textAlign = _scale$_pointLabelIte.textAlign,\n left = _scale$_pointLabelIte.left,\n top = _scale$_pointLabelIte.top,\n right = _scale$_pointLabelIte.right,\n bottom = _scale$_pointLabelIte.bottom;\n var backdropColor = optsAtIndex.backdropColor;\n\n if (!isNullOrUndef(backdropColor)) {\n var padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n ctx.fillRect(left - padding.left, top - padding.top, right - left + padding.width, bottom - top + padding.height);\n }\n\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\n\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n var ctx = scale.ctx;\n\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n var pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n\n for (var i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n var ctx = scale.ctx;\n var circular = gridLineOpts.circular;\n var color = gridLineOpts.color,\n lineWidth = gridLineOpts.lineWidth;\n\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\n\nfunction numberOrZero(param) {\n return isNumber(param) ? param : 0;\n}\n\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label: label,\n index: index,\n type: 'pointLabel'\n });\n}\n\nvar RadialLinearScale = /*#__PURE__*/function (_LinearScaleBase2) {\n _inherits(RadialLinearScale, _LinearScaleBase2);\n\n var _super23 = _createSuper(RadialLinearScale);\n\n function RadialLinearScale(cfg) {\n var _this37;\n\n _classCallCheck(this, RadialLinearScale);\n\n _this37 = _super23.call(this, cfg);\n _this37.xCenter = undefined;\n _this37.yCenter = undefined;\n _this37.drawingArea = undefined;\n _this37._pointLabels = [];\n _this37._pointLabelItems = [];\n return _this37;\n }\n\n _createClass(RadialLinearScale, [{\n key: \"setDimensions\",\n value: function setDimensions() {\n this.width = this.maxWidth;\n this.height = this.maxHeight;\n this.paddingTop = getTickBackdropHeight(this.options) / 2;\n this.xCenter = Math.floor(this.width / 2);\n this.yCenter = Math.floor((this.height - this.paddingTop) / 2);\n this.drawingArea = Math.min(this.height - this.paddingTop, this.width) / 2;\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getMinMax4 = this.getMinMax(false),\n min = _this$getMinMax4.min,\n max = _this$getMinMax4.max;\n\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var _this38 = this;\n\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map(function (value, index) {\n var label = callback(_this38.options.pointLabels.callback, [value, index], _this38);\n return label || label === 0 ? label : '';\n });\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var opts = this.options;\n\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n }, {\n key: \"_setReductions\",\n value: function _setReductions(largestPossibleRadius, furthestLimits, furthestAngles) {\n var radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n var radiusReductionRight = Math.max(furthestLimits.r - this.width, 0) / Math.sin(furthestAngles.r);\n var radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n var radiusReductionBottom = -Math.max(furthestLimits.b - (this.height - this.paddingTop), 0) / Math.cos(furthestAngles.b);\n radiusReductionLeft = numberOrZero(radiusReductionLeft);\n radiusReductionRight = numberOrZero(radiusReductionRight);\n radiusReductionTop = numberOrZero(radiusReductionTop);\n radiusReductionBottom = numberOrZero(radiusReductionBottom);\n this.drawingArea = Math.max(largestPossibleRadius / 2, Math.min(Math.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2), Math.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2)));\n this.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n }\n }, {\n key: \"setCenterPoint\",\n value: function setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n var maxRight = this.width - rightMovement - this.drawingArea;\n var maxLeft = leftMovement + this.drawingArea;\n var maxTop = topMovement + this.drawingArea;\n var maxBottom = this.height - this.paddingTop - bottomMovement - this.drawingArea;\n this.xCenter = Math.floor((maxLeft + maxRight) / 2 + this.left);\n this.yCenter = Math.floor((maxTop + maxBottom) / 2 + this.top + this.paddingTop);\n }\n }, {\n key: \"getIndexAngle\",\n value: function getIndexAngle(index) {\n var angleMultiplier = TAU / this.getLabels().length;\n var startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n }, {\n key: \"getDistanceFromCenterForValue\",\n value: function getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n\n var scalingFactor = this.drawingArea / (this.max - this.min);\n\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n\n return (value - this.min) * scalingFactor;\n }\n }, {\n key: \"getValueForDistanceFromCenter\",\n value: function getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n\n var scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n }, {\n key: \"getPointLabelContext\",\n value: function getPointLabelContext(index) {\n var pointLabels = this._pointLabels || [];\n\n if (index >= 0 && index < pointLabels.length) {\n var pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n }, {\n key: \"getPointPosition\",\n value: function getPointPosition(index, distanceFromCenter) {\n var angle = this.getIndexAngle(index) - HALF_PI;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle: angle\n };\n }\n }, {\n key: \"getPointPositionForValue\",\n value: function getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n }, {\n key: \"getBasePosition\",\n value: function getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n }, {\n key: \"getPointLabelPosition\",\n value: function getPointLabelPosition(index) {\n var _this$_pointLabelItem = this._pointLabelItems[index],\n left = _this$_pointLabelItem.left,\n top = _this$_pointLabelItem.top,\n right = _this$_pointLabelItem.right,\n bottom = _this$_pointLabelItem.bottom;\n return {\n left: left,\n top: top,\n right: right,\n bottom: bottom\n };\n }\n }, {\n key: \"drawBackground\",\n value: function drawBackground() {\n var _this$options14 = this.options,\n backgroundColor = _this$options14.backgroundColor,\n circular = _this$options14.grid.circular;\n\n if (backgroundColor) {\n var ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this.getLabels().length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n }, {\n key: \"drawGrid\",\n value: function drawGrid() {\n var _this39 = this;\n\n var ctx = this.ctx;\n var opts = this.options;\n var angleLines = opts.angleLines,\n grid = opts.grid;\n var labelCount = this.getLabels().length;\n var i, offset, position;\n\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n\n if (grid.display) {\n this.ticks.forEach(function (tick, index) {\n if (index !== 0) {\n offset = _this39.getDistanceFromCenterForValue(tick.value);\n var optsAtIndex = grid.setContext(_this39.getContext(index - 1));\n drawRadiusLine(_this39, optsAtIndex, offset, labelCount);\n }\n });\n }\n\n if (angleLines.display) {\n ctx.save();\n\n for (i = this.getLabels().length - 1; i >= 0; i--) {\n var optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n var color = optsAtIndex.color,\n lineWidth = optsAtIndex.lineWidth;\n\n if (!lineWidth || !color) {\n continue;\n }\n\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n\n ctx.restore();\n }\n }\n }, {\n key: \"drawBorder\",\n value: function drawBorder() {}\n }, {\n key: \"drawLabels\",\n value: function drawLabels() {\n var _this40 = this;\n\n var ctx = this.ctx;\n var opts = this.options;\n var tickOpts = opts.ticks;\n\n if (!tickOpts.display) {\n return;\n }\n\n var startAngle = this.getIndexAngle(0);\n var offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach(function (tick, index) {\n if (index === 0 && !opts.reverse) {\n return;\n }\n\n var optsAtIndex = tickOpts.setContext(_this40.getContext(index));\n var tickFont = toFont(optsAtIndex.font);\n offset = _this40.getDistanceFromCenterForValue(_this40.ticks[index].value);\n\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n var padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color\n });\n });\n ctx.restore();\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {}\n }]);\n\n return RadialLinearScale;\n}(LinearScaleBase);\n\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback: function callback(label) {\n return label;\n },\n padding: 5\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\nvar INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\nvar UNITS = Object.keys(INTERVALS);\n\nfunction sorter(a, b) {\n return a - b;\n}\n\nfunction _parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n\n var adapter = scale._adapter;\n var _scale$_parseOpts = scale._parseOpts,\n parser = _scale$_parseOpts.parser,\n round = _scale$_parseOpts.round,\n isoWeekday = _scale$_parseOpts.isoWeekday;\n var value = input;\n\n if (typeof parser === 'function') {\n value = parser(value);\n }\n\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n\n if (value === null) {\n return null;\n }\n\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n\n return +value;\n}\n\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n var ilen = UNITS.length;\n\n for (var i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n var interval = INTERVALS[UNITS[i]];\n var factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n\n return UNITS[ilen - 1];\n}\n\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (var i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n var unit = UNITS[i];\n\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\nfunction determineMajorUnit(unit) {\n for (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n var _lookup2 = _lookup(timestamps, time),\n lo = _lookup2.lo,\n hi = _lookup2.hi;\n\n var timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n var adapter = scale._adapter;\n var first = +adapter.startOf(ticks[0].value, majorUnit);\n var last = ticks[ticks.length - 1].value;\n var major, index;\n\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n\n return ticks;\n}\n\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n var ticks = [];\n var map = {};\n var ilen = values.length;\n var i, value;\n\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value: value,\n major: false\n });\n }\n\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nvar TimeScale = /*#__PURE__*/function (_Scale4) {\n _inherits(TimeScale, _Scale4);\n\n var _super24 = _createSuper(TimeScale);\n\n function TimeScale(props) {\n var _this41;\n\n _classCallCheck(this, TimeScale);\n\n _this41 = _super24.call(this, props);\n _this41._cache = {\n data: [],\n labels: [],\n all: []\n };\n _this41._unit = 'day';\n _this41._majorUnit = undefined;\n _this41._offsets = {};\n _this41._normalized = false;\n _this41._parseOpts = undefined;\n return _this41;\n }\n\n _createClass(TimeScale, [{\n key: \"init\",\n value: function init(scaleOpts, opts) {\n var time = scaleOpts.time || (scaleOpts.time = {});\n var adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n\n _get(_getPrototypeOf(TimeScale.prototype), \"init\", this).call(this, scaleOpts);\n\n this._normalized = opts.normalized;\n }\n }, {\n key: \"parse\",\n value: function parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n\n return _parse(this, raw);\n }\n }, {\n key: \"beforeLayout\",\n value: function beforeLayout() {\n _get(_getPrototypeOf(TimeScale.prototype), \"beforeLayout\", this).call(this);\n\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var options = this.options;\n var adapter = this._adapter;\n var unit = options.time.unit || 'day';\n\n var _this$getUserBounds5 = this.getUserBounds(),\n min = _this$getUserBounds5.min,\n max = _this$getUserBounds5.max,\n minDefined = _this$getUserBounds5.minDefined,\n maxDefined = _this$getUserBounds5.maxDefined;\n\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n }, {\n key: \"_getLabelBounds\",\n value: function _getLabelBounds() {\n var arr = this.getLabelTimestamps();\n var min = Number.POSITIVE_INFINITY;\n var max = Number.NEGATIVE_INFINITY;\n\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n\n return {\n min: min,\n max: max\n };\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var options = this.options;\n var timeOpts = options.time;\n var tickOpts = options.ticks;\n var timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n\n var min = this.min;\n var max = this.max;\n\n var ticks = _filterBetween(timestamps, min, max);\n\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n\n if (options.reverse) {\n ticks.reverse();\n }\n\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n }, {\n key: \"initOffsets\",\n value: function initOffsets(timestamps) {\n var start = 0;\n var end = 0;\n var first, last;\n\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n\n var limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start: start,\n end: end,\n factor: 1 / (start + 1 + end)\n };\n }\n }, {\n key: \"_generate\",\n value: function _generate() {\n var adapter = this._adapter;\n var min = this.min;\n var max = this.max;\n var options = this.options;\n var timeOpts = options.time;\n var minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n var stepSize = valueOrDefault(timeOpts.stepSize, 1);\n var weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n var hasWeekday = isNumber(weekday) || weekday === true;\n var ticks = {};\n var first = min;\n var time, count;\n\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n\n var timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n\n return Object.keys(ticks).sort(function (a, b) {\n return a - b;\n }).map(function (x) {\n return +x;\n });\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n var adapter = this._adapter;\n var timeOpts = this.options.time;\n\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n }, {\n key: \"_tickFormatFunction\",\n value: function _tickFormatFunction(time, index, ticks, format) {\n var options = this.options;\n var formats = options.time.displayFormats;\n var unit = this._unit;\n var majorUnit = this._majorUnit;\n var minorFormat = unit && formats[unit];\n var majorFormat = majorUnit && formats[majorUnit];\n var tick = ticks[index];\n var major = majorUnit && majorFormat && tick && tick.major;\n\n var label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n\n var formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var i, ilen, tick;\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n }, {\n key: \"getDecimalForValue\",\n value: function getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n var offsets = this._offsets;\n var pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var offsets = this._offsets;\n var pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n }, {\n key: \"_getLabelSize\",\n value: function _getLabelSize(label) {\n var ticksOpts = this.options.ticks;\n var tickLabelWidth = this.ctx.measureText(label).width;\n var angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n var cosRotation = Math.cos(angle);\n var sinRotation = Math.sin(angle);\n\n var tickFontSize = this._resolveTickFontOptions(0).size;\n\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n }, {\n key: \"_getLabelCapacity\",\n value: function _getLabelCapacity(exampleTime) {\n var timeOpts = this.options.time;\n var displayFormats = timeOpts.displayFormats;\n var format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n\n var exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n\n var size = this._getLabelSize(exampleLabel);\n\n var capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n }, {\n key: \"getDataTimestamps\",\n value: function getDataTimestamps() {\n var timestamps = this._cache.data || [];\n var i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var metas = this.getMatchingVisibleMetas();\n\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n\n return this._cache.data = this.normalize(timestamps);\n }\n }, {\n key: \"getLabelTimestamps\",\n value: function getLabelTimestamps() {\n var timestamps = this._cache.labels || [];\n var i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var labels = this.getLabels();\n\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(_parse(this, labels[i]));\n }\n\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n }, {\n key: \"normalize\",\n value: function normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n }]);\n\n return TimeScale;\n}(Scale);\n\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n var lo = 0;\n var hi = table.length - 1;\n var prevSource, nextSource, prevTarget, nextTarget;\n\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n var _lookupByKey2 = _lookupByKey(table, 'pos', val);\n\n lo = _lookupByKey2.lo;\n hi = _lookupByKey2.hi;\n }\n\n var _table$lo = table[lo];\n prevSource = _table$lo.pos;\n prevTarget = _table$lo.time;\n var _table$hi = table[hi];\n nextSource = _table$hi.pos;\n nextTarget = _table$hi.time;\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n var _lookupByKey3 = _lookupByKey(table, 'time', val);\n\n lo = _lookupByKey3.lo;\n hi = _lookupByKey3.hi;\n }\n\n var _table$lo2 = table[lo];\n prevSource = _table$lo2.time;\n prevTarget = _table$lo2.pos;\n var _table$hi2 = table[hi];\n nextSource = _table$hi2.time;\n nextTarget = _table$hi2.pos;\n }\n\n var span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\n\nvar TimeSeriesScale = /*#__PURE__*/function (_TimeScale) {\n _inherits(TimeSeriesScale, _TimeScale);\n\n var _super25 = _createSuper(TimeSeriesScale);\n\n function TimeSeriesScale(props) {\n var _this42;\n\n _classCallCheck(this, TimeSeriesScale);\n\n _this42 = _super25.call(this, props);\n _this42._table = [];\n _this42._minPos = undefined;\n _this42._tableRange = undefined;\n return _this42;\n }\n\n _createClass(TimeSeriesScale, [{\n key: \"initOffsets\",\n value: function initOffsets() {\n var timestamps = this._getTimestampsForTable();\n\n var table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n\n _get(_getPrototypeOf(TimeSeriesScale.prototype), \"initOffsets\", this).call(this, timestamps);\n }\n }, {\n key: \"buildLookupTable\",\n value: function buildLookupTable(timestamps) {\n var min = this.min,\n max = this.max;\n var items = [];\n var table = [];\n var i, ilen, prev, curr, next;\n\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n\n if (items.length < 2) {\n return [{\n time: min,\n pos: 0\n }, {\n time: max,\n pos: 1\n }];\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n\n return table;\n }\n }, {\n key: \"_getTimestampsForTable\",\n value: function _getTimestampsForTable() {\n var timestamps = this._cache.all || [];\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var data = this.getDataTimestamps();\n var label = this.getLabelTimestamps();\n\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n }, {\n key: \"getDecimalForValue\",\n value: function getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var offsets = this._offsets;\n var decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n }]);\n\n return TimeSeriesScale;\n}(TimeScale);\n\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\nvar scales = /*#__PURE__*/Object.freeze({\n __proto__: null,\n CategoryScale: CategoryScale,\n LinearScale: LinearScale,\n LogarithmicScale: LogarithmicScale,\n RadialLinearScale: RadialLinearScale,\n TimeScale: TimeScale,\n TimeSeriesScale: TimeSeriesScale\n});\nvar registerables = [controllers, elements, plugins, scales];\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, plugin_filler as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\nStimulus 3.0.1\nCopyright © 2021 Basecamp, LLC\n */\nvar EventListener = /*#__PURE__*/function () {\n function EventListener(eventTarget, eventName, eventOptions) {\n _classCallCheck(this, EventListener);\n\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n\n _createClass(EventListener, [{\n key: \"connect\",\n value: function connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n }, {\n key: \"bindingConnected\",\n value: function bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n }, {\n key: \"bindingDisconnected\",\n value: function bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(event) {\n var extendedEvent = extendEvent(event);\n\n var _iterator = _createForOfIteratorHelper(this.bindings),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var binding = _step.value;\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"bindings\",\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n }]);\n\n return EventListener;\n}();\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var _stopImmediatePropagation = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n\n _stopImmediatePropagation.call(this);\n }\n });\n }\n}\n\nvar Dispatcher = /*#__PURE__*/function () {\n function Dispatcher(application) {\n _classCallCheck(this, Dispatcher);\n\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n _createClass(Dispatcher, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n }\n }, {\n key: \"eventListeners\",\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n }\n }, {\n key: \"bindingConnected\",\n value: function bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n }, {\n key: \"bindingDisconnected\",\n value: function bindingDisconnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.application.handleError(error, \"Error \".concat(message), detail);\n }\n }, {\n key: \"fetchEventListenerForBinding\",\n value: function fetchEventListenerForBinding(binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n }, {\n key: \"fetchEventListener\",\n value: function fetchEventListener(eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n\n return eventListener;\n }\n }, {\n key: \"createEventListener\",\n value: function createEventListener(eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n }\n }, {\n key: \"fetchEventListenerMapForEventTarget\",\n value: function fetchEventListenerMapForEventTarget(eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n }\n }, {\n key: \"cacheKey\",\n value: function cacheKey(eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\".concat(eventOptions[key] ? \"\" : \"!\").concat(key));\n });\n return parts.join(\":\");\n }\n }]);\n\n return Dispatcher;\n}();\n\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\n\nfunction parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n return Object.assign(options, _defineProperty({}, token.replace(/^!/, \"\"), !/^!/.test(token)));\n }, {});\n}\n\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) {\n return char.toUpperCase();\n });\n}\n\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\".concat(char.toLowerCase());\n });\n}\n\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nvar Action = /*#__PURE__*/function () {\n function Action(element, index, descriptor) {\n _classCallCheck(this, Action);\n\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n _createClass(Action, [{\n key: \"toString\",\n value: function toString() {\n var eventNameSuffix = this.eventTargetName ? \"@\".concat(this.eventTargetName) : \"\";\n return \"\".concat(this.eventName).concat(eventNameSuffix, \"->\").concat(this.identifier, \"#\").concat(this.methodName);\n }\n }, {\n key: \"params\",\n get: function get() {\n if (this.eventTarget instanceof Element) {\n return this.getParamsFromEventTargetAttributes(this.eventTarget);\n } else {\n return {};\n }\n }\n }, {\n key: \"getParamsFromEventTargetAttributes\",\n value: function getParamsFromEventTargetAttributes(eventTarget) {\n var params = {};\n var pattern = new RegExp(\"^data-\".concat(this.identifier, \"-(.+)-param$\"));\n var attributes = Array.from(eventTarget.attributes);\n attributes.forEach(function (_ref) {\n var name = _ref.name,\n value = _ref.value;\n var match = name.match(pattern);\n var key = match && match[1];\n\n if (key) {\n Object.assign(params, _defineProperty({}, camelize(key), typecast(value)));\n }\n });\n return params;\n }\n }, {\n key: \"eventTargetName\",\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n }\n }], [{\n key: \"forToken\",\n value: function forToken(token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n }\n }]);\n\n return Action;\n}();\n\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"details\": function details(e) {\n return \"toggle\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"input\";\n }\n};\n\nfunction getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}\n\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n } catch (o_O) {\n return value;\n }\n}\n\nvar Binding = /*#__PURE__*/function () {\n function Binding(context, action) {\n _classCallCheck(this, Binding);\n\n this.context = context;\n this.action = action;\n }\n\n _createClass(Binding, [{\n key: \"index\",\n get: function get() {\n return this.action.index;\n }\n }, {\n key: \"eventTarget\",\n get: function get() {\n return this.action.eventTarget;\n }\n }, {\n key: \"eventOptions\",\n get: function get() {\n return this.action.eventOptions;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.context.identifier;\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n }\n }, {\n key: \"eventName\",\n get: function get() {\n return this.action.eventName;\n }\n }, {\n key: \"method\",\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\".concat(this.action, \"\\\" references undefined method \\\"\").concat(this.methodName, \"\\\"\"));\n }\n }, {\n key: \"invokeWithEvent\",\n value: function invokeWithEvent(event) {\n var target = event.target,\n currentTarget = event.currentTarget;\n\n try {\n var params = this.action.params;\n var actionEvent = Object.assign(event, {\n params: params\n });\n this.method.call(this.controller, actionEvent);\n this.context.logDebugActivity(this.methodName, {\n event: event,\n target: target,\n currentTarget: currentTarget,\n action: this.methodName\n });\n } catch (error) {\n var identifier = this.identifier,\n controller = this.controller,\n element = this.element,\n index = this.index;\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\".concat(this.action, \"\\\"\"), detail);\n }\n }\n }, {\n key: \"willBeInvokedByEvent\",\n value: function willBeInvokedByEvent(event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n }\n }, {\n key: \"controller\",\n get: function get() {\n return this.context.controller;\n }\n }, {\n key: \"methodName\",\n get: function get() {\n return this.action.methodName;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }]);\n\n return Binding;\n}();\n\nvar ElementObserver = /*#__PURE__*/function () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n _classCallCheck(this, ElementObserver);\n\n this.mutationObserverInit = {\n attributes: true,\n childList: true,\n subtree: true\n };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n _createClass(ElementObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n\n callback();\n\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _Array$from = Array.from(this.elements); _i < _Array$from.length; _i++) {\n var element = _Array$from[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _i2 = 0, _Array$from2 = Array.from(matches); _i2 < _Array$from2.length; _i2++) {\n var _element = _Array$from2[_i2];\n this.addElement(_element);\n }\n }\n }\n }, {\n key: \"processMutations\",\n value: function processMutations(mutations) {\n if (this.started) {\n var _iterator2 = _createForOfIteratorHelper(mutations),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var mutation = _step2.value;\n this.processMutation(mutation);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n }, {\n key: \"processMutation\",\n value: function processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n }, {\n key: \"processAttributeChange\",\n value: function processAttributeChange(node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n }\n }, {\n key: \"processRemovedNodes\",\n value: function processRemovedNodes(nodes) {\n for (var _i3 = 0, _Array$from3 = Array.from(nodes); _i3 < _Array$from3.length; _i3++) {\n var node = _Array$from3[_i3];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n }, {\n key: \"processAddedNodes\",\n value: function processAddedNodes(nodes) {\n for (var _i4 = 0, _Array$from4 = Array.from(nodes); _i4 < _Array$from4.length; _i4++) {\n var node = _Array$from4[_i4];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n }, {\n key: \"matchElement\",\n value: function matchElement(element) {\n return this.delegate.matchElement(element);\n }\n }, {\n key: \"matchElementsInTree\",\n value: function matchElementsInTree() {\n var tree = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.element;\n return this.delegate.matchElementsInTree(tree);\n }\n }, {\n key: \"processTree\",\n value: function processTree(tree, processor) {\n var _iterator3 = _createForOfIteratorHelper(this.matchElementsInTree(tree)),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var element = _step3.value;\n processor.call(this, element);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n }, {\n key: \"elementFromNode\",\n value: function elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n }, {\n key: \"elementIsActive\",\n value: function elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }\n }, {\n key: \"addElement\",\n value: function addElement(element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n }\n }, {\n key: \"removeElement\",\n value: function removeElement(element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n }\n }]);\n\n return ElementObserver;\n}();\n\nvar AttributeObserver = /*#__PURE__*/function () {\n function AttributeObserver(element, attributeName, delegate) {\n _classCallCheck(this, AttributeObserver);\n\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n _createClass(AttributeObserver, [{\n key: \"element\",\n get: function get() {\n return this.elementObserver.element;\n }\n }, {\n key: \"selector\",\n get: function get() {\n return \"[\".concat(this.attributeName, \"]\");\n }\n }, {\n key: \"start\",\n value: function start() {\n this.elementObserver.start();\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n this.elementObserver.pause(callback);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.elementObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.elementObserver.refresh();\n }\n }, {\n key: \"started\",\n get: function get() {\n return this.elementObserver.started;\n }\n }, {\n key: \"matchElement\",\n value: function matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n }, {\n key: \"matchElementsInTree\",\n value: function matchElementsInTree(tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n }, {\n key: \"elementMatched\",\n value: function elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n }, {\n key: \"elementUnmatched\",\n value: function elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n }, {\n key: \"elementAttributeChanged\",\n value: function elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n }]);\n\n return AttributeObserver;\n}();\n\nvar StringMapObserver = /*#__PURE__*/function () {\n function StringMapObserver(element, delegate) {\n var _this2 = this;\n\n _classCallCheck(this, StringMapObserver);\n\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this2.processMutations(mutations);\n });\n }\n\n _createClass(StringMapObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n attributeOldValue: true\n });\n this.refresh();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.started) {\n var _iterator4 = _createForOfIteratorHelper(this.knownAttributeNames),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var attributeName = _step4.value;\n this.refreshAttribute(attributeName, null);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n }\n }, {\n key: \"processMutations\",\n value: function processMutations(mutations) {\n if (this.started) {\n var _iterator5 = _createForOfIteratorHelper(mutations),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var mutation = _step5.value;\n this.processMutation(mutation);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n }\n }, {\n key: \"processMutation\",\n value: function processMutation(mutation) {\n var attributeName = mutation.attributeName;\n\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n }, {\n key: \"refreshAttribute\",\n value: function refreshAttribute(attributeName, oldValue) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n\n var value = this.element.getAttribute(attributeName);\n\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n\n if (value == null) {\n var _oldValue = this.stringMap.get(attributeName);\n\n this.stringMap.delete(attributeName);\n if (_oldValue) this.stringMapKeyRemoved(key, attributeName, _oldValue);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n }, {\n key: \"stringMapKeyAdded\",\n value: function stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n }, {\n key: \"stringMapValueChanged\",\n value: function stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n }, {\n key: \"stringMapKeyRemoved\",\n value: function stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n }, {\n key: \"knownAttributeNames\",\n get: function get() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n }, {\n key: \"currentAttributeNames\",\n get: function get() {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n }\n }, {\n key: \"recordedAttributeNames\",\n get: function get() {\n return Array.from(this.stringMap.keys());\n }\n }]);\n\n return StringMapObserver;\n}();\n\nfunction _add(map, key, value) {\n fetch(map, key).add(value);\n}\n\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\n\nfunction fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\n\nfunction prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nvar Multimap = /*#__PURE__*/function () {\n function Multimap() {\n _classCallCheck(this, Multimap);\n\n this.valuesByKey = new Map();\n }\n\n _createClass(Multimap, [{\n key: \"keys\",\n get: function get() {\n return Array.from(this.valuesByKey.keys());\n }\n }, {\n key: \"values\",\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n }\n }, {\n key: \"size\",\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n }\n }, {\n key: \"add\",\n value: function add(key, value) {\n _add(this.valuesByKey, key, value);\n }\n }, {\n key: \"delete\",\n value: function _delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n }, {\n key: \"has\",\n value: function has(key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n }, {\n key: \"hasKey\",\n value: function hasKey(key) {\n return this.valuesByKey.has(key);\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n }\n }, {\n key: \"getValuesForKey\",\n value: function getValuesForKey(key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n }, {\n key: \"getKeysForValue\",\n value: function getKeysForValue(value) {\n return Array.from(this.valuesByKey).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n values = _ref3[1];\n\n return values.has(value);\n }).map(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n key = _ref5[0],\n values = _ref5[1];\n\n return key;\n });\n }\n }]);\n\n return Multimap;\n}();\n\nvar IndexedMultimap = /*#__PURE__*/function (_Multimap) {\n _inherits(IndexedMultimap, _Multimap);\n\n var _super = _createSuper(IndexedMultimap);\n\n function IndexedMultimap() {\n var _this3;\n\n _classCallCheck(this, IndexedMultimap);\n\n _this3 = _super.call(this);\n _this3.keysByValue = new Map();\n return _this3;\n }\n\n _createClass(IndexedMultimap, [{\n key: \"values\",\n get: function get() {\n return Array.from(this.keysByValue.keys());\n }\n }, {\n key: \"add\",\n value: function add(key, value) {\n _get(_getPrototypeOf(IndexedMultimap.prototype), \"add\", this).call(this, key, value);\n\n _add(this.keysByValue, value, key);\n }\n }, {\n key: \"delete\",\n value: function _delete(key, value) {\n _get(_getPrototypeOf(IndexedMultimap.prototype), \"delete\", this).call(this, key, value);\n\n del(this.keysByValue, value, key);\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(value) {\n return this.keysByValue.has(value);\n }\n }, {\n key: \"getKeysForValue\",\n value: function getKeysForValue(value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n }]);\n\n return IndexedMultimap;\n}(Multimap);\n\nvar TokenListObserver = /*#__PURE__*/function () {\n function TokenListObserver(element, attributeName, delegate) {\n _classCallCheck(this, TokenListObserver);\n\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n _createClass(TokenListObserver, [{\n key: \"started\",\n get: function get() {\n return this.attributeObserver.started;\n }\n }, {\n key: \"start\",\n value: function start() {\n this.attributeObserver.start();\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n this.attributeObserver.pause(callback);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.attributeObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.attributeObserver.refresh();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.attributeObserver.element;\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return this.attributeObserver.attributeName;\n }\n }, {\n key: \"elementMatchedAttribute\",\n value: function elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n }, {\n key: \"elementAttributeValueChanged\",\n value: function elementAttributeValueChanged(element) {\n var _this$refreshTokensFo = this.refreshTokensForElement(element),\n _this$refreshTokensFo2 = _slicedToArray(_this$refreshTokensFo, 2),\n unmatchedTokens = _this$refreshTokensFo2[0],\n matchedTokens = _this$refreshTokensFo2[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n }, {\n key: \"elementUnmatchedAttribute\",\n value: function elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n }, {\n key: \"tokensMatched\",\n value: function tokensMatched(tokens) {\n var _this4 = this;\n\n tokens.forEach(function (token) {\n return _this4.tokenMatched(token);\n });\n }\n }, {\n key: \"tokensUnmatched\",\n value: function tokensUnmatched(tokens) {\n var _this5 = this;\n\n tokens.forEach(function (token) {\n return _this5.tokenUnmatched(token);\n });\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n }, {\n key: \"refreshTokensForElement\",\n value: function refreshTokensForElement(element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n previousToken = _ref7[0],\n currentToken = _ref7[1];\n\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n }\n }, {\n key: \"readTokensForElement\",\n value: function readTokensForElement(element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n }]);\n\n return TokenListObserver;\n}();\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n\nvar ValueListObserver = /*#__PURE__*/function () {\n function ValueListObserver(element, attributeName, delegate) {\n _classCallCheck(this, ValueListObserver);\n\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n _createClass(ValueListObserver, [{\n key: \"started\",\n get: function get() {\n return this.tokenListObserver.started;\n }\n }, {\n key: \"start\",\n value: function start() {\n this.tokenListObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.tokenListObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.tokenListObserver.refresh();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.tokenListObserver.element;\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return this.tokenListObserver.attributeName;\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(token) {\n var element = token.element;\n\n var _this$fetchParseResul = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul.value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(token) {\n var element = token.element;\n\n var _this$fetchParseResul2 = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul2.value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n }, {\n key: \"fetchParseResultForToken\",\n value: function fetchParseResultForToken(token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n }\n }, {\n key: \"fetchValuesByTokenForElement\",\n value: function fetchValuesByTokenForElement(element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n }\n }, {\n key: \"parseToken\",\n value: function parseToken(token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n }\n }]);\n\n return ValueListObserver;\n}();\n\nvar BindingObserver = /*#__PURE__*/function () {\n function BindingObserver(context, delegate) {\n _classCallCheck(this, BindingObserver);\n\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n _createClass(BindingObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.context.identifier;\n }\n }, {\n key: \"actionAttribute\",\n get: function get() {\n return this.schema.actionAttribute;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.context.schema;\n }\n }, {\n key: \"bindings\",\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n }\n }, {\n key: \"connectAction\",\n value: function connectAction(action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n }, {\n key: \"disconnectAction\",\n value: function disconnectAction(action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n }, {\n key: \"disconnectAllActions\",\n value: function disconnectAllActions() {\n var _this6 = this;\n\n this.bindings.forEach(function (binding) {\n return _this6.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }\n }, {\n key: \"parseValueForToken\",\n value: function parseValueForToken(token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n }, {\n key: \"elementMatchedValue\",\n value: function elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n }, {\n key: \"elementUnmatchedValue\",\n value: function elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n }]);\n\n return BindingObserver;\n}();\n\nvar ValueObserver = /*#__PURE__*/function () {\n function ValueObserver(context, receiver) {\n _classCallCheck(this, ValueObserver);\n\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n\n _createClass(ValueObserver, [{\n key: \"start\",\n value: function start() {\n this.stringMapObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.stringMapObserver.stop();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"controller\",\n get: function get() {\n return this.context.controller;\n }\n }, {\n key: \"getStringMapKeyForAttribute\",\n value: function getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n }, {\n key: \"stringMapKeyAdded\",\n value: function stringMapKeyAdded(key, attributeName) {\n var descriptor = this.valueDescriptorMap[attributeName];\n\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n }, {\n key: \"stringMapValueChanged\",\n value: function stringMapValueChanged(value, name, oldValue) {\n var descriptor = this.valueDescriptorNameMap[name];\n if (value === null) return;\n\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n\n this.invokeChangedCallback(name, value, oldValue);\n }\n }, {\n key: \"stringMapKeyRemoved\",\n value: function stringMapKeyRemoved(key, attributeName, oldValue) {\n var descriptor = this.valueDescriptorNameMap[key];\n\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n } else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n }, {\n key: \"invokeChangedCallbacksForDefaultValues\",\n value: function invokeChangedCallbacksForDefaultValues() {\n var _iterator6 = _createForOfIteratorHelper(this.valueDescriptors),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _ref9 = _step6.value;\n var key = _ref9.key;\n var name = _ref9.name;\n var defaultValue = _ref9.defaultValue;\n var writer = _ref9.writer;\n\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n }, {\n key: \"invokeChangedCallback\",\n value: function invokeChangedCallback(name, rawValue, rawOldValue) {\n var changedMethodName = \"\".concat(name, \"Changed\");\n var changedMethod = this.receiver[changedMethodName];\n\n if (typeof changedMethod == \"function\") {\n var descriptor = this.valueDescriptorNameMap[name];\n var value = descriptor.reader(rawValue);\n var oldValue = rawOldValue;\n\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n\n changedMethod.call(this.receiver, value, oldValue);\n }\n }\n }, {\n key: \"valueDescriptors\",\n get: function get() {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n }\n }, {\n key: \"valueDescriptorNameMap\",\n get: function get() {\n var _this7 = this;\n\n var descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach(function (key) {\n var descriptor = _this7.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(attributeName) {\n var descriptor = this.valueDescriptorNameMap[attributeName];\n var hasMethodName = \"has\".concat(capitalize(descriptor.name));\n return this.receiver[hasMethodName];\n }\n }]);\n\n return ValueObserver;\n}();\n\nvar TargetObserver = /*#__PURE__*/function () {\n function TargetObserver(context, delegate) {\n _classCallCheck(this, TargetObserver);\n\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n\n _createClass(TargetObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(_ref10) {\n var element = _ref10.element,\n name = _ref10.content;\n\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(_ref11) {\n var element = _ref11.element,\n name = _ref11.content;\n this.disconnectTarget(element, name);\n }\n }, {\n key: \"connectTarget\",\n value: function connectTarget(element, name) {\n var _this8 = this;\n\n var _a;\n\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(function () {\n return _this8.delegate.targetConnected(element, name);\n });\n }\n }\n }, {\n key: \"disconnectTarget\",\n value: function disconnectTarget(element, name) {\n var _this9 = this;\n\n var _a;\n\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(function () {\n return _this9.delegate.targetDisconnected(element, name);\n });\n }\n }\n }, {\n key: \"disconnectAllTargets\",\n value: function disconnectAllTargets() {\n var _iterator7 = _createForOfIteratorHelper(this.targetsByName.keys),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var name = _step7.value;\n\n var _iterator8 = _createForOfIteratorHelper(this.targetsByName.getValuesForKey(name)),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var element = _step8.value;\n this.disconnectTarget(element, name);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return \"data-\".concat(this.context.identifier, \"-target\");\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }]);\n\n return TargetObserver;\n}();\n\nvar Context = /*#__PURE__*/function () {\n function Context(module, scope) {\n var _this10 = this;\n\n _classCallCheck(this, Context);\n\n this.logDebugActivity = function (functionName) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var identifier = _this10.identifier,\n controller = _this10.controller,\n element = _this10.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n\n _this10.application.logDebugActivity(_this10.identifier, functionName, detail);\n };\n\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n _createClass(Context, [{\n key: \"connect\",\n value: function connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n }, {\n key: \"application\",\n get: function get() {\n return this.module.application;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.module.identifier;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.application.schema;\n }\n }, {\n key: \"dispatcher\",\n get: function get() {\n return this.application.dispatcher;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"parentElement\",\n get: function get() {\n return this.element.parentElement;\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var identifier = this.identifier,\n controller = this.controller,\n element = this.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \".concat(message), detail);\n }\n }, {\n key: \"targetConnected\",\n value: function targetConnected(element, name) {\n this.invokeControllerMethod(\"\".concat(name, \"TargetConnected\"), element);\n }\n }, {\n key: \"targetDisconnected\",\n value: function targetDisconnected(element, name) {\n this.invokeControllerMethod(\"\".concat(name, \"TargetDisconnected\"), element);\n }\n }, {\n key: \"invokeControllerMethod\",\n value: function invokeControllerMethod(methodName) {\n var controller = this.controller;\n\n if (typeof controller[methodName] == \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n controller[methodName].apply(controller, args);\n }\n }\n }]);\n\n return Context;\n}();\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\n\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, _toConsumableArray(getOwnStaticObjectPairs(constructor, propertyName)));\n return pairs;\n }, []);\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors.reverse();\n}\n\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}\n\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\n\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\n\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n\n return blessedProperties;\n }, {});\n}\n\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n\n if (descriptor) {\n Object.assign(shadowProperties, _defineProperty({}, key, descriptor));\n }\n\n return shadowProperties;\n }, {});\n}\n\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n\n return descriptor;\n }\n}\n\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return [].concat(_toConsumableArray(Object.getOwnPropertyNames(object)), _toConsumableArray(Object.getOwnPropertySymbols(object)));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, this instanceof extended ? this.constructor : void 0);\n }\n\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return /*#__PURE__*/function (_constructor) {\n _inherits(extended, _constructor);\n\n var _super2 = _createSuper(extended);\n\n function extended() {\n _classCallCheck(this, extended);\n\n return _super2.apply(this, arguments);\n }\n\n return extended;\n }(constructor);\n };\n }\n}();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}\n\nvar Module = /*#__PURE__*/function () {\n function Module(application, definition) {\n _classCallCheck(this, Module);\n\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n _createClass(Module, [{\n key: \"identifier\",\n get: function get() {\n return this.definition.identifier;\n }\n }, {\n key: \"controllerConstructor\",\n get: function get() {\n return this.definition.controllerConstructor;\n }\n }, {\n key: \"contexts\",\n get: function get() {\n return Array.from(this.connectedContexts);\n }\n }, {\n key: \"connectContextForScope\",\n value: function connectContextForScope(scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n }, {\n key: \"disconnectContextForScope\",\n value: function disconnectContextForScope(scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n }, {\n key: \"fetchContextForScope\",\n value: function fetchContextForScope(scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n }\n }]);\n\n return Module;\n}();\n\nvar ClassMap = /*#__PURE__*/function () {\n function ClassMap(scope) {\n _classCallCheck(this, ClassMap);\n\n this.scope = scope;\n }\n\n _createClass(ClassMap, [{\n key: \"has\",\n value: function has(name) {\n return this.data.has(this.getDataKey(name));\n }\n }, {\n key: \"get\",\n value: function get(name) {\n return this.getAll(name)[0];\n }\n }, {\n key: \"getAll\",\n value: function getAll(name) {\n var tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n }, {\n key: \"getAttributeName\",\n value: function getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n }, {\n key: \"getDataKey\",\n value: function getDataKey(name) {\n return \"\".concat(name, \"-class\");\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.scope.data;\n }\n }]);\n\n return ClassMap;\n}();\n\nvar DataMap = /*#__PURE__*/function () {\n function DataMap(scope) {\n _classCallCheck(this, DataMap);\n\n this.scope = scope;\n }\n\n _createClass(DataMap, [{\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n }, {\n key: \"has\",\n value: function has(key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n if (this.has(key)) {\n var name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: \"getAttributeNameForKey\",\n value: function getAttributeNameForKey(key) {\n return \"data-\".concat(this.identifier, \"-\").concat(dasherize(key));\n }\n }]);\n\n return DataMap;\n}();\n\nvar Guide = /*#__PURE__*/function () {\n function Guide(logger) {\n _classCallCheck(this, Guide);\n\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n\n _createClass(Guide, [{\n key: \"warn\",\n value: function warn(object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n }]);\n\n return Guide;\n}();\n\nfunction attributeValueContainsToken(attributeName, token) {\n return \"[\".concat(attributeName, \"~=\\\"\").concat(token, \"\\\"]\");\n}\n\nvar TargetSet = /*#__PURE__*/function () {\n function TargetSet(scope) {\n _classCallCheck(this, TargetSet);\n\n this.scope = scope;\n }\n\n _createClass(TargetSet, [{\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.scope.schema;\n }\n }, {\n key: \"has\",\n value: function has(targetName) {\n return this.find(targetName) != null;\n }\n }, {\n key: \"find\",\n value: function find() {\n var _this11 = this;\n\n for (var _len2 = arguments.length, targetNames = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n targetNames[_key2] = arguments[_key2];\n }\n\n return targetNames.reduce(function (target, targetName) {\n return target || _this11.findTarget(targetName) || _this11.findLegacyTarget(targetName);\n }, undefined);\n }\n }, {\n key: \"findAll\",\n value: function findAll() {\n var _this12 = this;\n\n for (var _len3 = arguments.length, targetNames = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n targetNames[_key3] = arguments[_key3];\n }\n\n return targetNames.reduce(function (targets, targetName) {\n return [].concat(_toConsumableArray(targets), _toConsumableArray(_this12.findAllTargets(targetName)), _toConsumableArray(_this12.findAllLegacyTargets(targetName)));\n }, []);\n }\n }, {\n key: \"findTarget\",\n value: function findTarget(targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n }, {\n key: \"findAllTargets\",\n value: function findAllTargets(targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n }, {\n key: \"getSelectorForTargetName\",\n value: function getSelectorForTargetName(targetName) {\n var attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n }, {\n key: \"findLegacyTarget\",\n value: function findLegacyTarget(targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n }, {\n key: \"findAllLegacyTargets\",\n value: function findAllLegacyTargets(targetName) {\n var _this13 = this;\n\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this13.deprecate(element, targetName);\n });\n }\n }, {\n key: \"getLegacySelectorForTargetName\",\n value: function getLegacySelectorForTargetName(targetName) {\n var targetDescriptor = \"\".concat(this.identifier, \".\").concat(targetName);\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n }, {\n key: \"deprecate\",\n value: function deprecate(element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n var revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, \"target:\".concat(targetName), \"Please replace \".concat(attributeName, \"=\\\"\").concat(identifier, \".\").concat(targetName, \"\\\" with \").concat(revisedAttributeName, \"=\\\"\").concat(targetName, \"\\\". \") + \"The \".concat(attributeName, \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n\n return element;\n }\n }, {\n key: \"guide\",\n get: function get() {\n return this.scope.guide;\n }\n }]);\n\n return TargetSet;\n}();\n\nvar Scope = /*#__PURE__*/function () {\n function Scope(schema, element, identifier, logger) {\n var _this14 = this;\n\n _classCallCheck(this, Scope);\n\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n\n this.containsElement = function (element) {\n return element.closest(_this14.controllerSelector) === _this14.element;\n };\n\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n\n _createClass(Scope, [{\n key: \"findElement\",\n value: function findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n }, {\n key: \"findAllElements\",\n value: function findAllElements(selector) {\n return [].concat(_toConsumableArray(this.element.matches(selector) ? [this.element] : []), _toConsumableArray(this.queryElements(selector).filter(this.containsElement)));\n }\n }, {\n key: \"queryElements\",\n value: function queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n }, {\n key: \"controllerSelector\",\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n }]);\n\n return Scope;\n}();\n\nvar ScopeObserver = /*#__PURE__*/function () {\n function ScopeObserver(element, schema, delegate) {\n _classCallCheck(this, ScopeObserver);\n\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n _createClass(ScopeObserver, [{\n key: \"start\",\n value: function start() {\n this.valueListObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.valueListObserver.stop();\n }\n }, {\n key: \"controllerAttribute\",\n get: function get() {\n return this.schema.controllerAttribute;\n }\n }, {\n key: \"parseValueForToken\",\n value: function parseValueForToken(token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n }\n }, {\n key: \"elementMatchedValue\",\n value: function elementMatchedValue(element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n }\n }, {\n key: \"elementUnmatchedValue\",\n value: function elementUnmatchedValue(element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n }\n }, {\n key: \"fetchScopesByIdentifierForElement\",\n value: function fetchScopesByIdentifierForElement(element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n }\n }]);\n\n return ScopeObserver;\n}();\n\nvar Router = /*#__PURE__*/function () {\n function Router(application) {\n _classCallCheck(this, Router);\n\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n _createClass(Router, [{\n key: \"element\",\n get: function get() {\n return this.application.element;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.application.schema;\n }\n }, {\n key: \"logger\",\n get: function get() {\n return this.application.logger;\n }\n }, {\n key: \"controllerAttribute\",\n get: function get() {\n return this.schema.controllerAttribute;\n }\n }, {\n key: \"modules\",\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n }\n }, {\n key: \"contexts\",\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scopeObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scopeObserver.stop();\n }\n }, {\n key: \"loadDefinition\",\n value: function loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n }\n }, {\n key: \"unloadIdentifier\",\n value: function unloadIdentifier(identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n }\n }, {\n key: \"getContextForElementAndIdentifier\",\n value: function getContextForElementAndIdentifier(element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n }, {\n key: \"createScopeForElementAndIdentifier\",\n value: function createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n }, {\n key: \"scopeConnected\",\n value: function scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n }, {\n key: \"scopeDisconnected\",\n value: function scopeDisconnected(scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n }, {\n key: \"connectModule\",\n value: function connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n }\n }, {\n key: \"disconnectModule\",\n value: function disconnectModule(module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n }\n }]);\n\n return Router;\n}();\n\nvar defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: function targetAttributeForScope(identifier) {\n return \"data-\".concat(identifier, \"-target\");\n }\n};\n\nvar Application = /*#__PURE__*/function () {\n function Application() {\n var _this15 = this;\n\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.documentElement;\n var schema = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultSchema;\n\n _classCallCheck(this, Application);\n\n this.logger = console;\n this.debug = false;\n\n this.logDebugActivity = function (identifier, functionName) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (_this15.debug) {\n _this15.logFormattedMessage(identifier, functionName, detail);\n }\n };\n\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n _createClass(Application, [{\n key: \"start\",\n value: function () {\n var _start = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return domReady();\n\n case 2:\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function start() {\n return _start.apply(this, arguments);\n }\n\n return start;\n }()\n }, {\n key: \"stop\",\n value: function stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n }, {\n key: \"register\",\n value: function register(identifier, controllerConstructor) {\n if (controllerConstructor.shouldLoad) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n }\n }\n }, {\n key: \"load\",\n value: function load(head) {\n var _this16 = this;\n\n for (var _len4 = arguments.length, rest = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n rest[_key4 - 1] = arguments[_key4];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this16.router.loadDefinition(definition);\n });\n }\n }, {\n key: \"unload\",\n value: function unload(head) {\n var _this17 = this;\n\n for (var _len5 = arguments.length, rest = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n rest[_key5 - 1] = arguments[_key5];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this17.router.unloadIdentifier(identifier);\n });\n }\n }, {\n key: \"controllers\",\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n }\n }, {\n key: \"getControllerForElementAndIdentifier\",\n value: function getControllerForElementAndIdentifier(element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message, detail) {\n var _a;\n\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n }, {\n key: \"logFormattedMessage\",\n value: function logFormattedMessage(identifier, functionName) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n detail = Object.assign({\n application: this\n }, detail);\n this.logger.groupCollapsed(\"\".concat(identifier, \" #\").concat(functionName));\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n }], [{\n key: \"start\",\n value: function start(element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n }\n }]);\n\n return Application;\n}();\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", function () {\n return resolve();\n });\n } else {\n resolve();\n }\n });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\n\nfunction propertiesForClassDefinition(key) {\n var _ref12;\n\n return _ref12 = {}, _defineProperty(_ref12, \"\".concat(key, \"Class\"), {\n get: function get() {\n var classes = this.classes;\n\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\".concat(attribute, \"\\\"\"));\n }\n }\n }), _defineProperty(_ref12, \"\".concat(key, \"Classes\"), {\n get: function get() {\n return this.classes.getAll(key);\n }\n }), _defineProperty(_ref12, \"has\".concat(capitalize(key), \"Class\"), {\n get: function get() {\n return this.classes.has(key);\n }\n }), _ref12;\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\n\nfunction propertiesForTargetDefinition(name) {\n var _ref13;\n\n return _ref13 = {}, _defineProperty(_ref13, \"\".concat(name, \"Target\"), {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\".concat(name, \"\\\" for \\\"\").concat(this.identifier, \"\\\" controller\"));\n }\n }\n }), _defineProperty(_ref13, \"\".concat(name, \"Targets\"), {\n get: function get() {\n return this.targets.findAll(name);\n }\n }), _defineProperty(_ref13, \"has\".concat(capitalize(name), \"Target\"), {\n get: function get() {\n return this.targets.has(name);\n }\n }), _ref13;\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function get() {\n var _this18 = this;\n\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n\n var attributeName = _this18.data.getAttributeNameForKey(valueDescriptor.key);\n\n return Object.assign(result, _defineProperty({}, attributeName, valueDescriptor));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n\nfunction propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _ref14;\n\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var key = definition.key,\n name = definition.name,\n read = definition.reader,\n write = definition.writer;\n return _ref14 = {}, _defineProperty(_ref14, name, {\n get: function get() {\n var value = this.data.get(key);\n\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function set(value) {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }), _defineProperty(_ref14, \"has\".concat(capitalize(name)), {\n get: function get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n }\n }), _ref14;\n}\n\nfunction parseValueDefinitionPair(_ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n token = _ref16[0],\n typeDefinition = _ref16[1];\n\n return valueDescriptorForTokenAndTypeDefinition(token, typeDefinition);\n}\n\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n\n case Boolean:\n return \"boolean\";\n\n case Number:\n return \"number\";\n\n case Object:\n return \"object\";\n\n case String:\n return \"string\";\n }\n}\n\nfunction parseValueTypeDefault(defaultValue) {\n switch (_typeof(defaultValue)) {\n case \"boolean\":\n return \"boolean\";\n\n case \"number\":\n return \"number\";\n\n case \"string\":\n return \"string\";\n }\n\n if (Array.isArray(defaultValue)) return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\") return \"object\";\n}\n\nfunction parseValueTypeObject(typeObject) {\n var typeFromObject = parseValueTypeConstant(typeObject.type);\n\n if (typeFromObject) {\n var defaultValueType = parseValueTypeDefault(typeObject.default);\n\n if (typeFromObject !== defaultValueType) {\n throw new Error(\"Type \\\"\".concat(typeFromObject, \"\\\" must match the type of the default value. Given default value: \\\"\").concat(typeObject.default, \"\\\" as \\\"\").concat(defaultValueType, \"\\\"\"));\n }\n\n return typeFromObject;\n }\n}\n\nfunction parseValueTypeDefinition(typeDefinition) {\n var typeFromObject = parseValueTypeObject(typeDefinition);\n var typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n var typeFromConstant = parseValueTypeConstant(typeDefinition);\n var type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type) return type;\n throw new Error(\"Unknown value type \\\"\".concat(typeDefinition, \"\\\"\"));\n}\n\nfunction defaultValueForDefinition(typeDefinition) {\n var constant = parseValueTypeConstant(typeDefinition);\n if (constant) return defaultValuesByType[constant];\n var defaultValue = typeDefinition.default;\n if (defaultValue !== undefined) return defaultValue;\n return typeDefinition;\n}\n\nfunction valueDescriptorForTokenAndTypeDefinition(token, typeDefinition) {\n var key = \"\".concat(dasherize(token), \"-value\");\n var type = parseValueTypeDefinition(typeDefinition);\n return {\n type: type,\n key: key,\n name: camelize(key),\n\n get defaultValue() {\n return defaultValueForDefinition(typeDefinition);\n },\n\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(typeDefinition) !== undefined;\n },\n\n reader: readers[type],\n writer: writers[type] || writers.default\n };\n}\n\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n\n boolean: false,\n number: 0,\n\n get object() {\n return {};\n },\n\n string: \"\"\n};\nvar readers = {\n array: function array(value) {\n var array = JSON.parse(value);\n\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n\n return array;\n },\n boolean: function boolean(value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function number(value) {\n return Number(value);\n },\n object: function object(value) {\n var object = JSON.parse(value);\n\n if (object === null || _typeof(object) != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n\n return object;\n },\n string: function string(value) {\n return value;\n }\n};\nvar writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON\n};\n\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\n\nfunction writeString(value) {\n return \"\".concat(value);\n}\n\nvar Controller = /*#__PURE__*/function () {\n function Controller(context) {\n _classCallCheck(this, Controller);\n\n this.context = context;\n }\n\n _createClass(Controller, [{\n key: \"application\",\n get: function get() {\n return this.context.application;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"targets\",\n get: function get() {\n return this.scope.targets;\n }\n }, {\n key: \"classes\",\n get: function get() {\n return this.scope.classes;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.scope.data;\n }\n }, {\n key: \"initialize\",\n value: function initialize() {}\n }, {\n key: \"connect\",\n value: function connect() {}\n }, {\n key: \"disconnect\",\n value: function disconnect() {}\n }, {\n key: \"dispatch\",\n value: function dispatch(eventName) {\n var _ref17 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref17$target = _ref17.target,\n target = _ref17$target === void 0 ? this.element : _ref17$target,\n _ref17$detail = _ref17.detail,\n detail = _ref17$detail === void 0 ? {} : _ref17$detail,\n _ref17$prefix = _ref17.prefix,\n prefix = _ref17$prefix === void 0 ? this.identifier : _ref17$prefix,\n _ref17$bubbles = _ref17.bubbles,\n bubbles = _ref17$bubbles === void 0 ? true : _ref17$bubbles,\n _ref17$cancelable = _ref17.cancelable,\n cancelable = _ref17$cancelable === void 0 ? true : _ref17$cancelable;\n\n var type = prefix ? \"\".concat(prefix, \":\").concat(eventName) : eventName;\n var event = new CustomEvent(type, {\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n });\n target.dispatchEvent(event);\n return event;\n }\n }], [{\n key: \"shouldLoad\",\n get: function get() {\n return true;\n }\n }]);\n\n return Controller;\n}();\n\nController.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\nController.targets = [];\nController.values = {};\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, StringMapObserver, TokenListObserver, ValueListObserver, _add as add, defaultSchema, del, fetch, prune };","define(function () {\n \"use strict\";\n\n return Object.getPrototypeOf;\n});","define([\"./arr\"], function (arr) {\n \"use strict\"; // Support: IE 9 - 11+, Edge 18+, Android Browser 4.0 - 4.3 only, iOS 7 - 11 only, Safari 11 only,\n // Firefox <= 61 only\n // Provide fallback for browsers without Array#flat.\n\n return arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.push;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.toString;\n});","define([\"./hasOwn\"], function (hasOwn) {\n \"use strict\";\n\n return hasOwn.toString;\n});","define([\"../var/document\"], function (document) {\n \"use strict\";\n\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n return DOMEval;\n});","define([\"../../core\", \"../../selector\"], function (jQuery) {\n \"use strict\";\n\n return jQuery.expr.match.needsContext;\n});","define(function () {\n \"use strict\"; // rsingleTag matches a string consisting of a single HTML element with no attributes\n // and captures the element's name\n\n return /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n});","define([\"../core\", \"../var/indexOf\", \"../var/isFunction\", \"./var/rneedsContext\", \"../selector\"], function (jQuery, indexOf, isFunction, rneedsContext) {\n \"use strict\"; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n });\n});","define([\"../core\", \"../var/document\", \"../core/readyException\", \"../deferred\"], function (jQuery, document) {\n \"use strict\"; // The deferred used on DOM ready\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n }\n});","define([\"../core\", \"../core/camelCase\", \"../var/rnothtmlwhite\", \"./var/acceptData\"], function (jQuery, camelCase, rnothtmlwhite, acceptData) {\n \"use strict\";\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n return Data;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n return /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n});","define([\"../../core\", \"../../core/isAttached\" // css is assumed\n], function (jQuery, isAttached) {\n \"use strict\"; // isHiddenWithinTree reports if an element has a non-\"none\" display style (inline and/or\n // through the CSS cascade), which is useful in deciding whether or not to make it visible.\n // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:\n // * A hidden ancestor does not force an element to be classified as hidden.\n // * Being disconnected from the document does not force an element to be classified as hidden.\n // These differences improve the behavior of .toggle() et al. when applied to elements that are\n // detached or contained within hidden ancestors (gh-2404, gh-2863).\n\n return function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n});","define([\"../core\", \"../var/rcssNum\"], function (jQuery, rcssNum) {\n \"use strict\";\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n return adjustCSS;\n});","define(function () {\n \"use strict\"; // rtagName captures the name from the first start tag in a string of HTML\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-open-state\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-name-state\n\n return /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n});","define(function () {\n \"use strict\";\n\n return /^$|^module$|\\/(?:java|ecma)script/i;\n});","define([\"./support\"], function (support) {\n \"use strict\"; // We have to close these tags to support XHTML (#13200)\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n return wrapMap;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })();\n\n return support;\n});","define([\"../core\", \"../core/nodeName\"], function (jQuery, nodeName) {\n \"use strict\";\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n }\n\n return getAll;\n});","define([\"../data/var/dataPriv\"], function (dataPriv) {\n \"use strict\"; // Mark scripts as having already been evaluated\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n return setGlobalEval;\n});","define([\"../core\", \"../core/toType\", \"../core/isAttached\", \"./var/rtagName\", \"./var/rscriptType\", \"./wrapMap\", \"./getAll\", \"./setGlobalEval\"], function (jQuery, toType, isAttached, rtagName, rscriptType, wrapMap, getAll, setGlobalEval) {\n \"use strict\";\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n return buildFragment;\n});","define(function () {\n \"use strict\";\n\n return function (elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n});","define([\"../core\", \"../core/isAttached\", \"./var/rboxStyle\", \"./var/rnumnonpx\", \"./var/getStyles\", \"./support\"], function (jQuery, isAttached, rboxStyle, rnumnonpx, getStyles, support) {\n \"use strict\";\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n return curCSS;\n});","define(function () {\n \"use strict\";\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n return addGetHookIf;\n});","define([\"../var/document\", \"../core\"], function (document, jQuery) {\n \"use strict\";\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n\n if (final) {\n return final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n return finalPropName;\n});","define([\"../core\", \"../core/access\", \"./support\", \"../selector\"], function (jQuery, access, support) {\n \"use strict\";\n\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n });\n});","define(function () {\n \"use strict\";\n\n return {\n guid: Date.now()\n };\n});","define(function () {\n \"use strict\";\n\n return /\\?/;\n});","define([\"../core\"], function (jQuery) {\n \"use strict\"; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n\n return xml;\n };\n\n return jQuery.parseXML;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./core/toType\", \"./var/rcheckableType\", \"./var/isFunction\", \"./core/init\", \"./traversing\", // filter\n\"./attributes/prop\"], function (jQuery, toType, rcheckableType, isFunction) {\n \"use strict\";\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n return jQuery;\n});","define([\"../core\", \"../var/document\", \"./var/rsingleTag\", \"../manipulation/buildFragment\", // This is the only module that needs core/support\n\"./support\"], function (jQuery, document, rsingleTag, buildFragment, support) {\n \"use strict\"; // Argument \"data\" should be string of html\n // context (optional): If specified, the fragment will be created in this context,\n // defaults to document\n // keepScripts (optional): If true, will include scripts passed in the html string\n\n jQuery.parseHTML = function (data, context, keepScripts) {\n if (typeof data !== \"string\") {\n return [];\n }\n\n if (typeof context === \"boolean\") {\n keepScripts = context;\n context = false;\n }\n\n var base, parsed, scripts;\n\n if (!context) {\n // Stop scripts or inline event handlers from being executed immediately\n // by using document.implementation\n if (support.createHTMLDocument) {\n context = document.implementation.createHTMLDocument(\"\"); // Set the base href for the created document\n // so any parsed elements with URLs\n // are based on the document's URL (gh-2965)\n\n base = context.createElement(\"base\");\n base.href = document.location.href;\n context.head.appendChild(base);\n } else {\n context = document;\n }\n }\n\n parsed = rsingleTag.exec(data);\n scripts = !keepScripts && []; // Single tag\n\n if (parsed) {\n return [context.createElement(parsed[1])];\n }\n\n parsed = buildFragment([data], context, scripts);\n\n if (scripts && scripts.length) {\n jQuery(scripts).remove();\n }\n\n return jQuery.merge([], parsed.childNodes);\n };\n\n return jQuery.parseHTML;\n});","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\";\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport within from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { max as mathMax, min as mathMin } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis || checkAltAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n if (checkMainAxis) {\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(tether ? mathMin(_min, tetherMin) : _min, _offset, tether ? mathMax(_max, tetherMax) : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","export { default as applyStyles } from \"./applyStyles.js\";\nexport { default as arrow } from \"./arrow.js\";\nexport { default as computeStyles } from \"./computeStyles.js\";\nexport { default as eventListeners } from \"./eventListeners.js\";\nexport { default as flip } from \"./flip.js\";\nexport { default as hide } from \"./hide.js\";\nexport { default as offset } from \"./offset.js\";\nexport { default as popperOffsets } from \"./popperOffsets.js\";\nexport { default as preventOverflow } from \"./preventOverflow.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","function _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core')) : typeof define === 'function' && define.amd ? define(['@popperjs/core'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory(global.Popper));\n})(this, function (Popper) {\n 'use strict';\n\n var _KEY_TO_DIRECTION;\n\n function _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n\n if (e) {\n var _loop = function _loop(k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function get() {\n return e[k];\n }\n });\n }\n };\n\n for (var k in e) {\n _loop(k);\n }\n }\n\n n.default = e;\n return Object.freeze(n);\n }\n\n var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\".concat(obj);\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var getUID = function getUID(prefix) {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = \"#\".concat(hrefAttr.split('#')[1]);\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getSelectorFromElement = function getSelectorFromElement(element) {\n var selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0];\n }\n\n return typeof obj.nodeType !== 'undefined';\n };\n\n var getElement = function getElement(obj) {\n if (isElement(obj)) {\n // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj;\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj);\n }\n\n return null;\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\"\".concat(componentName.toUpperCase(), \": Option \\\"\").concat(property, \"\\\" provided type \\\"\").concat(valueType, \"\\\" but expected type \\\"\").concat(expectedTypes, \"\\\".\"));\n }\n });\n };\n\n var isVisible = function isVisible(element) {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n };\n\n var isDisabled = function isDisabled(element) {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n\n if (element.classList.contains('disabled')) {\n return true;\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n };\n\n var findShadowRoot = function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n };\n\n var noop = function noop() {};\n /**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\n\n\n var reflow = function reflow(element) {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var DOMContentLoadedCallbacks = [];\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', function () {\n DOMContentLoadedCallbacks.forEach(function (callback) {\n return callback();\n });\n });\n }\n\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n };\n\n var isRTL = function isRTL() {\n return document.documentElement.dir === 'rtl';\n };\n\n var defineJQueryPlugin = function defineJQueryPlugin(plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var name = plugin.NAME;\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n var execute = function execute(callback) {\n if (typeof callback === 'function') {\n callback();\n }\n };\n\n var executeAfterTransition = function executeAfterTransition(callback, transitionElement) {\n var waitForTransition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n var durationPadding = 5;\n var emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n var called = false;\n\n var handler = function handler(_ref) {\n var target = _ref.target;\n\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n };\n /**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n\n\n var getNextActiveElement = function getNextActiveElement(list, activeElement, shouldGetNext, isCycleAllowed) {\n var index = list.indexOf(activeElement); // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0];\n }\n\n var listLength = list.length;\n index += shouldGetNext ? 1 : -1;\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))];\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\n var stripNameRegex = /\\..*/;\n var stripUidRegex = /::\\d+$/;\n var eventRegistry = {}; // Events storage\n\n var uidEvent = 1;\n var customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n };\n var customEventsRegex = /^(mouseenter|mouseleave)/i;\n var nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n /**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\n function getUidEvent(element, uid) {\n return uid && \"\".concat(uid, \"::\").concat(uidEvent++) || element.uidEvent || uidEvent++;\n }\n\n function getEvent(element) {\n var uid = getUidEvent(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n }\n\n function bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element;\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n\n return fn.apply(element, [event]);\n };\n }\n\n function bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n var domElements = element.querySelectorAll(selector);\n\n for (var target = event.target; target && target !== this; target = target.parentNode) {\n for (var i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target;\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n\n return fn.apply(target, [event]);\n }\n }\n } // To please ESLint\n\n\n return null;\n };\n }\n\n function findHandler(events, handler) {\n var delegationSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var uidEventList = Object.keys(events);\n\n for (var i = 0, len = uidEventList.length; i < len; i++) {\n var event = events[uidEventList[i]];\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event;\n }\n }\n\n return null;\n }\n\n function normalizeParams(originalTypeEvent, handler, delegationFn) {\n var delegation = typeof handler === 'string';\n var originalHandler = delegation ? delegationFn : handler;\n var typeEvent = getTypeEvent(originalTypeEvent);\n var isNative = nativeEvents.has(typeEvent);\n\n if (!isNative) {\n typeEvent = originalTypeEvent;\n }\n\n return [delegation, originalHandler, typeEvent];\n }\n\n function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n if (!handler) {\n handler = delegationFn;\n delegationFn = null;\n } // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n\n\n if (customEventsRegex.test(originalTypeEvent)) {\n var wrapFn = function wrapFn(fn) {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n\n if (delegationFn) {\n delegationFn = wrapFn(delegationFn);\n } else {\n handler = wrapFn(handler);\n }\n }\n\n var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn),\n _normalizeParams2 = _slicedToArray(_normalizeParams, 3),\n delegation = _normalizeParams2[0],\n originalHandler = _normalizeParams2[1],\n typeEvent = _normalizeParams2[2];\n\n var events = getEvent(element);\n var handlers = events[typeEvent] || (events[typeEvent] = {});\n var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff;\n return;\n }\n\n var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));\n var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);\n fn.delegationSelector = delegation ? handler : null;\n fn.originalHandler = originalHandler;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, delegation);\n }\n\n function removeHandler(element, events, typeEvent, handler, delegationSelector) {\n var fn = findHandler(events[typeEvent], handler, delegationSelector);\n\n if (!fn) {\n return;\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n }\n\n function removeNamespacedHandlers(element, events, typeEvent, namespace) {\n var storeElementEvent = events[typeEvent] || {};\n Object.keys(storeElementEvent).forEach(function (handlerKey) {\n if (handlerKey.includes(namespace)) {\n var event = storeElementEvent[handlerKey];\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\n }\n });\n }\n\n function getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n }\n\n var EventHandler = {\n on: function on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false);\n },\n one: function one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true);\n },\n off: function off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n var _normalizeParams3 = normalizeParams(originalTypeEvent, handler, delegationFn),\n _normalizeParams4 = _slicedToArray(_normalizeParams3, 3),\n delegation = _normalizeParams4[0],\n originalHandler = _normalizeParams4[1],\n typeEvent = _normalizeParams4[2];\n\n var inNamespace = typeEvent !== originalTypeEvent;\n var events = getEvent(element);\n var isNamespace = originalTypeEvent.startsWith('.');\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return;\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);\n return;\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(function (elementEvent) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n });\n }\n\n var storeElementEvent = events[typeEvent] || {};\n Object.keys(storeElementEvent).forEach(function (keyHandlers) {\n var handlerKey = keyHandlers.replace(stripUidRegex, '');\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n var event = storeElementEvent[keyHandlers];\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\n }\n });\n },\n trigger: function trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n\n var $ = getjQuery();\n var typeEvent = getTypeEvent(event);\n var inNamespace = event !== typeEvent;\n var isNative = nativeEvents.has(typeEvent);\n var jQueryEvent;\n var bubbles = true;\n var nativeDispatch = true;\n var defaultPrevented = false;\n var evt = null;\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents');\n evt.initEvent(typeEvent, bubbles, true);\n } else {\n evt = new CustomEvent(event, {\n bubbles: bubbles,\n cancelable: true\n });\n } // merge custom information in our event\n\n\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(function (key) {\n Object.defineProperty(evt, key, {\n get: function get() {\n return args[key];\n }\n });\n });\n }\n\n if (defaultPrevented) {\n evt.preventDefault();\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault();\n }\n\n return evt;\n }\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var elementMap = new Map();\n var Data = {\n set: function set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n\n var instanceMap = elementMap.get(element); // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(\"Bootstrap doesn't allow more than one instance per element. Bound instance: \".concat(Array.from(instanceMap.keys())[0], \".\"));\n return;\n }\n\n instanceMap.set(key, instance);\n },\n get: function get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n\n return null;\n },\n remove: function remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n\n var instanceMap = elementMap.get(element);\n instanceMap.delete(key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var VERSION = '5.1.3';\n\n var BaseComponent = /*#__PURE__*/function () {\n function BaseComponent(element) {\n _classCallCheck(this, BaseComponent);\n\n element = getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n _createClass(BaseComponent, [{\n key: \"dispose\",\n value: function dispose() {\n var _this = this;\n\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n Object.getOwnPropertyNames(this).forEach(function (propertyName) {\n _this[propertyName] = null;\n });\n }\n }, {\n key: \"_queueCallback\",\n value: function _queueCallback(callback, element) {\n var isAnimated = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n executeAfterTransition(callback, element, isAnimated);\n }\n /** Static */\n\n }], [{\n key: \"getInstance\",\n value: function getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n }, {\n key: \"getOrCreateInstance\",\n value: function getOrCreateInstance(element) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.getInstance(element) || new this(element, _typeof(config) === 'object' ? config : null);\n }\n }, {\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return \"bs.\".concat(this.NAME);\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return \".\".concat(this.DATA_KEY);\n }\n }]);\n\n return BaseComponent;\n }();\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n var enableDismissTrigger = function enableDismissTrigger(component) {\n var method = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'hide';\n var clickEvent = \"click.dismiss\".concat(component.EVENT_KEY);\n var name = component.NAME;\n EventHandler.on(document, clickEvent, \"[data-bs-dismiss=\\\"\".concat(name, \"\\\"]\"), function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n var target = getElementFromSelector(this) || this.closest(\".\".concat(name));\n var instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n\n instance[method]();\n });\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME$d = 'alert';\n var DATA_KEY$c = 'bs.alert';\n var EVENT_KEY$c = \".\".concat(DATA_KEY$c);\n var EVENT_CLOSE = \"close\".concat(EVENT_KEY$c);\n var EVENT_CLOSED = \"closed\".concat(EVENT_KEY$c);\n var CLASS_NAME_FADE$5 = 'fade';\n var CLASS_NAME_SHOW$8 = 'show';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Alert = /*#__PURE__*/function (_BaseComponent) {\n _inherits(Alert, _BaseComponent);\n\n var _super = _createSuper(Alert);\n\n function Alert() {\n _classCallCheck(this, Alert);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Alert, [{\n key: \"close\",\n value: // Public\n function close() {\n var _this2 = this;\n\n var closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n\n if (closeEvent.defaultPrevented) {\n return;\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n\n var isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n\n this._queueCallback(function () {\n return _this2._destroyElement();\n }, this._element, isAnimated);\n } // Private\n\n }, {\n key: \"_destroyElement\",\n value: function _destroyElement() {\n this._element.remove();\n\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n } // Static\n\n }], [{\n key: \"NAME\",\n get: // Getters\n function get() {\n return NAME$d;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Alert.getOrCreateInstance(this);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config](this);\n });\n }\n }]);\n\n return Alert;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n enableDismissTrigger(Alert, 'close');\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Alert);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$c = 'button';\n var DATA_KEY$b = 'bs.button';\n var EVENT_KEY$b = \".\".concat(DATA_KEY$b);\n var DATA_API_KEY$7 = '.data-api';\n var CLASS_NAME_ACTIVE$3 = 'active';\n var SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\n var EVENT_CLICK_DATA_API$6 = \"click\".concat(EVENT_KEY$b).concat(DATA_API_KEY$7);\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Button = /*#__PURE__*/function (_BaseComponent2) {\n _inherits(Button, _BaseComponent2);\n\n var _super2 = _createSuper(Button);\n\n function Button() {\n _classCallCheck(this, Button);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Button, [{\n key: \"toggle\",\n value: // Public\n function toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n } // Static\n\n }], [{\n key: \"NAME\",\n get: // Getters\n function get() {\n return NAME$c;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Button.getOrCreateInstance(this);\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n }]);\n\n return Button;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, function (event) {\n event.preventDefault();\n var button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n var data = Button.getOrCreateInstance(button);\n data.toggle();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Button);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n function normalizeData(val) {\n if (val === 'true') {\n return true;\n }\n\n if (val === 'false') {\n return false;\n }\n\n if (val === Number(val).toString()) {\n return Number(val);\n }\n\n if (val === '' || val === 'null') {\n return null;\n }\n\n return val;\n }\n\n function normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, function (chr) {\n return \"-\".concat(chr.toLowerCase());\n });\n }\n\n var Manipulator = {\n setDataAttribute: function setDataAttribute(element, key, value) {\n element.setAttribute(\"data-bs-\".concat(normalizeDataKey(key)), value);\n },\n removeDataAttribute: function removeDataAttribute(element, key) {\n element.removeAttribute(\"data-bs-\".concat(normalizeDataKey(key)));\n },\n getDataAttributes: function getDataAttributes(element) {\n if (!element) {\n return {};\n }\n\n var attributes = {};\n Object.keys(element.dataset).filter(function (key) {\n return key.startsWith('bs');\n }).forEach(function (key) {\n var pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n });\n return attributes;\n },\n getDataAttribute: function getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(\"data-bs-\".concat(normalizeDataKey(key))));\n },\n offset: function offset(element) {\n var rect = element.getBoundingClientRect();\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n };\n },\n position: function position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n };\n }\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var NODE_TEXT = 3;\n var SelectorEngine = {\n find: function find(selector) {\n var _ref2;\n\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement;\n return (_ref2 = []).concat.apply(_ref2, _toConsumableArray(Element.prototype.querySelectorAll.call(element, selector)));\n },\n findOne: function findOne(selector) {\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement;\n return Element.prototype.querySelector.call(element, selector);\n },\n children: function children(element, selector) {\n var _ref3;\n\n return (_ref3 = []).concat.apply(_ref3, _toConsumableArray(element.children)).filter(function (child) {\n return child.matches(selector);\n });\n },\n parents: function parents(element, selector) {\n var parents = [];\n var ancestor = element.parentNode;\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor);\n }\n\n ancestor = ancestor.parentNode;\n }\n\n return parents;\n },\n prev: function prev(element, selector) {\n var previous = element.previousElementSibling;\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n\n previous = previous.previousElementSibling;\n }\n\n return [];\n },\n next: function next(element, selector) {\n var next = element.nextElementSibling;\n\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n\n next = next.nextElementSibling;\n }\n\n return [];\n },\n focusableChildren: function focusableChildren(element) {\n var focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(function (selector) {\n return \"\".concat(selector, \":not([tabindex^=\\\"-\\\"])\");\n }).join(', ');\n return this.find(focusables, element).filter(function (el) {\n return !isDisabled(el) && isVisible(el);\n });\n }\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$b = 'carousel';\n var DATA_KEY$a = 'bs.carousel';\n var EVENT_KEY$a = \".\".concat(DATA_KEY$a);\n var DATA_API_KEY$6 = '.data-api';\n var ARROW_LEFT_KEY = 'ArrowLeft';\n var ARROW_RIGHT_KEY = 'ArrowRight';\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n var SWIPE_THRESHOLD = 40;\n var Default$a = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n };\n var DefaultType$a = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n };\n var ORDER_NEXT = 'next';\n var ORDER_PREV = 'prev';\n var DIRECTION_LEFT = 'left';\n var DIRECTION_RIGHT = 'right';\n var KEY_TO_DIRECTION = (_KEY_TO_DIRECTION = {}, _defineProperty(_KEY_TO_DIRECTION, ARROW_LEFT_KEY, DIRECTION_RIGHT), _defineProperty(_KEY_TO_DIRECTION, ARROW_RIGHT_KEY, DIRECTION_LEFT), _KEY_TO_DIRECTION);\n var EVENT_SLIDE = \"slide\".concat(EVENT_KEY$a);\n var EVENT_SLID = \"slid\".concat(EVENT_KEY$a);\n var EVENT_KEYDOWN = \"keydown\".concat(EVENT_KEY$a);\n var EVENT_MOUSEENTER = \"mouseenter\".concat(EVENT_KEY$a);\n var EVENT_MOUSELEAVE = \"mouseleave\".concat(EVENT_KEY$a);\n var EVENT_TOUCHSTART = \"touchstart\".concat(EVENT_KEY$a);\n var EVENT_TOUCHMOVE = \"touchmove\".concat(EVENT_KEY$a);\n var EVENT_TOUCHEND = \"touchend\".concat(EVENT_KEY$a);\n var EVENT_POINTERDOWN = \"pointerdown\".concat(EVENT_KEY$a);\n var EVENT_POINTERUP = \"pointerup\".concat(EVENT_KEY$a);\n var EVENT_DRAG_START = \"dragstart\".concat(EVENT_KEY$a);\n var EVENT_LOAD_DATA_API$2 = \"load\".concat(EVENT_KEY$a).concat(DATA_API_KEY$6);\n var EVENT_CLICK_DATA_API$5 = \"click\".concat(EVENT_KEY$a).concat(DATA_API_KEY$6);\n var CLASS_NAME_CAROUSEL = 'carousel';\n var CLASS_NAME_ACTIVE$2 = 'active';\n var CLASS_NAME_SLIDE = 'slide';\n var CLASS_NAME_END = 'carousel-item-end';\n var CLASS_NAME_START = 'carousel-item-start';\n var CLASS_NAME_NEXT = 'carousel-item-next';\n var CLASS_NAME_PREV = 'carousel-item-prev';\n var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n var SELECTOR_ACTIVE$1 = '.active';\n var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n var SELECTOR_ITEM = '.carousel-item';\n var SELECTOR_ITEM_IMG = '.carousel-item img';\n var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n var SELECTOR_INDICATORS = '.carousel-indicators';\n var SELECTOR_INDICATOR = '[data-bs-target]';\n var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\n var SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\n var POINTER_TYPE_TOUCH = 'touch';\n var POINTER_TYPE_PEN = 'pen';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Carousel = /*#__PURE__*/function (_BaseComponent3) {\n _inherits(Carousel, _BaseComponent3);\n\n var _super3 = _createSuper(Carousel);\n\n function Carousel(element, config) {\n var _this3;\n\n _classCallCheck(this, Carousel);\n\n _this3 = _super3.call(this, element);\n _this3._items = null;\n _this3._interval = null;\n _this3._activeElement = null;\n _this3._isPaused = false;\n _this3._isSliding = false;\n _this3.touchTimeout = null;\n _this3.touchStartX = 0;\n _this3.touchDeltaX = 0;\n _this3._config = _this3._getConfig(config);\n _this3._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, _this3._element);\n _this3._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n _this3._pointerEvent = Boolean(window.PointerEvent);\n\n _this3._addEventListeners();\n\n return _this3;\n } // Getters\n\n\n _createClass(Carousel, [{\n key: \"next\",\n value: // Public\n function next() {\n this._slide(ORDER_NEXT);\n }\n }, {\n key: \"nextWhenVisible\",\n value: function nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n }, {\n key: \"prev\",\n value: function prev() {\n this._slide(ORDER_PREV);\n }\n }, {\n key: \"pause\",\n value: function pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n\n clearInterval(this._interval);\n this._interval = null;\n }\n }, {\n key: \"cycle\",\n value: function cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval();\n\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n }\n }, {\n key: \"to\",\n value: function to(index) {\n var _this4 = this;\n\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n var activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, function () {\n return _this4.to(index);\n });\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n var order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n\n this._slide(order, this._items[index]);\n } // Private\n\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$a), Manipulator.getDataAttributes(this._element)), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME$b, config, DefaultType$a);\n return config;\n }\n }, {\n key: \"_handleSwipe\",\n value: function _handleSwipe() {\n var absDeltax = Math.abs(this.touchDeltaX);\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltax / this.touchDeltaX;\n this.touchDeltaX = 0;\n\n if (!direction) {\n return;\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT);\n }\n }, {\n key: \"_addEventListeners\",\n value: function _addEventListeners() {\n var _this5 = this;\n\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, function (event) {\n return _this5._keydown(event);\n });\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) {\n return _this5.pause(event);\n });\n EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) {\n return _this5.cycle(event);\n });\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners();\n }\n }\n }, {\n key: \"_addTouchEventListeners\",\n value: function _addTouchEventListeners() {\n var _this6 = this;\n\n var hasPointerPenTouch = function hasPointerPenTouch(event) {\n return _this6._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n };\n\n var start = function start(event) {\n if (hasPointerPenTouch(event)) {\n _this6.touchStartX = event.clientX;\n } else if (!_this6._pointerEvent) {\n _this6.touchStartX = event.touches[0].clientX;\n }\n };\n\n var move = function move(event) {\n // ensure swiping with one touch and not pinching\n _this6.touchDeltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - _this6.touchStartX;\n };\n\n var end = function end(event) {\n if (hasPointerPenTouch(event)) {\n _this6.touchDeltaX = event.clientX - _this6.touchStartX;\n }\n\n _this6._handleSwipe();\n\n if (_this6._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n _this6.pause();\n\n if (_this6.touchTimeout) {\n clearTimeout(_this6.touchTimeout);\n }\n\n _this6.touchTimeout = setTimeout(function (event) {\n return _this6.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this6._config.interval);\n }\n };\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {\n EventHandler.on(itemImg, EVENT_DRAG_START, function (event) {\n return event.preventDefault();\n });\n });\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) {\n return start(event);\n });\n EventHandler.on(this._element, EVENT_POINTERUP, function (event) {\n return end(event);\n });\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) {\n return start(event);\n });\n EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) {\n return move(event);\n });\n EventHandler.on(this._element, EVENT_TOUCHEND, function (event) {\n return end(event);\n });\n }\n }\n }, {\n key: \"_keydown\",\n value: function _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n var direction = KEY_TO_DIRECTION[event.key];\n\n if (direction) {\n event.preventDefault();\n\n this._slide(direction);\n }\n }\n }, {\n key: \"_getItemIndex\",\n value: function _getItemIndex(element) {\n this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];\n return this._items.indexOf(element);\n }\n }, {\n key: \"_getItemByOrder\",\n value: function _getItemByOrder(order, activeElement) {\n var isNext = order === ORDER_NEXT;\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap);\n }\n }, {\n key: \"_triggerSlideEvent\",\n value: function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n\n var fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element));\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n }\n }, {\n key: \"_setActiveIndicatorElement\",\n value: function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n var activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n var indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement);\n\n for (var i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE$2);\n indicators[i].setAttribute('aria-current', 'true');\n break;\n }\n }\n }\n }\n }, {\n key: \"_updateInterval\",\n value: function _updateInterval() {\n var element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n if (!element) {\n return;\n }\n\n var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = elementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n }\n }, {\n key: \"_slide\",\n value: function _slide(directionOrOrder, element) {\n var _this7 = this;\n\n var order = this._directionToOrder(directionOrOrder);\n\n var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n var activeElementIndex = this._getItemIndex(activeElement);\n\n var nextElement = element || this._getItemByOrder(order, activeElement);\n\n var nextElementIndex = this._getItemIndex(nextElement);\n\n var isCycling = Boolean(this._interval);\n var isNext = order === ORDER_NEXT;\n var directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n var orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n\n var eventDirectionName = this._orderToDirection(order);\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$2)) {\n this._isSliding = false;\n return;\n }\n\n if (this._isSliding) {\n return;\n }\n\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n if (slideEvent.defaultPrevented) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n\n this._isSliding = true;\n\n if (isCycling) {\n this.pause();\n }\n\n this._setActiveIndicatorElement(nextElement);\n\n this._activeElement = nextElement;\n\n var triggerSlidEvent = function triggerSlidEvent() {\n EventHandler.trigger(_this7._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n };\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n\n var completeCallBack = function completeCallBack() {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n _this7._isSliding = false;\n setTimeout(triggerSlidEvent, 0);\n };\n\n this._queueCallback(completeCallBack, activeElement, true);\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n this._isSliding = false;\n triggerSlidEvent();\n }\n\n if (isCycling) {\n this.cycle();\n }\n }\n }, {\n key: \"_directionToOrder\",\n value: function _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction;\n }\n\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n }, {\n key: \"_orderToDirection\",\n value: function _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order;\n }\n\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n } // Static\n\n }], [{\n key: \"Default\",\n get: function get() {\n return Default$a;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$b;\n }\n }, {\n key: \"carouselInterface\",\n value: function carouselInterface(element, config) {\n var data = Carousel.getOrCreateInstance(element, config);\n var _config = data._config;\n\n if (_typeof(config) === 'object') {\n _config = _objectSpread(_objectSpread({}, _config), config);\n }\n\n var action = typeof config === 'string' ? config : _config.slide;\n\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(action, \"\\\"\"));\n }\n\n data[action]();\n } else if (_config.interval && _config.ride) {\n data.pause();\n data.cycle();\n }\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config);\n });\n }\n }, {\n key: \"dataApiClickHandler\",\n value: function dataApiClickHandler(event) {\n var target = getElementFromSelector(this);\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n var config = _objectSpread(_objectSpread({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));\n\n var slideIndex = this.getAttribute('data-bs-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel.carouselInterface(target, config);\n\n if (slideIndex) {\n Carousel.getInstance(target).to(slideIndex);\n }\n\n event.preventDefault();\n }\n }]);\n\n return Carousel;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);\n EventHandler.on(window, EVENT_LOAD_DATA_API$2, function () {\n var carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n\n for (var i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]));\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Carousel);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$a = 'collapse';\n var DATA_KEY$9 = 'bs.collapse';\n var EVENT_KEY$9 = \".\".concat(DATA_KEY$9);\n var DATA_API_KEY$5 = '.data-api';\n var Default$9 = {\n toggle: true,\n parent: null\n };\n var DefaultType$9 = {\n toggle: 'boolean',\n parent: '(null|element)'\n };\n var EVENT_SHOW$5 = \"show\".concat(EVENT_KEY$9);\n var EVENT_SHOWN$5 = \"shown\".concat(EVENT_KEY$9);\n var EVENT_HIDE$5 = \"hide\".concat(EVENT_KEY$9);\n var EVENT_HIDDEN$5 = \"hidden\".concat(EVENT_KEY$9);\n var EVENT_CLICK_DATA_API$4 = \"click\".concat(EVENT_KEY$9).concat(DATA_API_KEY$5);\n var CLASS_NAME_SHOW$7 = 'show';\n var CLASS_NAME_COLLAPSE = 'collapse';\n var CLASS_NAME_COLLAPSING = 'collapsing';\n var CLASS_NAME_COLLAPSED = 'collapsed';\n var CLASS_NAME_DEEPER_CHILDREN = \":scope .\".concat(CLASS_NAME_COLLAPSE, \" .\").concat(CLASS_NAME_COLLAPSE);\n var CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\n var WIDTH = 'width';\n var HEIGHT = 'height';\n var SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\n var SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Collapse = /*#__PURE__*/function (_BaseComponent4) {\n _inherits(Collapse, _BaseComponent4);\n\n var _super4 = _createSuper(Collapse);\n\n function Collapse(element, config) {\n var _this8;\n\n _classCallCheck(this, Collapse);\n\n _this8 = _super4.call(this, element);\n _this8._isTransitioning = false;\n _this8._config = _this8._getConfig(config);\n _this8._triggerArray = [];\n var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = getSelectorFromElement(elem);\n var filterElement = SelectorEngine.find(selector).filter(function (foundElem) {\n return foundElem === _this8._element;\n });\n\n if (selector !== null && filterElement.length) {\n _this8._selector = selector;\n\n _this8._triggerArray.push(elem);\n }\n }\n\n _this8._initializeChildren();\n\n if (!_this8._config.parent) {\n _this8._addAriaAndCollapsedClass(_this8._triggerArray, _this8._isShown());\n }\n\n if (_this8._config.toggle) {\n _this8.toggle();\n }\n\n return _this8;\n } // Getters\n\n\n _createClass(Collapse, [{\n key: \"toggle\",\n value: // Public\n function toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n }, {\n key: \"show\",\n value: function show() {\n var _this9 = this;\n\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n\n var actives = [];\n var activesData;\n\n if (this._config.parent) {\n var children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(function (elem) {\n return !children.includes(elem);\n }); // remove children if greater depth\n }\n\n var container = SelectorEngine.findOne(this._selector);\n\n if (actives.length) {\n var tempActiveData = actives.find(function (elem) {\n return container !== elem;\n });\n activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null;\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n var startEvent = EventHandler.trigger(this._element, EVENT_SHOW$5);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n actives.forEach(function (elemActive) {\n if (container !== elemActive) {\n Collapse.getOrCreateInstance(elemActive, {\n toggle: false\n }).hide();\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY$9, null);\n }\n });\n\n var dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n\n this._isTransitioning = true;\n\n var complete = function complete() {\n _this9._isTransitioning = false;\n\n _this9._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n _this9._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n _this9._element.style[dimension] = '';\n EventHandler.trigger(_this9._element, EVENT_SHOWN$5);\n };\n\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\".concat(capitalizedDimension);\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = \"\".concat(this._element[scrollSize], \"px\");\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this10 = this;\n\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n\n var startEvent = EventHandler.trigger(this._element, EVENT_HIDE$5);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n var dimension = this._getDimension();\n\n this._element.style[dimension] = \"\".concat(this._element.getBoundingClientRect()[dimension], \"px\");\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n var triggerArrayLength = this._triggerArray.length;\n\n for (var i = 0; i < triggerArrayLength; i++) {\n var trigger = this._triggerArray[i];\n var elem = getElementFromSelector(trigger);\n\n if (elem && !this._isShown(elem)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n\n this._isTransitioning = true;\n\n var complete = function complete() {\n _this10._isTransitioning = false;\n\n _this10._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n _this10._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler.trigger(_this10._element, EVENT_HIDDEN$5);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n }, {\n key: \"_isShown\",\n value: function _isShown() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._element;\n return element.classList.contains(CLASS_NAME_SHOW$7);\n } // Private\n\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$9), Manipulator.getDataAttributes(this._element)), config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n config.parent = getElement(config.parent);\n typeCheckConfig(NAME$a, config, DefaultType$9);\n return config;\n }\n }, {\n key: \"_getDimension\",\n value: function _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n }, {\n key: \"_initializeChildren\",\n value: function _initializeChildren() {\n var _this11 = this;\n\n if (!this._config.parent) {\n return;\n }\n\n var children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n SelectorEngine.find(SELECTOR_DATA_TOGGLE$4, this._config.parent).filter(function (elem) {\n return !children.includes(elem);\n }).forEach(function (element) {\n var selected = getElementFromSelector(element);\n\n if (selected) {\n _this11._addAriaAndCollapsedClass([element], _this11._isShown(selected));\n }\n });\n }\n }, {\n key: \"_addAriaAndCollapsedClass\",\n value: function _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n\n triggerArray.forEach(function (elem) {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED);\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED);\n }\n\n elem.setAttribute('aria-expanded', isOpen);\n });\n } // Static\n\n }], [{\n key: \"Default\",\n get: function get() {\n return Default$9;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$a;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var _config = {};\n\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n var data = Collapse.getOrCreateInstance(this, _config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n }\n });\n }\n }]);\n\n return Collapse;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n var selector = getSelectorFromElement(this);\n var selectorElements = SelectorEngine.find(selector);\n selectorElements.forEach(function (element) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Collapse);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$9 = 'dropdown';\n var DATA_KEY$8 = 'bs.dropdown';\n var EVENT_KEY$8 = \".\".concat(DATA_KEY$8);\n var DATA_API_KEY$4 = '.data-api';\n var ESCAPE_KEY$2 = 'Escape';\n var SPACE_KEY = 'Space';\n var TAB_KEY$1 = 'Tab';\n var ARROW_UP_KEY = 'ArrowUp';\n var ARROW_DOWN_KEY = 'ArrowDown';\n var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\n var REGEXP_KEYDOWN = new RegExp(\"\".concat(ARROW_UP_KEY, \"|\").concat(ARROW_DOWN_KEY, \"|\").concat(ESCAPE_KEY$2));\n var EVENT_HIDE$4 = \"hide\".concat(EVENT_KEY$8);\n var EVENT_HIDDEN$4 = \"hidden\".concat(EVENT_KEY$8);\n var EVENT_SHOW$4 = \"show\".concat(EVENT_KEY$8);\n var EVENT_SHOWN$4 = \"shown\".concat(EVENT_KEY$8);\n var EVENT_CLICK_DATA_API$3 = \"click\".concat(EVENT_KEY$8).concat(DATA_API_KEY$4);\n var EVENT_KEYDOWN_DATA_API = \"keydown\".concat(EVENT_KEY$8).concat(DATA_API_KEY$4);\n var EVENT_KEYUP_DATA_API = \"keyup\".concat(EVENT_KEY$8).concat(DATA_API_KEY$4);\n var CLASS_NAME_SHOW$6 = 'show';\n var CLASS_NAME_DROPUP = 'dropup';\n var CLASS_NAME_DROPEND = 'dropend';\n var CLASS_NAME_DROPSTART = 'dropstart';\n var CLASS_NAME_NAVBAR = 'navbar';\n var SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]';\n var SELECTOR_MENU = '.dropdown-menu';\n var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n var PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\n var PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\n var PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\n var PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\n var PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\n var PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\n var Default$8 = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n autoClose: true\n };\n var DefaultType$8 = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n autoClose: '(boolean|string)'\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Dropdown = /*#__PURE__*/function (_BaseComponent5) {\n _inherits(Dropdown, _BaseComponent5);\n\n var _super5 = _createSuper(Dropdown);\n\n function Dropdown(element, config) {\n var _this12;\n\n _classCallCheck(this, Dropdown);\n\n _this12 = _super5.call(this, element);\n _this12._popper = null;\n _this12._config = _this12._getConfig(config);\n _this12._menu = _this12._getMenuElement();\n _this12._inNavbar = _this12._detectNavbar();\n return _this12;\n } // Getters\n\n\n _createClass(Dropdown, [{\n key: \"toggle\",\n value: // Public\n function toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n }, {\n key: \"show\",\n value: function show() {\n if (isDisabled(this._element) || this._isShown(this._menu)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n var parent = Dropdown.getParentFromElement(this._element); // Totally disable Popper for Dropdowns in Navbar\n\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none');\n } else {\n this._createPopper(parent);\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {\n var _ref4;\n\n (_ref4 = []).concat.apply(_ref4, _toConsumableArray(document.body.children)).forEach(function (elem) {\n return EventHandler.on(elem, 'mouseover', noop);\n });\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n\n this._element.classList.add(CLASS_NAME_SHOW$6);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n\n this._completeHide(relatedTarget);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n\n _get(_getPrototypeOf(Dropdown.prototype), \"dispose\", this).call(this);\n }\n }, {\n key: \"update\",\n value: function update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n\n }, {\n key: \"_completeHide\",\n value: function _completeHide(relatedTarget) {\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n var _ref5;\n\n (_ref5 = []).concat.apply(_ref5, _toConsumableArray(document.body.children)).forEach(function (elem) {\n return EventHandler.off(elem, 'mouseover', noop);\n });\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.setAttribute('aria-expanded', 'false');\n\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget);\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, this.constructor.Default), Manipulator.getDataAttributes(this._element)), config);\n typeCheckConfig(NAME$9, config, this.constructor.DefaultType);\n\n if (_typeof(config.reference) === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(\"\".concat(NAME$9.toUpperCase(), \": Option \\\"reference\\\" provided type \\\"object\\\" without a required \\\"getBoundingClientRect\\\" method.\"));\n }\n\n return config;\n }\n }, {\n key: \"_createPopper\",\n value: function _createPopper(parent) {\n if (typeof Popper__namespace === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n var referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (_typeof(this._config.reference) === 'object') {\n referenceElement = this._config.reference;\n }\n\n var popperConfig = this._getPopperConfig();\n\n var isDisplayStatic = popperConfig.modifiers.find(function (modifier) {\n return modifier.name === 'applyStyles' && modifier.enabled === false;\n });\n this._popper = Popper__namespace.createPopper(referenceElement, this._menu, popperConfig);\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static');\n }\n }\n }, {\n key: \"_isShown\",\n value: function _isShown() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._element;\n return element.classList.contains(CLASS_NAME_SHOW$6);\n }\n }, {\n key: \"_getMenuElement\",\n value: function _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0];\n }\n }, {\n key: \"_getPlacement\",\n value: function _getPlacement() {\n var parentDropdown = this._element.parentNode;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n } // We need to trim the value because custom properties can also include spaces\n\n\n var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n }, {\n key: \"_detectNavbar\",\n value: function _detectNavbar() {\n return this._element.closest(\".\".concat(CLASS_NAME_NAVBAR)) !== null;\n }\n }, {\n key: \"_getOffset\",\n value: function _getOffset() {\n var _this13 = this;\n\n var offset = this._config.offset;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(function (val) {\n return Number.parseInt(val, 10);\n });\n }\n\n if (typeof offset === 'function') {\n return function (popperData) {\n return offset(popperData, _this13._element);\n };\n }\n\n return offset;\n }\n }, {\n key: \"_getPopperConfig\",\n value: function _getPopperConfig() {\n var defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return _objectSpread(_objectSpread({}, defaultBsPopperConfig), typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);\n }\n }, {\n key: \"_selectMenuItem\",\n value: function _selectMenuItem(_ref6) {\n var key = _ref6.key,\n target = _ref6.target;\n var items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);\n\n if (!items.length) {\n return;\n } // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus();\n } // Static\n\n }], [{\n key: \"Default\",\n get: function get() {\n return Default$8;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$8;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$9;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Dropdown.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n });\n }\n }, {\n key: \"clearMenus\",\n value: function clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1)) {\n return;\n }\n\n var toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);\n\n for (var i = 0, len = toggles.length; i < len; i++) {\n var context = Dropdown.getInstance(toggles[i]);\n\n if (!context || context._config.autoClose === false) {\n continue;\n }\n\n if (!context._isShown()) {\n continue;\n }\n\n var relatedTarget = {\n relatedTarget: context._element\n };\n\n if (event) {\n var composedPath = event.composedPath();\n var isMenuTarget = composedPath.includes(context._menu);\n\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n\n\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n }\n\n context._completeHide(relatedTarget);\n }\n }\n }, {\n key: \"getParentFromElement\",\n value: function getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode;\n }\n }, {\n key: \"dataApiKeydownHandler\",\n value: function dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY$2 && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {\n return;\n }\n\n var isActive = this.classList.contains(CLASS_NAME_SHOW$6);\n\n if (!isActive && event.key === ESCAPE_KEY$2) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (isDisabled(this)) {\n return;\n }\n\n var getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0];\n var instance = Dropdown.getOrCreateInstance(getToggleButton);\n\n if (event.key === ESCAPE_KEY$2) {\n instance.hide();\n return;\n }\n\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\n if (!isActive) {\n instance.show();\n }\n\n instance._selectMenuItem(event);\n\n return;\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus();\n }\n }\n }]);\n\n return Dropdown;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\n EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\n EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\n EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\n EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Dropdown);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n var SELECTOR_STICKY_CONTENT = '.sticky-top';\n\n var ScrollBarHelper = /*#__PURE__*/function () {\n function ScrollBarHelper() {\n _classCallCheck(this, ScrollBarHelper);\n\n this._element = document.body;\n }\n\n _createClass(ScrollBarHelper, [{\n key: \"getWidth\",\n value: function getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n var documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var width = this.getWidth();\n\n this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width\n\n\n this._setElementAttributes(this._element, 'paddingRight', function (calculatedValue) {\n return calculatedValue + width;\n }); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n\n\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', function (calculatedValue) {\n return calculatedValue + width;\n });\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', function (calculatedValue) {\n return calculatedValue - width;\n });\n }\n }, {\n key: \"_disableOverFlow\",\n value: function _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n\n this._element.style.overflow = 'hidden';\n }\n }, {\n key: \"_setElementAttributes\",\n value: function _setElementAttributes(selector, styleProp, callback) {\n var _this14 = this;\n\n var scrollbarWidth = this.getWidth();\n\n var manipulationCallBack = function manipulationCallBack(element) {\n if (element !== _this14._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n\n _this14._saveInitialAttribute(element, styleProp);\n\n var calculatedValue = window.getComputedStyle(element)[styleProp];\n element.style[styleProp] = \"\".concat(callback(Number.parseFloat(calculatedValue)), \"px\");\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._resetElementAttributes(this._element, 'overflow');\n\n this._resetElementAttributes(this._element, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\n }\n }, {\n key: \"_saveInitialAttribute\",\n value: function _saveInitialAttribute(element, styleProp) {\n var actualValue = element.style[styleProp];\n\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProp, actualValue);\n }\n }\n }, {\n key: \"_resetElementAttributes\",\n value: function _resetElementAttributes(selector, styleProp) {\n var manipulationCallBack = function manipulationCallBack(element) {\n var value = Manipulator.getDataAttribute(element, styleProp);\n\n if (typeof value === 'undefined') {\n element.style.removeProperty(styleProp);\n } else {\n Manipulator.removeDataAttribute(element, styleProp);\n element.style[styleProp] = value;\n }\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n }, {\n key: \"_applyManipulationCallback\",\n value: function _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n } else {\n SelectorEngine.find(selector, this._element).forEach(callBack);\n }\n }\n }, {\n key: \"isOverflowing\",\n value: function isOverflowing() {\n return this.getWidth() > 0;\n }\n }]);\n\n return ScrollBarHelper;\n }();\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n var Default$7 = {\n className: 'modal-backdrop',\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n isAnimated: false,\n rootElement: 'body',\n // give the choice to place backdrop under different elements\n clickCallback: null\n };\n var DefaultType$7 = {\n className: 'string',\n isVisible: 'boolean',\n isAnimated: 'boolean',\n rootElement: '(element|string)',\n clickCallback: '(function|null)'\n };\n var NAME$8 = 'backdrop';\n var CLASS_NAME_FADE$4 = 'fade';\n var CLASS_NAME_SHOW$5 = 'show';\n var EVENT_MOUSEDOWN = \"mousedown.bs.\".concat(NAME$8);\n\n var Backdrop = /*#__PURE__*/function () {\n function Backdrop(config) {\n _classCallCheck(this, Backdrop);\n\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n _createClass(Backdrop, [{\n key: \"show\",\n value: function show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n if (this._config.isAnimated) {\n reflow(this._getElement());\n }\n\n this._getElement().classList.add(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(function () {\n execute(callback);\n });\n }\n }, {\n key: \"hide\",\n value: function hide(callback) {\n var _this15 = this;\n\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(function () {\n _this15.dispose();\n\n execute(callback);\n });\n } // Private\n\n }, {\n key: \"_getElement\",\n value: function _getElement() {\n if (!this._element) {\n var backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread({}, Default$7), _typeof(config) === 'object' ? config : {}); // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n\n config.rootElement = getElement(config.rootElement);\n typeCheckConfig(NAME$8, config, DefaultType$7);\n return config;\n }\n }, {\n key: \"_append\",\n value: function _append() {\n var _this16 = this;\n\n if (this._isAppended) {\n return;\n }\n\n this._config.rootElement.append(this._getElement());\n\n EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, function () {\n execute(_this16._config.clickCallback);\n });\n this._isAppended = true;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n\n this._element.remove();\n\n this._isAppended = false;\n }\n }, {\n key: \"_emulateAnimation\",\n value: function _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n }]);\n\n return Backdrop;\n }();\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n var Default$6 = {\n trapElement: null,\n // The element to trap focus inside of\n autofocus: true\n };\n var DefaultType$6 = {\n trapElement: 'element',\n autofocus: 'boolean'\n };\n var NAME$7 = 'focustrap';\n var DATA_KEY$7 = 'bs.focustrap';\n var EVENT_KEY$7 = \".\".concat(DATA_KEY$7);\n var EVENT_FOCUSIN$1 = \"focusin\".concat(EVENT_KEY$7);\n var EVENT_KEYDOWN_TAB = \"keydown.tab\".concat(EVENT_KEY$7);\n var TAB_KEY = 'Tab';\n var TAB_NAV_FORWARD = 'forward';\n var TAB_NAV_BACKWARD = 'backward';\n\n var FocusTrap = /*#__PURE__*/function () {\n function FocusTrap(config) {\n _classCallCheck(this, FocusTrap);\n\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n }\n\n _createClass(FocusTrap, [{\n key: \"activate\",\n value: function activate() {\n var _this17 = this;\n\n var _this$_config = this._config,\n trapElement = _this$_config.trapElement,\n autofocus = _this$_config.autofocus;\n\n if (this._isActive) {\n return;\n }\n\n if (autofocus) {\n trapElement.focus();\n }\n\n EventHandler.off(document, EVENT_KEY$7); // guard against infinite focus loop\n\n EventHandler.on(document, EVENT_FOCUSIN$1, function (event) {\n return _this17._handleFocusin(event);\n });\n EventHandler.on(document, EVENT_KEYDOWN_TAB, function (event) {\n return _this17._handleKeydown(event);\n });\n this._isActive = true;\n }\n }, {\n key: \"deactivate\",\n value: function deactivate() {\n if (!this._isActive) {\n return;\n }\n\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$7);\n } // Private\n\n }, {\n key: \"_handleFocusin\",\n value: function _handleFocusin(event) {\n var target = event.target;\n var trapElement = this._config.trapElement;\n\n if (target === document || target === trapElement || trapElement.contains(target)) {\n return;\n }\n\n var elements = SelectorEngine.focusableChildren(trapElement);\n\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n }, {\n key: \"_handleKeydown\",\n value: function _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread({}, Default$6), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME$7, config, DefaultType$6);\n return config;\n }\n }]);\n\n return FocusTrap;\n }();\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME$6 = 'modal';\n var DATA_KEY$6 = 'bs.modal';\n var EVENT_KEY$6 = \".\".concat(DATA_KEY$6);\n var DATA_API_KEY$3 = '.data-api';\n var ESCAPE_KEY$1 = 'Escape';\n var Default$5 = {\n backdrop: true,\n keyboard: true,\n focus: true\n };\n var DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n };\n var EVENT_HIDE$3 = \"hide\".concat(EVENT_KEY$6);\n var EVENT_HIDE_PREVENTED = \"hidePrevented\".concat(EVENT_KEY$6);\n var EVENT_HIDDEN$3 = \"hidden\".concat(EVENT_KEY$6);\n var EVENT_SHOW$3 = \"show\".concat(EVENT_KEY$6);\n var EVENT_SHOWN$3 = \"shown\".concat(EVENT_KEY$6);\n var EVENT_RESIZE = \"resize\".concat(EVENT_KEY$6);\n var EVENT_CLICK_DISMISS = \"click.dismiss\".concat(EVENT_KEY$6);\n var EVENT_KEYDOWN_DISMISS$1 = \"keydown.dismiss\".concat(EVENT_KEY$6);\n var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\".concat(EVENT_KEY$6);\n var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\".concat(EVENT_KEY$6);\n var EVENT_CLICK_DATA_API$2 = \"click\".concat(EVENT_KEY$6).concat(DATA_API_KEY$3);\n var CLASS_NAME_OPEN = 'modal-open';\n var CLASS_NAME_FADE$3 = 'fade';\n var CLASS_NAME_SHOW$4 = 'show';\n var CLASS_NAME_STATIC = 'modal-static';\n var OPEN_SELECTOR$1 = '.modal.show';\n var SELECTOR_DIALOG = '.modal-dialog';\n var SELECTOR_MODAL_BODY = '.modal-body';\n var SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Modal = /*#__PURE__*/function (_BaseComponent6) {\n _inherits(Modal, _BaseComponent6);\n\n var _super6 = _createSuper(Modal);\n\n function Modal(element, config) {\n var _this18;\n\n _classCallCheck(this, Modal);\n\n _this18 = _super6.call(this, element);\n _this18._config = _this18._getConfig(config);\n _this18._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, _this18._element);\n _this18._backdrop = _this18._initializeBackDrop();\n _this18._focustrap = _this18._initializeFocusTrap();\n _this18._isShown = false;\n _this18._ignoreBackdropClick = false;\n _this18._isTransitioning = false;\n _this18._scrollBar = new ScrollBarHelper();\n return _this18;\n } // Getters\n\n\n _createClass(Modal, [{\n key: \"toggle\",\n value: // Public\n function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n }, {\n key: \"show\",\n value: function show(relatedTarget) {\n var _this19 = this;\n\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget: relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n if (this._isAnimated()) {\n this._isTransitioning = true;\n }\n\n this._scrollBar.hide();\n\n document.body.classList.add(CLASS_NAME_OPEN);\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {\n EventHandler.one(_this19._element, EVENT_MOUSEUP_DISMISS, function (event) {\n if (event.target === _this19._element) {\n _this19._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this19._showElement(relatedTarget);\n });\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this20 = this;\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n\n var isAnimated = this._isAnimated();\n\n if (isAnimated) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n this._focustrap.deactivate();\n\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS);\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\n\n this._queueCallback(function () {\n return _this20._hideModal();\n }, this._element, isAnimated);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n [window, this._dialog].forEach(function (htmlElement) {\n return EventHandler.off(htmlElement, EVENT_KEY$6);\n });\n\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n _get(_getPrototypeOf(Modal.prototype), \"dispose\", this).call(this);\n }\n }, {\n key: \"handleUpdate\",\n value: function handleUpdate() {\n this._adjustDialog();\n } // Private\n\n }, {\n key: \"_initializeBackDrop\",\n value: function _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value\n isAnimated: this._isAnimated()\n });\n }\n }, {\n key: \"_initializeFocusTrap\",\n value: function _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$5), Manipulator.getDataAttributes(this._element)), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME$6, config, DefaultType$5);\n return config;\n }\n }, {\n key: \"_showElement\",\n value: function _showElement(relatedTarget) {\n var _this21 = this;\n\n var isAnimated = this._isAnimated();\n\n var modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.append(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n if (isAnimated) {\n reflow(this._element);\n }\n\n this._element.classList.add(CLASS_NAME_SHOW$4);\n\n var transitionComplete = function transitionComplete() {\n if (_this21._config.focus) {\n _this21._focustrap.activate();\n }\n\n _this21._isTransitioning = false;\n EventHandler.trigger(_this21._element, EVENT_SHOWN$3, {\n relatedTarget: relatedTarget\n });\n };\n\n this._queueCallback(transitionComplete, this._dialog, isAnimated);\n }\n }, {\n key: \"_setEscapeEvent\",\n value: function _setEscapeEvent() {\n var _this22 = this;\n\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, function (event) {\n if (_this22._config.keyboard && event.key === ESCAPE_KEY$1) {\n event.preventDefault();\n\n _this22.hide();\n } else if (!_this22._config.keyboard && event.key === ESCAPE_KEY$1) {\n _this22._triggerBackdropTransition();\n }\n });\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS$1);\n }\n }\n }, {\n key: \"_setResizeEvent\",\n value: function _setResizeEvent() {\n var _this23 = this;\n\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, function () {\n return _this23._adjustDialog();\n });\n } else {\n EventHandler.off(window, EVENT_RESIZE);\n }\n }\n }, {\n key: \"_hideModal\",\n value: function _hideModal() {\n var _this24 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._backdrop.hide(function () {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n _this24._resetAdjustments();\n\n _this24._scrollBar.reset();\n\n EventHandler.trigger(_this24._element, EVENT_HIDDEN$3);\n });\n }\n }, {\n key: \"_showBackdrop\",\n value: function _showBackdrop(callback) {\n var _this25 = this;\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, function (event) {\n if (_this25._ignoreBackdropClick) {\n _this25._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (_this25._config.backdrop === true) {\n _this25.hide();\n } else if (_this25._config.backdrop === 'static') {\n _this25._triggerBackdropTransition();\n }\n });\n\n this._backdrop.show(callback);\n }\n }, {\n key: \"_isAnimated\",\n value: function _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n }, {\n key: \"_triggerBackdropTransition\",\n value: function _triggerBackdropTransition() {\n var _this26 = this;\n\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n var _this$_element = this._element,\n classList = _this$_element.classList,\n scrollHeight = _this$_element.scrollHeight,\n style = _this$_element.style;\n var isModalOverflowing = scrollHeight > document.documentElement.clientHeight; // return if the following background transition hasn't yet completed\n\n if (!isModalOverflowing && style.overflowY === 'hidden' || classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n\n if (!isModalOverflowing) {\n style.overflowY = 'hidden';\n }\n\n classList.add(CLASS_NAME_STATIC);\n\n this._queueCallback(function () {\n classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n _this26._queueCallback(function () {\n style.overflowY = '';\n }, _this26._dialog);\n }\n }, this._dialog);\n\n this._element.focus();\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n }, {\n key: \"_adjustDialog\",\n value: function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n var scrollbarWidth = this._scrollBar.getWidth();\n\n var isBodyOverflowing = scrollbarWidth > 0;\n\n if (!isBodyOverflowing && isModalOverflowing && !isRTL() || isBodyOverflowing && !isModalOverflowing && isRTL()) {\n this._element.style.paddingLeft = \"\".concat(scrollbarWidth, \"px\");\n }\n\n if (isBodyOverflowing && !isModalOverflowing && !isRTL() || !isBodyOverflowing && isModalOverflowing && isRTL()) {\n this._element.style.paddingRight = \"\".concat(scrollbarWidth, \"px\");\n }\n }\n }, {\n key: \"_resetAdjustments\",\n value: function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n } // Static\n\n }], [{\n key: \"Default\",\n get: function get() {\n return Default$5;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$6;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = Modal.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config](relatedTarget);\n });\n }\n }]);\n\n return Modal;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n var _this27 = this;\n\n var target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n EventHandler.one(target, EVENT_SHOW$3, function (showEvent) {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$3, function () {\n if (isVisible(_this27)) {\n _this27.focus();\n }\n });\n }); // avoid conflict when clicking moddal toggler while another one is open\n\n var allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n\n if (allReadyOpen) {\n Modal.getInstance(allReadyOpen).hide();\n }\n\n var data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n });\n enableDismissTrigger(Modal);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Modal);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$5 = 'offcanvas';\n var DATA_KEY$5 = 'bs.offcanvas';\n var EVENT_KEY$5 = \".\".concat(DATA_KEY$5);\n var DATA_API_KEY$2 = '.data-api';\n var EVENT_LOAD_DATA_API$1 = \"load\".concat(EVENT_KEY$5).concat(DATA_API_KEY$2);\n var ESCAPE_KEY = 'Escape';\n var Default$4 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n };\n var DefaultType$4 = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n };\n var CLASS_NAME_SHOW$3 = 'show';\n var CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\n var OPEN_SELECTOR = '.offcanvas.show';\n var EVENT_SHOW$2 = \"show\".concat(EVENT_KEY$5);\n var EVENT_SHOWN$2 = \"shown\".concat(EVENT_KEY$5);\n var EVENT_HIDE$2 = \"hide\".concat(EVENT_KEY$5);\n var EVENT_HIDDEN$2 = \"hidden\".concat(EVENT_KEY$5);\n var EVENT_CLICK_DATA_API$1 = \"click\".concat(EVENT_KEY$5).concat(DATA_API_KEY$2);\n var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\".concat(EVENT_KEY$5);\n var SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Offcanvas = /*#__PURE__*/function (_BaseComponent7) {\n _inherits(Offcanvas, _BaseComponent7);\n\n var _super7 = _createSuper(Offcanvas);\n\n function Offcanvas(element, config) {\n var _this28;\n\n _classCallCheck(this, Offcanvas);\n\n _this28 = _super7.call(this, element);\n _this28._config = _this28._getConfig(config);\n _this28._isShown = false;\n _this28._backdrop = _this28._initializeBackDrop();\n _this28._focustrap = _this28._initializeFocusTrap();\n\n _this28._addEventListeners();\n\n return _this28;\n } // Getters\n\n\n _createClass(Offcanvas, [{\n key: \"toggle\",\n value: // Public\n function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n }, {\n key: \"show\",\n value: function show(relatedTarget) {\n var _this29 = this;\n\n if (this._isShown) {\n return;\n }\n\n var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, {\n relatedTarget: relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n this._element.style.visibility = 'visible';\n\n this._backdrop.show();\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.classList.add(CLASS_NAME_SHOW$3);\n\n var completeCallBack = function completeCallBack() {\n if (!_this29._config.scroll) {\n _this29._focustrap.activate();\n }\n\n EventHandler.trigger(_this29._element, EVENT_SHOWN$2, {\n relatedTarget: relatedTarget\n });\n };\n\n this._queueCallback(completeCallBack, this._element, true);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this30 = this;\n\n if (!this._isShown) {\n return;\n }\n\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._focustrap.deactivate();\n\n this._element.blur();\n\n this._isShown = false;\n\n this._element.classList.remove(CLASS_NAME_SHOW$3);\n\n this._backdrop.hide();\n\n var completeCallback = function completeCallback() {\n _this30._element.setAttribute('aria-hidden', true);\n\n _this30._element.removeAttribute('aria-modal');\n\n _this30._element.removeAttribute('role');\n\n _this30._element.style.visibility = 'hidden';\n\n if (!_this30._config.scroll) {\n new ScrollBarHelper().reset();\n }\n\n EventHandler.trigger(_this30._element, EVENT_HIDDEN$2);\n };\n\n this._queueCallback(completeCallback, this._element, true);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n _get(_getPrototypeOf(Offcanvas.prototype), \"dispose\", this).call(this);\n } // Private\n\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$4), Manipulator.getDataAttributes(this._element)), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME$5, config, DefaultType$4);\n return config;\n }\n }, {\n key: \"_initializeBackDrop\",\n value: function _initializeBackDrop() {\n var _this31 = this;\n\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible: this._config.backdrop,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: function clickCallback() {\n return _this31.hide();\n }\n });\n }\n }, {\n key: \"_initializeFocusTrap\",\n value: function _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n }, {\n key: \"_addEventListeners\",\n value: function _addEventListeners() {\n var _this32 = this;\n\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {\n if (_this32._config.keyboard && event.key === ESCAPE_KEY) {\n _this32.hide();\n }\n });\n } // Static\n\n }], [{\n key: \"NAME\",\n get: function get() {\n return NAME$5;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$4;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Offcanvas.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config](this);\n });\n }\n }]);\n\n return Offcanvas;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n var _this33 = this;\n\n var target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$2, function () {\n // focus on trigger when it is closed\n if (isVisible(_this33)) {\n _this33.focus();\n }\n }); // avoid conflict when clicking a toggler of an offcanvas, while another is open\n\n var allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n\n if (allReadyOpen && allReadyOpen !== target) {\n Offcanvas.getInstance(allReadyOpen).hide();\n }\n\n var data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n });\n EventHandler.on(window, EVENT_LOAD_DATA_API$1, function () {\n return SelectorEngine.find(OPEN_SELECTOR).forEach(function (el) {\n return Offcanvas.getOrCreateInstance(el).show();\n });\n });\n enableDismissTrigger(Offcanvas);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n defineJQueryPlugin(Offcanvas);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\n var allowedAttribute = function allowedAttribute(attribute, allowedAttributeList) {\n var attributeName = attribute.nodeName.toLowerCase();\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));\n }\n\n return true;\n }\n\n var regExp = allowedAttributeList.filter(function (attributeRegex) {\n return attributeRegex instanceof RegExp;\n }); // Check if a regular expression validates the attribute.\n\n for (var i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attributeName)) {\n return true;\n }\n }\n\n return false;\n };\n\n var DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n };\n\n function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n var _ref7;\n\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml);\n }\n\n var domParser = new window.DOMParser();\n var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n\n var elements = (_ref7 = []).concat.apply(_ref7, _toConsumableArray(createdDocument.body.querySelectorAll('*')));\n\n var _loop2 = function _loop2(i, len) {\n var _ref8;\n\n var element = elements[i];\n var elementName = element.nodeName.toLowerCase();\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n return \"continue\";\n }\n\n var attributeList = (_ref8 = []).concat.apply(_ref8, _toConsumableArray(element.attributes));\n\n var allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n attributeList.forEach(function (attribute) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n });\n };\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var _ret = _loop2(i, len);\n\n if (_ret === \"continue\") continue;\n }\n\n return createdDocument.body.innerHTML;\n }\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME$4 = 'tooltip';\n var DATA_KEY$4 = 'bs.tooltip';\n var EVENT_KEY$4 = \".\".concat(DATA_KEY$4);\n var CLASS_PREFIX$1 = 'bs-tooltip';\n var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\n var DefaultType$3 = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n };\n var AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n };\n var Default$3 = {\n animation: true,\n template: '
' + '
' + '
' + '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n };\n var Event$2 = {\n HIDE: \"hide\".concat(EVENT_KEY$4),\n HIDDEN: \"hidden\".concat(EVENT_KEY$4),\n SHOW: \"show\".concat(EVENT_KEY$4),\n SHOWN: \"shown\".concat(EVENT_KEY$4),\n INSERTED: \"inserted\".concat(EVENT_KEY$4),\n CLICK: \"click\".concat(EVENT_KEY$4),\n FOCUSIN: \"focusin\".concat(EVENT_KEY$4),\n FOCUSOUT: \"focusout\".concat(EVENT_KEY$4),\n MOUSEENTER: \"mouseenter\".concat(EVENT_KEY$4),\n MOUSELEAVE: \"mouseleave\".concat(EVENT_KEY$4)\n };\n var CLASS_NAME_FADE$2 = 'fade';\n var CLASS_NAME_MODAL = 'modal';\n var CLASS_NAME_SHOW$2 = 'show';\n var HOVER_STATE_SHOW = 'show';\n var HOVER_STATE_OUT = 'out';\n var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n var SELECTOR_MODAL = \".\".concat(CLASS_NAME_MODAL);\n var EVENT_MODAL_HIDE = 'hide.bs.modal';\n var TRIGGER_HOVER = 'hover';\n var TRIGGER_FOCUS = 'focus';\n var TRIGGER_CLICK = 'click';\n var TRIGGER_MANUAL = 'manual';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Tooltip = /*#__PURE__*/function (_BaseComponent8) {\n _inherits(Tooltip, _BaseComponent8);\n\n var _super8 = _createSuper(Tooltip);\n\n function Tooltip(element, config) {\n var _this34;\n\n _classCallCheck(this, Tooltip);\n\n if (typeof Popper__namespace === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n\n _this34 = _super8.call(this, element); // private\n\n _this34._isEnabled = true;\n _this34._timeout = 0;\n _this34._hoverState = '';\n _this34._activeTrigger = {};\n _this34._popper = null; // Protected\n\n _this34._config = _this34._getConfig(config);\n _this34.tip = null;\n\n _this34._setListeners();\n\n return _this34;\n } // Getters\n\n\n _createClass(Tooltip, [{\n key: \"enable\",\n value: // Public\n function enable() {\n this._isEnabled = true;\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this._isEnabled = false;\n }\n }, {\n key: \"toggleEnabled\",\n value: function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n }, {\n key: \"toggle\",\n value: function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n var context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger.click = !context._activeTrigger.click;\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$2)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this.tip) {\n this.tip.remove();\n }\n\n this._disposePopper();\n\n _get(_getPrototypeOf(Tooltip.prototype), \"dispose\", this).call(this);\n }\n }, {\n key: \"show\",\n value: function show() {\n var _this35 = this;\n\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n if (!(this.isWithContent() && this._isEnabled)) {\n return;\n }\n\n var showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW);\n var shadowRoot = findShadowRoot(this._element);\n var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n } // A trick to recreate a tooltip in case a new title is given by using the NOT documented `data-bs-original-title`\n // This will be removed later in favor of a `setContent` method\n\n\n if (this.constructor.NAME === 'tooltip' && this.tip && this.getTitle() !== this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML) {\n this._disposePopper();\n\n this.tip.remove();\n this.tip = null;\n }\n\n var tip = this.getTipElement();\n var tipId = getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n\n this._element.setAttribute('aria-describedby', tipId);\n\n if (this._config.animation) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n\n var placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;\n\n var attachment = this._getAttachment(placement);\n\n this._addAttachmentClass(attachment);\n\n var container = this._config.container;\n Data.set(tip, this.constructor.DATA_KEY, this);\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED);\n }\n\n if (this._popper) {\n this._popper.update();\n } else {\n this._popper = Popper__namespace.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n\n tip.classList.add(CLASS_NAME_SHOW$2);\n\n var customClass = this._resolvePossibleFunction(this._config.customClass);\n\n if (customClass) {\n var _tip$classList;\n\n (_tip$classList = tip.classList).add.apply(_tip$classList, _toConsumableArray(customClass.split(' ')));\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement) {\n var _ref9;\n\n (_ref9 = []).concat.apply(_ref9, _toConsumableArray(document.body.children)).forEach(function (element) {\n EventHandler.on(element, 'mouseover', noop);\n });\n }\n\n var complete = function complete() {\n var prevHoverState = _this35._hoverState;\n _this35._hoverState = null;\n EventHandler.trigger(_this35._element, _this35.constructor.Event.SHOWN);\n\n if (prevHoverState === HOVER_STATE_OUT) {\n _this35._leave(null, _this35);\n }\n };\n\n var isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2);\n\n this._queueCallback(complete, this.tip, isAnimated);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this36 = this;\n\n if (!this._popper) {\n return;\n }\n\n var tip = this.getTipElement();\n\n var complete = function complete() {\n if (_this36._isWithActiveTrigger()) {\n return;\n }\n\n if (_this36._hoverState !== HOVER_STATE_SHOW) {\n tip.remove();\n }\n\n _this36._cleanTipClass();\n\n _this36._element.removeAttribute('aria-describedby');\n\n EventHandler.trigger(_this36._element, _this36.constructor.Event.HIDDEN);\n\n _this36._disposePopper();\n };\n\n var hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n var _ref10;\n\n (_ref10 = []).concat.apply(_ref10, _toConsumableArray(document.body.children)).forEach(function (element) {\n return EventHandler.off(element, 'mouseover', noop);\n });\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n var isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2);\n\n this._queueCallback(complete, this.tip, isAnimated);\n\n this._hoverState = '';\n }\n }, {\n key: \"update\",\n value: function update() {\n if (this._popper !== null) {\n this._popper.update();\n }\n } // Protected\n\n }, {\n key: \"isWithContent\",\n value: function isWithContent() {\n return Boolean(this.getTitle());\n }\n }, {\n key: \"getTipElement\",\n value: function getTipElement() {\n if (this.tip) {\n return this.tip;\n }\n\n var element = document.createElement('div');\n element.innerHTML = this._config.template;\n var tip = element.children[0];\n this.setContent(tip);\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n this.tip = tip;\n return this.tip;\n }\n }, {\n key: \"setContent\",\n value: function setContent(tip) {\n this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TOOLTIP_INNER);\n }\n }, {\n key: \"_sanitizeAndSetContent\",\n value: function _sanitizeAndSetContent(template, content, selector) {\n var templateElement = SelectorEngine.findOne(selector, template);\n\n if (!content && templateElement) {\n templateElement.remove();\n return;\n } // we use append for html objects to maintain js events\n\n\n this.setElementContent(templateElement, content);\n }\n }, {\n key: \"setElementContent\",\n value: function setElementContent(element, content) {\n if (element === null) {\n return;\n }\n\n if (isElement(content)) {\n content = getElement(content); // content is a DOM node or a jQuery\n\n if (this._config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = '';\n element.append(content);\n }\n } else {\n element.textContent = content.textContent;\n }\n\n return;\n }\n\n if (this._config.html) {\n if (this._config.sanitize) {\n content = sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn);\n }\n\n element.innerHTML = content;\n } else {\n element.textContent = content;\n }\n }\n }, {\n key: \"getTitle\",\n value: function getTitle() {\n var title = this._element.getAttribute('data-bs-original-title') || this._config.title;\n\n return this._resolvePossibleFunction(title);\n }\n }, {\n key: \"updateAttachment\",\n value: function updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end';\n }\n\n if (attachment === 'left') {\n return 'start';\n }\n\n return attachment;\n } // Private\n\n }, {\n key: \"_initializeOnDelegatedTarget\",\n value: function _initializeOnDelegatedTarget(event, context) {\n return context || this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n }, {\n key: \"_getOffset\",\n value: function _getOffset() {\n var _this37 = this;\n\n var offset = this._config.offset;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(function (val) {\n return Number.parseInt(val, 10);\n });\n }\n\n if (typeof offset === 'function') {\n return function (popperData) {\n return offset(popperData, _this37._element);\n };\n }\n\n return offset;\n }\n }, {\n key: \"_resolvePossibleFunction\",\n value: function _resolvePossibleFunction(content) {\n return typeof content === 'function' ? content.call(this._element) : content;\n }\n }, {\n key: \"_getPopperConfig\",\n value: function _getPopperConfig(attachment) {\n var _this38 = this;\n\n var defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: \".\".concat(this.constructor.NAME, \"-arrow\")\n }\n }, {\n name: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: function fn(data) {\n return _this38._handlePopperPlacementChange(data);\n }\n }],\n onFirstUpdate: function onFirstUpdate(data) {\n if (data.options.placement !== data.placement) {\n _this38._handlePopperPlacementChange(data);\n }\n }\n };\n return _objectSpread(_objectSpread({}, defaultBsPopperConfig), typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);\n }\n }, {\n key: \"_addAttachmentClass\",\n value: function _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(\"\".concat(this._getBasicClassPrefix(), \"-\").concat(this.updateAttachment(attachment)));\n }\n }, {\n key: \"_getAttachment\",\n value: function _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n }\n }, {\n key: \"_setListeners\",\n value: function _setListeners() {\n var _this39 = this;\n\n var triggers = this._config.trigger.split(' ');\n\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n EventHandler.on(_this39._element, _this39.constructor.Event.CLICK, _this39._config.selector, function (event) {\n return _this39.toggle(event);\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n var eventIn = trigger === TRIGGER_HOVER ? _this39.constructor.Event.MOUSEENTER : _this39.constructor.Event.FOCUSIN;\n var eventOut = trigger === TRIGGER_HOVER ? _this39.constructor.Event.MOUSELEAVE : _this39.constructor.Event.FOCUSOUT;\n EventHandler.on(_this39._element, eventIn, _this39._config.selector, function (event) {\n return _this39._enter(event);\n });\n EventHandler.on(_this39._element, eventOut, _this39._config.selector, function (event) {\n return _this39._leave(event);\n });\n }\n });\n\n this._hideModalHandler = function () {\n if (_this39._element) {\n _this39.hide();\n }\n };\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this._config.selector) {\n this._config = _objectSpread(_objectSpread({}, this._config), {}, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n }\n }, {\n key: \"_fixTitle\",\n value: function _fixTitle() {\n var title = this._element.getAttribute('title');\n\n var originalTitleType = _typeof(this._element.getAttribute('data-bs-original-title'));\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '');\n\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title);\n }\n\n this._element.setAttribute('title', '');\n }\n }\n }, {\n key: \"_enter\",\n value: function _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW$2) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_SHOW;\n\n if (!context._config.delay || !context._config.delay.show) {\n context.show();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show();\n }\n }, context._config.delay.show);\n }\n }, {\n key: \"_leave\",\n value: function _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_OUT;\n\n if (!context._config.delay || !context._config.delay.hide) {\n context.hide();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide();\n }\n }, context._config.delay.hide);\n }\n }, {\n key: \"_isWithActiveTrigger\",\n value: function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n var dataAttributes = Manipulator.getDataAttributes(this._element);\n Object.keys(dataAttributes).forEach(function (dataAttr) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr];\n }\n });\n config = _objectSpread(_objectSpread(_objectSpread({}, this.constructor.Default), dataAttributes), _typeof(config) === 'object' && config ? config : {});\n config.container = config.container === false ? document.body : getElement(config.container);\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);\n }\n\n return config;\n }\n }, {\n key: \"_getDelegateConfig\",\n value: function _getDelegateConfig() {\n var config = {};\n\n for (var key in this._config) {\n if (this.constructor.Default[key] !== this._config[key]) {\n config[key] = this._config[key];\n }\n } // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n\n\n return config;\n }\n }, {\n key: \"_cleanTipClass\",\n value: function _cleanTipClass() {\n var tip = this.getTipElement();\n var basicClassPrefixRegex = new RegExp(\"(^|\\\\s)\".concat(this._getBasicClassPrefix(), \"\\\\S+\"), 'g');\n var tabClass = tip.getAttribute('class').match(basicClassPrefixRegex);\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(function (token) {\n return token.trim();\n }).forEach(function (tClass) {\n return tip.classList.remove(tClass);\n });\n }\n }\n }, {\n key: \"_getBasicClassPrefix\",\n value: function _getBasicClassPrefix() {\n return CLASS_PREFIX$1;\n }\n }, {\n key: \"_handlePopperPlacementChange\",\n value: function _handlePopperPlacementChange(popperData) {\n var state = popperData.state;\n\n if (!state) {\n return;\n }\n\n this.tip = state.elements.popper;\n\n this._cleanTipClass();\n\n this._addAttachmentClass(this._getAttachment(state.placement));\n }\n }, {\n key: \"_disposePopper\",\n value: function _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n\n this._popper = null;\n }\n } // Static\n\n }], [{\n key: \"Default\",\n get: function get() {\n return Default$3;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$4;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$2;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$3;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Tooltip.getOrCreateInstance(this, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n }\n });\n }\n }]);\n\n return Tooltip;\n }(BaseComponent);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\n\n defineJQueryPlugin(Tooltip);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$3 = 'popover';\n var DATA_KEY$3 = 'bs.popover';\n var EVENT_KEY$3 = \".\".concat(DATA_KEY$3);\n var CLASS_PREFIX = 'bs-popover';\n\n var Default$2 = _objectSpread(_objectSpread({}, Tooltip.Default), {}, {\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\n template: '
' + '
' + '

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