{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/charts-js/utils.js","webpack:///./node_modules/chart.js/dist/chunks/helpers.segment.js","webpack:///./node_modules/chart.js/dist/chart.esm.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///(webpack)/buildin/module.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/@rails/actiontext/node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./app/javascript/components.js","webpack:///./app/components sync [_\\/]component\\.js$","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./app/components/wall_component.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.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","Date","now","CHART_COLORS","red","orange","yellow","green","blue","purple","grey","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","iterator","from","_iterableToArray","_unsupportedIterableToArray","TypeError","_nonIterableSpread","_defineProperty","obj","configurable","writable","_typeof","constructor","_classCallCheck","instance","Constructor","_defineProperties","target","props","length","descriptor","_createClass","protoProps","staticProps","_createForOfIteratorHelper","allowArrayLike","it","F","done","e","_e","f","err","normalCompletion","didErr","step","next","_e2","minLen","toString","slice","test","len","arr2","requestAnimFrame","window","callback","requestAnimationFrame","throttled","fn","thisArg","updateFn","updateArgs","args","ticking","_len","arguments","rest","_key","apply","_toLeftRightCenter","align","_alignStartEnd","start","end","noop","id","uid","isNullOrUndef","type","substr","isObject","isNumberFinite","Number","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toDimension","dimension","endsWith","parseFloat","each","loopable","reverse","keys","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","index","clone$1","source","map","klen","k","isValidKey","indexOf","_merger","options","tval","sval","merge","sources","merger","mergeIf","_mergerIf","indexOfDotOrLength","idx","resolveObjectKey","pos","_capitalize","str","charAt","toUpperCase","defined","isFunction","PI","Math","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","range","niceRange","pow","floor","fraction","isNumber","isNaN","almostEquals","x","y","epsilon","abs","_setMinAndMaxByKey","array","min","max","toRadians","degrees","toDegrees","radians","distanceBetweenPoints","pt1","pt2","sqrt","_angleDiff","a","b","_normalizeAngle","_angleBetween","angle","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","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","hex","h1","h2","eq","_hexString","v","g","isShort","lim","h","p2b","n2b","b2n","n2p","RGB_RE","HUE_RE","hsl2rgbn","undefined","hsv2rgbn","hwb2rgbn","w","rgb","rgb2hsl","calln","hsl2rgb","hue","hueParse","exec","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","j","ok","nk","unpacked","tkeys","replace","parseInt","unpack","transparent","toLowerCase","modHSL","ratio","tmp","clone","proto","assign","fromObject","input","functionParse","rgbParse","Color","this","ret","_rgb","_valid","concat","_hslString","color","weight","w2","c1","c2","w1","val","deg","_rotate","set","index_esm","isPatternOrGradient","CanvasGradient","CanvasPattern","getHoverColor","saturate","darken","hexString","overrides","getScope$1","node","split","_set","root","scope","values","defaults","Defaults","_descriptors","animation","backgroundColor","borderColor","datasets","devicePixelRatio","context","chart","platform","getDevicePixelRatio","elements","events","font","family","size","style","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","_scriptable","startsWith","_indexable","_fallback","_measureText","data","gc","longest","string","textWidth","measureText","width","push","_longestText","arrayOfThings","cache","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","splice","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","round","clearCanvas","canvas","getContext","resetTransform","clearRect","height","drawPoint","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","rotate","drawImage","beginPath","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","left","right","top","bottom","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","text","line","opts","lines","strokeWidth","strokeColor","translation","fillStyle","textAlign","textBaseline","strokeStyle","lineWidth","strokeText","maxWidth","fillText","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","RegExp","FONT_STYLE","toLineHeight","matches","match","_readValueToProps","_step2","objProps","read","prop","_iterator2","toTRBL","toTRBLCorners","toPadding","toFont","fallback","console","warn","toFontString","resolve","inputs","info","cacheable","_lookup","table","cmp","mid","hi","lo","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","listener","stub","_chartjs","listeners","forEach","_arrayUnique","items","Set","add","result","item","_createResolver","scopes","_cache","prefixes","rootScopes","getTarget","_resolve","Proxy","deleteProperty","_keys","_cached","_resolveWithPrefixes","getOwnPropertyDescriptor","Reflect","_scopes","getPrototypeOf","has","getKeysFromAllScopes","includes","ownKeys","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_cacheable","_proxy","_context","_subProxy","_stack","setContext","override","receiver","descriptors","isScriptable","Error","join","createSubResolver","_resolveScriptable","isIndexable","filter","_step3","_iterator3","resolver","_resolveArray","needsSubResolver","_resolveWithContext","allKeys","scriptable","indexable","_proxy$_scriptable","_proxy$_indexable","_proxy$_allKeys","_allKeys","readKey","prefix","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","_step4","_iterator4","_rootScopes","allScopes","addScopesFromKey","_getTarget","_step5","_iterator5","_step6","_iterator6","_step7","_iterator7","_step8","_iterator8","resolveKeysFromAllScopes","EPSILON","getPoint","points","skip","splineCurveMonotone","pointBefore","pointCurrent","pointsLen","deltaK","mK","pointAfter","slopeDeltaX","alphaK","betaK","tauK","squaredMagnitude","monotoneAdjust","deltaX","_pointCurrent","monotoneCompute","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","firstPoint","middlePoint","afterPoint","current","d01","d12","s01","s12","fa","fb","spanGaps","cubicInterpolationMode","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","positions","getPositionedStyle","styles","suffix","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","_getCanvasPosition","touches","offsetX","offsetY","box","shadowRoot","useOffsetPos","getBoundingClientRect","clientX","clientY","getCanvasPosition","round1","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","container","containerStyle","containerBorder","containerPadding","clientWidth","clientHeight","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","setTransform","supportsEventListenerOptions","passiveSupported","addEventListener","removeEventListener","readUsedSize","el","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","Map","formatNumber","num","locale","cacheKey","JSON","stringify","formatter","Intl","NumberFormat","getNumberFormat","format","getRtlAdapter","rtl","rectX","_x","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_x2","_itemWidth","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_ref","count","_boundSegment","segment","bounds","prevValue","startBound","endBound","_propertyFn2","_getSegment","_propertyFn","getSegment","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","sub","splitByStyles","segmentOptions","_step9","_iterator9","prevStyle","p0","styleChanged","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","doSplitByStyles","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","getOwnPropertyDescriptors","_get","base","_getPrototypeOf","_superPropBase","desc","_inherits","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","animator","Animator","_request","_charts","_running","_lastDate","anims","date","callbacks","numSteps","duration","initial","currentStep","me","_update","_refresh","remaining","running","draw","_active","_total","tick","pop","_notify","charts","complete","progress","event","cb","_getAnims","_this$_getAnims$items","reduce","acc","cur","_duration","cancel","interpolators","to","factor","c0","valid","mix","number","Animation","cfg","currentValue","_fn","_easing","easing","_start","delay","_loop","_target","_prop","_from","_to","_promises","elapsed","remain","promises","Promise","res","rej","resolved","method","colors","properties","numbers","active","resize","show","animations","visible","hide","Animations","config","_chart","_properties","configure","animatedProps","getOwnPropertyNames","_step","_iterator","option","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","anim","wait","all","awaitAll","then","update","_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","axis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","shift","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","cached","shared","DatasetController","_ctx","_cachedDataOpts","getMeta","_type","_parsing","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","$context","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","_len2","_key2","_dataCheck","datasetElementType","resetNewElements","stackChanged","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","_sorted","parseArrayData","parseObjectData","parsePrimitiveData","labels","getLabels","singleScale","_parsed$i","parse","_this$_parsing","_this$_parsing$xAxisK","xAxisKey","_this$_parsing$yAxisK","yAxisKey","parsedValue","NaN","canStack","otherScale","_getOtherScale","NEGATIVE_INFINITY","_getUserBounds","_scale$getUserBounds","getUserBounds","minDefined","maxDefined","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","label","getLabelForValue","_clip","defaultClip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","raw","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","elementType","sharing","datasetElementScopeKeys","names","resolveNamedOptions","freeze","transition","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","_resolveAnimations","getSharedOptions","_setStyle","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","computeMinSampleSize","curr","$bar","metas","getAllParsedValues","sort","getAllScaleValues","_length","updateMinAndPrev","getPixelForValue","ticks","getPixelForTick","parseValue","entry","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","_DatasetController","BarController","_super","_this$_parsing2","_this$_parsing2$xAxis","_this$_parsing2$yAxis","iAxisKey","vAxisKey","bars","reset","getBasePixel","horizontal","isHorizontal","ruler","_getRuler","firstOpts","includeOptions","updateSharedOptions","vpixels","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","enableBorderRadius","center","updateElement","last","_getStacks","pixels","barThickness","_startPixel","_endPixel","stackCount","_getStackCount","grouped","categoryPercentage","barPercentage","_me$_cachedMeta","_me$options","baseValue","minBarLength","floating","applyStack","getDataVisibility","actualBase","halfGrid","getLineWidthForValue","skipNull","maxBarThickness","Infinity","percent","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","_getStackIndex","rects","_index_","offset","grid","_value_","beginAtZero","_DatasetController2","BubbleController","_super2","_this$_parsing3","_this$_parsing3$xAxis","_this$_parsing3$yAxis","_this$_cachedMeta","_me$_cachedMeta2","getPixelForDecimal","tooltip","title","_DatasetController3","DoughnutController","_super3","_this","innerRadius","outerRadius","circumference","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","cutout","chartWeight","_getRingWeight","_me$_getRotationExten","_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","hidden","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","_me$_cachedMeta3","maxGapLength","directUpdate","prevParsed","nullData","stop","border","lastPoint","updateControlPoints","_DatasetController5","PolarAreaController","_super5","_this2","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","_this3","angleLines","display","circular","pointLabels","PieController","_DoughnutController","_super6","RadarController","_DatasetController6","_super7","_fullLoop","pointPosition","getPointPositionForValue","ScatterController","_LineController","_super8","controllers","_abstract","DateAdapter","timestamp","_format","amount","unit","weekday","members","adapters","_date","binarySearch","metaset","lookupMethod","_reversePixels","getRange","optimizedEvaluateItems","position","handler","getSortedVisibleDatasetMetas","_metasets$i2","_binarySearch","getIntersectItems","useFinalPosition","_minPadding","inRange","getNearestItems","distanceMetric","useX","useY","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","distance","getAxisItems","rangeMethod","intersectsItem","_metasets$i","evaluateAllVisibleItems","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","params","layout","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","other","getMargins","marginForPositions","fitBoxes","boxes","refit","refitBoxes","_updateDims","fullSize","placeBoxes","userPadding","padding","layouts","_layers","z","layoutItem","minPadding","availableWidth","availableHeight","layoutBoxes","wrapBoxes","wrap","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","vBoxMaxWidth","hBoxMaxHeight","setLayoutDims","updatePos","change","handleMaxPadding","BasePlatform","BasicPlatform","_BasePlatform","_super9","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","passive","removeListener","createAttachObserver","observer","MutationObserver","entries","addedNodes","added","observe","document","childList","subtree","createDetachObserver","removedNodes","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","_getRelativePosition$","fromNativeEvent","addListener","_BasePlatform2","DomPlatform","_super10","renderHeight","getAttribute","renderWidth","displayWidth","displayHeight","initCanvas","removeAttribute","setAttribute","proxies","$proxies","attach","detach","Element","_this$getProps","getProps","_final","defaultRoutes","formatters","numeric","tickValue","notation","delta","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","tickLength","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","majorIndices","major","enabled","getMajorIndices","numMajorIndices","first","newTicks","ceil","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","edge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","_Element","Scale","_super11","_this4","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","_me$getUserBounds","getMinMax","xLabels","yLabels","beforeUpdate","minmax","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","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","_me$options2","titleOpts","gridOpts","titleHeight","_me$_getLabelSizes","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","_me$options3","_me$options3$ticks","isRotated","labelsBelowTicks","offsetLeft","offsetRight","_this$options","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","_positionAxisID","_value","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","lineCount","textOffset","tickAndPadding","hTickAndPadding","_getXAxisLabelAlignment","_getYAxisLabelAlignment","_ret","_positionAxisID2","_value2","halfCount","backdrop","labelPadding","_me$options4","_me$options5","_me$options5$ticks","fillRect","findIndex","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","_this$options2","_titleArgs","titleX","titleY","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","tz","gz","axisID","fontSize","TypedRegistry","isPrototypeOf","parentScope","isIChartComponent","register","itemDefaults","routes","propertyParts","sourceName","sourceScope","parts","routeDefaults","registerDefaults","Registry","_typedRegistries","_each","_len3","_key3","_len4","_key4","_len5","_key5","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len10","_key10","typedRegistry","arg","reg","_getRegistryForType","isForType","_exec","itemReg","registry","component","camelMethod","PluginService","_init","hook","_createDescriptors","plugin","cancelable","_oldCache","_notifyStateChanges","getPlugin","_i","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","some","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","_getResolver2","resolverCache","_descriptors2","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","animationOptions","onComplete","onAnimationProgress","onProgress","isDomSupported","getCanvas","getElementById","instances","getChart","Chart","_this5","initialCanvas","existingChart","chartOptionScopes","_initializePlatform","timeout","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","resizeDelay","clearTimeout","setTimeout","listen","_initialize","error","bindEvents","OffscreenCanvas","_resizeBeforeDraw","_resize","newSize","getMaximumSize","oldRatio","newRatio","onResize","render","axisOptions","scaleOpts","updated","isRadial","dposition","dtype","scaleType","getScale","init","hasUpdated","oldIndex","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","order","_updateMetasetIndex","updateIndex","ControllerClass","getController","_defaults$datasets$ty","getElement","_updateMetasets","_resetElements","animsDisabled","ensureScalesHaveIDs","buildOrUpdateScales","setsEqual","unbindEvents","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_updateLayout","_updateDatasets","_eventHandler","noArea","_me$_layers","_idx","_updateDataset","_me$_resizeBeforeDraw","layers","_drawDatasets","_drawDataset","setDatasetVisibility","_updateDatasetVisibility","_destroy","remove","releaseContext","_this$canvas","toDataURL","_add","_remove","detached","isAttached","activeElements","lastActive","_updateHoverStyles","notify","replay","hoverOptions","deactivated","activated","updateHoverStyle","_this6","eventFilter","_handleEvent","_me$_active","lastEvent","getElementsAtEventForMode","_this$options3","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","_parseBorderRadius$","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","_pCenter","_pCenter2","p8","_pCenter3","inner","lineJoin","fullCircles","drawFullCircleBorders","version","unregister","_Element2","ArcElement","_super12","_this7","chartX","chartY","_getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","atan2","getAngleFromPoint","_this$getProps2","_this$getProps3","halfAngle","halfRadius","drawArc","setStyle","lineCap","pathVars","_params$start","paramsStart","_params$end","paramsEnd","segmentStart","segmentEnd","outside","_pathVars","lineMethod","stepped","getLineMethod","_ref2","_ref2$move","fastPathSegment","prevX","lastY","_pathVars2","_ref3","_ref3$move","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","path","_path","strokePathWithCache","segmentMethod","strokePathDirect","_Element3","LineElement","_super13","_this8","_points","_segments","_pointsUpdated","_interpolate","_getInterpolationMethod","_segments$i","interpolated","_findStartAndEnd","findStartAndEnd","solidSegments","_computeSegments","inRange$1","hitRadius","_Element4","PointElement","_super14","_this9","mouseX","mouseY","_this$getProps4","_this$getProps5","hoverRadius","getBarBounds","bar","half","_bar$getProps","parseBorderSkipped","borderSkipped","parseEdge","orig","v2","startEnd","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","outer","_inRange","skipX","skipY","addNormalRectPath","_Element5","BarElement","_super15","_this10","_boundingRects","addRectPath","_this$getProps6","cleanDecimatedDataset","cleanDecimatedData","plugin_decimation","algorithm","beforeElementsUpdate","xAxis","_getStartAndCountOfVi2","_iScale$getUserBounds2","getStartAndCountOfVisiblePointsSimplified","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","destroy","decodeFill","fillOption","parseFillOption","simpleArc","computeBoundary","computeCircularBoundary","_source$scale","computeLinearBoundary","buildStackLine","sourcePoints","linesBelow","below","isLineAndNotInHideAnimation","unshift","getLinesBelow","createBoundaryLine","addPointsBelow","sourcePoint","postponed","_findPoint","findPoint","interpolate","pointValue","linePoints","firstValue","lastValue","boundary","_ref4","_ref4$x","_ref4$y","pointsFromSegments","resolveTarget","propagate","visited","clipY","getBounds","_getEdge","clipBounds","_scale$chart$chartAre","_ref5","interpolatedLineTo","interpolatedPoint","_fill","_step12","tpoints","_step10","_iterator10","_step11","tgt","subBounds","_iterator11","fillSource","_iterator12","_ref7","src","_src$style","_src$style$background","lineLoop","pathSegment","targetLoop","drawfill","getLineByIndex","lineOpts","_ref8","_ref8$above","above","_ref8$below","doFill","plugin_filler","afterDatasetsUpdate","_args","$filler","beforeDraw","drawTime","beforeDatasetsDraw","beforeDatasetDraw","getBoxSize","labelOpts","_labelOpts$boxHeight","boxHeight","_labelOpts$boxWidth","boxWidth","usePointStyle","itemHeight","_Element6","Legend","_super16","_this11","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","labelFont","_computeTitleHeight","_getBoxSize","_fitRows","_fitCols","hitboxes","totalHeight","row","heightLimit","totalWidth","currentColWidth","currentColHeight","col","_me$options6","_step13","_iterator13","hitbox","_step14","_iterator14","_hitbox","_draw","cursor","defaultColor","rtlHelper","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","_this12","_padding","textSize","fontOpts","_me$_drawArgs","_drawArgs","plugin_title","titleBlock","createTitle","positioners","average","hasValue","tooltipPosition","eventPosition","nearestElement","_d","tp","pushOrConcat","toPush","splitNewlines","String","getTooltipSize","body","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","after","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","radiusAndPadding","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","_Element8","Tooltip","_super18","_this13","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","beforeTitle","afterTitle","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","_controller$getLabelA","getLabelAndValue","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","textColor","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","_ref9","positionChanged","_positionChanged","plugin_tooltip","afterInit","afterDraw","labelCount","Decimation","Filler","findOrAddLabel","addIfString","lastIndexOf","_Scale","CategoryScale","_super19","_this14","_startValue","_valueRange","_me$getUserBounds2","_me$getMinMax","getDecimalForPixel","generateTicks$1","generationOptions","dataRange","niceMin","niceMax","numSpaces","rounded","precision","maxTicks","maxDigits","maxSpaces","rmin","rmax","countDefined","minSpacing","_decimalPlaces","_Scale2","LinearScaleBase","_super20","_this15","_endValue","_me$options7","_me$getUserBounds3","setMin","setMax","minSign","maxSign","stepSize","computeTickLimit","getTickLimit","_maxDigits","_LinearScaleBase","LinearScale","_super21","_me$getMinMax2","handleTickRangeOptions","isMajor","tickVal","_Scale3","LogarithmicScale","_super22","_this16","_zero","_me$getMinMax3","_me$getUserBounds4","exp","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","getTextAlignForAngle","adjustPointPositionForLabelHeight","pathRadiusLine","getPointPosition","param","_LinearScaleBase2","RadialLinearScale","_super23","_this17","drawingArea","_pointLabels","_pointLabelItems","_me$getMinMax4","furthestLimits","furthestAngles","valueCount","_opts","plFont","hLimits","vLimits","_setReductions","tickBackdropHeight","outerDistance","extra","pointLabelPosition","_angle","fitWithPointLabels","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","scaledDistance","distanceFromCenter","_this$_pointLabelItem","_me$options8","_scale$_pointLabelIte","drawPointLabels","gridLineOpts","drawRadiusLine","animate","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","_parse","adapter","_adapter","_scale$_parseOpts","_parseOpts","parser","isoWeekday","startOf","determineUnitForAutoTicks","minUnit","capacity","interval","MAX_SAFE_INTEGER","addTick","time","timestamps","_lookup2","ticksFromTimestamps","majorUnit","setMajorTicks","_Scale4","TimeScale","_super24","_this18","_unit","_majorUnit","_offsets","_normalized","displayFormats","formats","normalized","_me$getUserBounds5","_applyBounds","_getLabelBounds","endOf","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","getDecimalForValue","limit","hasWeekday","getDataTimestamps","tooltipFormat","datetime","minorFormat","majorFormat","_tickFormatFunction","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","nextSource","prevTarget","nextTarget","span","_TimeScale","TimeSeriesScale","_super25","_this19","_table","_maxIndex","_getTimestampsForTable","buildLookupTable","registerables","global","factory","noGlobal","getProto","_slice","flat","class2type","hasOwn","fnToString","ObjectFunctionString","support","nodeType","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","code","doc","script","createElement","appendChild","removeChild","toType","jQuery","selector","isArrayLike","jquery","toArray","pushStack","elems","prevObject","elem","even","grep","_elem","odd","extend","copy","copyIsArray","deep","isPlainObject","expando","random","isReady","msg","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","invert","callbackExpect","guid","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","childNodes","els","seed","nid","groups","newSelector","newContext","ownerDocument","getElementsByTagName","getElementsByClassName","qsa","testContext","toSelector","querySelectorAll","qsaError","cacheLength","markFunction","assert","addHandle","attrs","attrHandle","siblingCheck","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","attachEvent","className","createComment","getById","getElementsByName","attrId","find","getAttributeNode","tag","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","sortDetached","aup","ap","bp","expr","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","tokens","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","unique","isXMLDoc","escapeSelector","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","sibling","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","content","rnothtmlwhite","Identity","Thrower","ex","adoptValue","reject","noValue","promise","fail","Callbacks","_","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","fire","once","stopOnFalse","empty","disable","lock","locked","fireWith","fired","Deferred","func","tuples","_state","_promise","state","always","deferred","pipe","fns","newDefer","tuple","returned","onFulfilled","onRejected","maxDepth","depth","special","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","master","updateFunc","rerrorNames","message","readyException","readyList","completed","readyWait","readyState","doScroll","access","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","owner","Data","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","getData","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","defer","pnum","rcssNum","cssExpand","composed","getRootNode","isHiddenWithinTree","css","adjustCSS","valueParts","tween","adjusted","maxIterations","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","wrapMap","thead","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","fragment","nodes","htmlPrefilter","createTextNode","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","_on","types","one","origFn","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","matchedHandlers","matchedSelectors","button","addProp","originalEvent","load","noBubble","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","altKey","bubbles","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","pointerId","pointerType","screenX","screenY","targetTouches","toElement","which","focus","blur","mouseenter","mouseleave","related","on","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","append","prepend","insertBefore","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","insert","rnumnonpx","getStyles","opener","swap","old","rboxStyle","curCSS","computed","minWidth","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","trChild","trStyle","cssPrefixes","emptyStyle","vendorProps","finalPropName","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","isBorderBox","computedVal","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","cssHooks","origName","isCustomProp","scrollboxSizeBuggy","expand","expanded","propHooks","run","eased","fx","scrollTop","scrollLeft","swing","fxNow","inProgress","rfxtypes","rrun","schedule","createFxNow","genFx","includeWidth","createTween","tweeners","stopped","prefilters","currentTime","startTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","timer","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","1223","xhrSupported","cors","_callback","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","_callback2","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","fnOver","fnOut","holdReady","hold","parseJSON","isNumeric","trim","_jQuery","_$","$","noConflict","webpackPolyfill","deprecate","paths","Function","isBrowser","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","called","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","Node","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","modifier","getBordersSize","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","_extends","getClientRect","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","modifiers","ends","isDestroyed","arrowStyles","flipped","positionFixed","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","setupEventListeners","updateBound","scrollElement","attachToScrollParents","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","setStyles","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","toValue","index2","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","applyStyle","onLoad","modifierOptions","Popper","Utils","PopperUtils","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","substring","rhex","toUtf8","unescape","hexToBinaryString","bytes","SparkMD5","ArrayBuffer","clamp","targetArray","sourceArray","byteLength","begin","Uint8Array","appendBinary","_buff","_hash","buff","_finish","getState","setState","hashBinary","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","dispatchEvent","eventInit","createEvent","initEvent","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","csrfToken","getMetaValue","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","methodName","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","alert","uploadRequestDidProgress","DirectUploadsController","form","files","createDirectUploadControllers","startNextController","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","enable","submitForm","ActiveStorage","generateGraphData","dates","tide_level","require","popover","setupTideLevelGraph","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","setData","csrfParam","CSRFProtection","refreshCSRFTokens","CustomEvent","initCustomEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","OPENED","accept","withCredentials","DONE","isCrossDomain","serializeElement","additionalParam","formElements","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","action","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","Turbolinks","supported","history","pushState","visit","setProgressBarDelay","copyObject","ELEMENT_NODE","throttle","u","uuid","Location","absoluteURL","requestURL","anchor","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isPrefixedBy","isEqualTo","toCacheKey","valueOf","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","lengthComputable","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","refresh","trickleInterval","setInterval","clearInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","findMetaElementByName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","touch","put","write","Visit","performScroll","_t8","timingMetrics","recordTimingMetric","request","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTime","getTimingMetrics","snapshotCached","frame","_t9","Controller","clickBubbled","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","nodeIsVisitable","currentScript","channels","webpackEmptyContext","req","_handled","_deferreds","setImmediate","race","_setImmediateFn","_setUnhandledRejectionFn","customElements","registerElement","uid_","takeRecords","nodes_","removeTransientObservers","callback_","enqueue","records_","previousSibling","attributeName","attributeNamespace","oldValue","transientObservedNodes","JsMutationObserver","postMessage","ShadowDOMPolyfill","wrapIfNeeded","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","addListeners_","removeListeners_","addTransientObserver","attrName","relatedNode","attrChange","MutationEvent","ADDITION","_isPolyfilled","performance","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","Boolean","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","useNative","HTMLImports","olderShadowRoot","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","URL","_URL","localName","group","DOCUMENT_FRAGMENT_NODE","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","createdCallback","HTMLElement","HTMLTemplateElement","decorate","getRegisteredDefinition","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","createElementNS","__name","lifecycle","ancestry","reservedTagList","readyTime","unwrapIfNeeded","__importsParsingHook","eager","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","fromJSONString","fromJSON","hasSameConstructorAs","contentsForInspection","toJSONString","toUTF16String","UTF16String","getCacheKey","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","summarizeStringChange","_n","utf16String","codepoints","fromCodepoints","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","_s","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","classList","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","connect","initialized","connectedCallback","disconnectedCallback","_n2","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","startContainer","endContainer","dataTransferIsPlainText","dataTransferIsWritable","keyEventIsKeyboardCommand","RTL_PATTERN","getDirection","dirName","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","isEmpty","toObject","ObjectGroup","objects","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","ObjectMap","ElementStore","trixStoreKey","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","attachFiles","bold","bullets","captionPlaceholder","heading1","indent","italic","link","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","plaintext","bulletList","bullet","numberList","exclusive","fileSize","toFixed","inheritable","fontStyle","groupTagName","frozen","serializers","Document","fromHTML","toSerializableDocument","DocumentView","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","keyNames","13","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","fileInputId","ObjectView","childViews","rootView","getNodes","createNodes","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","didMutate","_h","mutations","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","InputController","mutationObserver","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","eventName","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","paste","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","control","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","isEnded","getSelectedDocument","Files","inputController","isSignificant","insertPlaceholder","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","startOffset","endOffset","AttachmentEditorController","attachmentPiece","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","trixAction","getFilename","getFormattedFilesize","placeholder","getCaption","scrollHeight","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","getContent","createCaptionElement","isPending","getUploadProgress","getCaptionConfig","getType","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","block","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","didSync","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","Image","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","nextNode","currentNode","elementIsRemovable","sanitizeElement","previousElementSibling","elementIsForbidden","elementIsntSerializable","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","findBlockElementAncestors","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","_t18","undoManager","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","SelectionChangeObserver","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","queryCommandSupported","execCommand","inputElement","editorController","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","Timeout","clearFn","_id","_clearFn","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","env","argv","versions","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","_interopDefaultLegacy","$__default","Popper__default","transitionEndEmulator","Util","TRANSITION_END","triggerTransitionEnd","getUID","getSelectorFromElement","hrefAttr","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","supportsTransitionEnd","isElement","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","findShadowRoot","attachShadow","ShadowRoot","jQueryDetection","emulateTransitionEnd","NAME","JQUERY_NO_CONFLICT","Alert","_proto","rootElement","_getRootElement","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","JQUERY_NO_CONFLICT$1","Button","shouldAvoidTriggerChange","triggerChangeEvent","addAriaPressed","avoidTriggerChange","initialButton","inputBtn","_button","NAME$2","EVENT_KEY$2","JQUERY_NO_CONFLICT$2","Default","keyboard","slide","pause","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_slide","nextWhenVisible","cycle","visibilityState","activeIndex","_getItemIndex","_handleSwipe","absDeltax","_keydown","_addTouchEventListeners","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","slideEvent","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","defaultInterval","CLASS_NAME_ACTIVE$1","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$3","JQUERY_NO_CONFLICT$3","Default$1","DefaultType$1","Collapse","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","_getDimension","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$trigger","$target","NAME$4","JQUERY_NO_CONFLICT$4","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","Default$2","popperConfig","DefaultType$2","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","_getPopperConfig","hideEvent","_getPlacement","$parentDropdown","_getOffset","toggles","clickEvent","dropdownMenu","_dataApiKeydownHandler","EVENT_CLICK_DATA_API$4","JQUERY_NO_CONFLICT$5","Default$3","DefaultType$3","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","modalTransitionDuration","modalBody","_enforceFocus","shownEvent","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","scrollDiv","scrollbarWidth","uriAttrs","DefaultWhitelist","br","em","hr","h3","h4","h5","h6","img","li","ol","pre","small","sup","strong","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","whitelistKeys","elName","attributeList","whitelistedAttributes","allowedAttributeList","regExp","attrRegex","allowedAttribute","NAME$6","JQUERY_NO_CONFLICT$6","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType$4","template","fallbackPlacement","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$4","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","_hideModalHandler","isWithContent","isInTheDom","tipId","setContent","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE$2","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","$tip","tabClass","popperData","initConfigAnimation","NAME$7","JQUERY_NO_CONFLICT$7","BSCLS_PREFIX_REGEX$1","Default$5","DefaultType$5","Event$1","Popover","_Tooltip","_getContent","CLASS_PREFIX$1","CLASS_NAME_FADE$3","NAME$8","JQUERY_NO_CONFLICT$8","Default$6","DefaultType$6","ScrollSpy","_scrollElement","_targets","_activeTarget","_scrollHeight","_process","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","SELECTOR_NAV_LINKS","scrollSpys","$spy","JQUERY_NO_CONFLICT$9","listElement","itemSelector","hiddenEvent","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","JQUERY_NO_CONFLICT$a","DefaultType$7","autohide","Default$7","Toast","_clearTimeout","_close","Scrollspy","webpackContext","webpackContextResolve","ssrDocument","importNode","hostname","origin","pathname","ssrWindow","replaceState","go","back","screen","matchMedia","_construct","Parent","Class","_wrapNativeSuper","Wrapper","Dom7","_Array","arrayFlat","arrayFilter","toCreate","tempParent","uniqueArray","arrayUnique","noTrigger","shortcut","Methods","_el$classList","_el$classList2","capture","handleLiveEvent","eventData","dom7EventData","_parents","_event","dom7LiveListeners","proxyListener","dom7Listeners","dom7proxy","transitionEnd","fireCallBack","includeMargins","_styles","_styles2","clientTop","clientLeft","scrollY","scrollX","compareWith","child","returnIndex","newChild","tempDiv","nextEls","_next","prevEls","_prev","foundElements","found","keysArray","nextIndex","nextKey","bindModuleMethods","subKey","getSupport","DocumentTouch","pointerEvents","passiveListener","supportsPassive","gestures","calcSupport","getDevice","_temp","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","calcBrowser","swiper","resizeHandler","destroyed","orientationChangeHandler","Observer","WebkitMutationObserver","observerUpdate","observers","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","onTouchStart","touchEventsData","animating","preventInteractionOnTransition","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","isTouched","isMoved","noSwipingClass","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","currentY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","rtlTranslate","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","maxTranslate","minTranslate","diffX","diffY","touchAngle","cssMode","touchMoveStopPropagation","nested","loopFix","startTranslate","getTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","updateProgress","setTranslate","onTouchEnd","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","slides","freeModeMomentum","lastMoveEvent","velocityEvent","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","moveDistance","currentSlideSize","slidesSizesGrid","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","previousTranslate","scrollWidth","translatesDiff","dummyEventAttached","dummyEventListener","initialSlide","updateOnWindowResize","autoHeight","setWrapperSize","virtualTranslate","effect","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","modular","useParams","instanceParams","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","getDirectionLabel","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","newSlideOrderIndex","column","groupIndex","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","_slide$","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","slideEl","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","visibleSlides","swiperSlideOffset","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","slideFound","clickedSlide","clickedIndex","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","onTranslateToWrapperTransitionEnd","indexAsNumber","normalizedTranslate","normalizedGird","normalizedGridNext","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","prevIndex","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","loopDestroy","moving","isLocked","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","minRatio","_points$i","wasLocked","lastSlidePosition","addClasses","resultClasses","suffixes","removeClasses","images","loadImage","imageEl","srcset","checkForComplete","onReady","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","containerEl","newParams","moduleParamName","desktop","swiperParams","passedParams","touchEventsTouch","touchEventsDesktop","clickTimeout","getSlideClasses","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","Navigation","_swiper$navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","toEdge","fromEdge","isHidden","_swiper$navigation3","Pagination","pagination","paginationType","firstIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scaleX","scaleY","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Wall","initSwiper","swiperEl","swiperMobile","swiperElDesktop","swiperDesktop","wallEl","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-1803694223f56b8fb492.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 = 7);\n","//import colorLib from '@kurkle/color';\n\n// Adapted from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\nvar _seed = Date.now();\n\nexport function srand(seed) {\n _seed = seed;\n}\n\n\nexport function points(config) {\n const xs = this.numbers(config);\n const ys = this.numbers(config);\n return xs.map((x, i) => ({x, y: ys[i]}));\n}\n\nexport function bubbles(config) {\n return this.points(config).map(pt => {\n pt.r = this.rand(config.rmin, config.rmax);\n return pt;\n });\n}\n\nexport function labels(config) {\n var cfg = config || {};\n var min = cfg.min || 0;\n var max = cfg.max || 100;\n var count = cfg.count || 8;\n var step = (max - min) / count;\n var decimals = cfg.decimals || 8;\n var dfactor = Math.pow(10, decimals) || 0;\n var prefix = cfg.prefix || '';\n var values = [];\n var i;\n\n for (i = min; i < max; i += step) {\n values.push(prefix + Math.round(dfactor * i) / dfactor);\n }\n\n return values;\n}\n\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n];\n\nexport function months(config) {\n var cfg = config || {};\n var count = cfg.count || 12;\n var section = cfg.section;\n var values = [];\n var i, value;\n\n for (i = 0; i < count; ++i) {\n value = MONTHS[Math.ceil(i) % 12];\n values.push(value.substring(0, section));\n }\n\n return values;\n}\n\nconst COLORS = [\n '#4dc9f6',\n '#f67019',\n '#f53794',\n '#537bc4',\n '#acc236',\n '#166a8f',\n '#00a950',\n '#58595b',\n '#8549ba'\n];\n\nexport function color(index) {\n return COLORS[index % COLORS.length];\n}\n\nexport function transparentize(value, opacity) {\n var alpha = opacity === undefined ? 0.5 : 1 - opacity;\n //return colorLib(value).alpha(alpha).rgbString();\n}\n\nexport const CHART_COLORS = {\n red: 'rgb(255, 99, 132)',\n orange: 'rgb(255, 159, 64)',\n yellow: 'rgb(255, 205, 86)',\n green: 'rgb(75, 192, 192)',\n blue: 'rgb(54, 162, 235)',\n purple: 'rgb(153, 102, 255)',\n grey: 'rgb(201, 203, 207)'\n};\n\nconst NAMED_COLORS = [\n CHART_COLORS.red,\n CHART_COLORS.orange,\n CHART_COLORS.yellow,\n CHART_COLORS.green,\n CHART_COLORS.blue,\n CHART_COLORS.purple,\n CHART_COLORS.grey,\n];\n\nexport function namedColor(index) {\n return NAMED_COLORS[index % NAMED_COLORS.length];\n}\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\" && Symbol.iterator in Object(iter)) 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; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { 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 = o[Symbol.iterator](); }, 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.2.1\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 if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay);\n } else {\n fn();\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) {\n return align === 'right' ? 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 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) {\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 || 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: \"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 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\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 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\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 ctx.font = font.string;\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 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\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 y += font.lineHeight;\n }\n\n ctx.restore();\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) {\n var min = minmax.min,\n max = minmax.max;\n return {\n min: min - Math.abs(toDimension(grace, min)),\n max: max + toDimension(grace, max)\n };\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 _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\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 var result = [];\n set.forEach(function (item) {\n result.push(item);\n });\n return result;\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 var value = target[prop];\n\n if (defined(value)) {\n return value;\n }\n\n value = resolve();\n\n if (defined(value)) {\n target[prop] = value;\n }\n\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: ' + _toConsumableArray(_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(_toConsumableArray(set), [''], rootScopes, fallback, function () {\n var parent = resolver._getTarget();\n\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n\n return parent[prop];\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 _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 _toConsumableArray(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\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 pointsLen = points.length;\n var deltaX, 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 _pointCurrent = pointCurrent,\n x = _pointCurrent.x,\n y = _pointCurrent.y;\n\n if (pointBefore) {\n deltaX = (x - pointBefore.x) / 3;\n pointCurrent.cp1x = x - deltaX;\n pointCurrent.cp1y = y - deltaX * mK[i];\n }\n\n if (pointAfter) {\n deltaX = (pointAfter.x - x) / 3;\n pointCurrent.cp2x = x + deltaX;\n pointCurrent.cp2y = y + deltaX * mK[i];\n }\n }\n}\n\nfunction splineCurveMonotone(points) {\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 slopeDeltaX = pointAfter.x - pointCurrent.x;\n deltaK[i] = slopeDeltaX !== 0 ? (pointAfter.y - pointCurrent.y) / slopeDeltaX : 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);\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) {\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);\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 _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 = chart.currentDevicePixelRatio = forceRatio || 1;\n var canvas = chart.canvas,\n width = chart.width,\n height = chart.height;\n canvas.height = height * pixelRatio;\n canvas.width = width * pixelRatio;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = height + 'px';\n canvas.style.width = width + 'px';\n }\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 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([{\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(solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\nfunction splitByStyles(segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n\n return doSplitByStyles(segments, points, segmentOptions);\n}\n\nfunction doSplitByStyles(segments, points, segmentOptions) {\n var count = points.length;\n var result = [];\n var start = segments[0].start;\n var i = start;\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 var prevStyle = void 0,\n style = void 0;\n var prev = points[start % count];\n\n for (i = start + 1; i <= segment.end; i++) {\n var pt = points[i % count];\n style = readStyle(segmentOptions.setContext({\n type: 'segment',\n p0: prev,\n p1: pt\n }));\n\n if (styleChanged(style, prevStyle)) {\n result.push({\n start: start,\n end: i - 1,\n loop: segment.loop,\n style: prevStyle\n });\n prevStyle = style;\n start = i - 1;\n }\n\n prev = pt;\n prevStyle = style;\n }\n\n if (start < i - 1) {\n result.push({\n start: start,\n end: i - 1,\n loop: segment.loop,\n style: style\n });\n start = i - 1;\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 { merge as $, _isPointInArea as A, _rlookupByKey as B, toPadding as C, each as D, getMaximumSize as E, _getParentNode as F, readUsedSize as G, HALF_PI as H, throttled as I, supportsEventListenerOptions 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, renderText as V, toFont as W, _toLeftRightCenter as X, _alignStartEnd as Y, overrides as Z, _arrayUnique as _, resolve as a, _capitalize as a0, descriptors as a1, isFunction as a2, _attachContext as a3, _createResolver as a4, _descriptors as a5, mergeIf as a6, uid as a7, debounce as a8, retinaScale as a9, niceNum as aA, almostWhole as aB, almostEquals as aC, _decimalPlaces as aD, _longestText as aE, _filterBetween as aF, _lookup as aG, getHoverColor as aH, clone$1 as aI, _merger as aJ, _mergerIf as aK, _deprecated as aL, toFontString as aM, splineCurve as aN, splineCurveMonotone as aO, getStyle as aP, fontString as aQ, toLineHeight as aR, PITAU as aS, INFINITY as aT, RAD_PER_DEG as aU, QUARTER_PI as aV, TWO_THIRDS_PI as aW, _angleDiff as aX, clearCanvas as aa, setsEqual as ab, _elementsEqual as ac, getAngleFromPoint as ad, _readValueToProps as ae, _updateBezierControlPoints as af, _computeSegments as ag, _boundSegments as ah, _steppedInterpolation as ai, _bezierInterpolation as aj, _pointInLine as ak, _steppedLineTo as al, _bezierCurveTo as am, drawPoint as an, addRoundedRectPath as ao, toTRBL as ap, toTRBLCorners as aq, _boundSegment as ar, _normalizeAngle as as, getRtlAdapter as at, overrideTextDirection as au, _textX as av, restoreTextDirection as aw, noop as ax, distanceBetweenPoints as ay, _setMinAndMaxByKey as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, isNullOrUndef as j, clipArea as k, listenArrayEvents as l, unclipArea as m, toPercentage as n, toDimension as o, formatNumber as p, _angleBetween as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, isNumber as w, _limitValue as x, _lookupByKey as y, getRelativePosition 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(target, property, receiver) { 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(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\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; } 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 { Date.prototype.toString.call(Reflect.construct(Date, [], 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 _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; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { 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 = o[Symbol.iterator](); }, 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 _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\" && Symbol.iterator in Object(iter)) 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.2.1\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, i as isObject, b as isArray, d as defaults, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as isNullOrUndef, k as clipArea, m as unclipArea, _ as _arrayUnique, t as toRadians, n as toPercentage, o as toDimension, T as TAU, p as formatNumber, q as _angleBetween, H as HALF_PI, P as PI, w as isNumber, x as _limitValue, y as _lookupByKey, z as getRelativePosition$1, A as _isPointInArea, B as _rlookupByKey, C as toPadding, D as each, E as _getMaximumSize, F as _getParentNode, G as readUsedSize, I as throttled, J as supportsEventListenerOptions, 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 renderText, W as toFont, X as _toLeftRightCenter, Y as _alignStartEnd, Z as overrides, $ as merge, a0 as _capitalize, a1 as descriptors, a2 as isFunction, a3 as _attachContext, a4 as _createResolver, a5 as _descriptors, a6 as mergeIf, a7 as uid, a8 as debounce, a9 as retinaScale, aa as clearCanvas, ab as setsEqual, ac as _elementsEqual, ad as getAngleFromPoint, ae as _readValueToProps, af as _updateBezierControlPoints, ag as _computeSegments, ah as _boundSegments, ai as _steppedInterpolation, aj as _bezierInterpolation, ak as _pointInLine, al as _steppedLineTo, am as _bezierCurveTo, an as drawPoint, ao as addRoundedRectPath, ap as toTRBL, aq as toTRBLCorners, ar as _boundSegment, as as _normalizeAngle, at as getRtlAdapter, au as overrideTextDirection, av as _textX, aw as restoreTextDirection, ax as noop, ay as distanceBetweenPoints, az as _setMinAndMaxByKey, aA as niceNum, aB as almostWhole, aC as almostEquals, aD as _decimalPlaces, aE as _longestText, aF as _filterBetween, aG 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 me = this;\n\n if (me._request) {\n return;\n }\n\n me._running = true;\n me._request = requestAnimFrame.call(window, function () {\n me._update();\n\n me._request = null;\n\n if (me._running) {\n me._refresh();\n }\n });\n }\n }, {\n key: \"_update\",\n value: function _update() {\n var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now();\n var me = this;\n var remaining = 0;\n\n me._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 me._notify(chart, anims, date, 'progress');\n }\n\n if (!items.length) {\n anims.running = false;\n\n me._notify(chart, anims, date, 'complete');\n\n anims.initial = false;\n }\n\n remaining += items.length;\n });\n\n me._lastDate = date;\n\n if (remaining === 0) {\n me._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 var me = this;\n\n if (me._active) {\n me._notify(false);\n\n var currentValue = me._target[me._prop];\n var elapsed = date - me._start;\n var remain = me._duration - elapsed;\n me._start = date;\n me._duration = Math.floor(Math.max(remain, cfg.duration));\n me._total += elapsed;\n me._loop = !!cfg.loop;\n me._to = resolve([cfg.to, to, currentValue, cfg.from]);\n me._from = resolve([cfg.from, currentValue, to]);\n }\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n var me = this;\n\n if (me._active) {\n me.tick(Date.now());\n me._active = false;\n\n me._notify(false);\n }\n }\n }, {\n key: \"tick\",\n value: function tick(date) {\n var me = this;\n var elapsed = date - me._start;\n var duration = me._duration;\n var prop = me._prop;\n var from = me._from;\n var loop = me._loop;\n var to = me._to;\n var factor;\n me._active = from !== to && (loop || elapsed < duration);\n\n if (!me._active) {\n me._target[prop] = to;\n\n me._notify(true);\n\n return;\n }\n\n if (elapsed < 0) {\n me._target[prop] = from;\n return;\n }\n\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = me._easing(Math.min(1, Math.max(0, factor)));\n me._target[prop] = me._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 };\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, options) {\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) {\n var _iterator2 = _createForOfIteratorHelper(vScale.getMatchingVisibleMetas('bar').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);\n stack._bottom = getLastIndexInStack(stack, vScale, false);\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 Object.assign(Object.create(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 Object.assign(Object.create(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 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[meta.vScale.id] === undefined || stacks[meta.vScale.id][meta.index] === undefined) {\n return;\n }\n\n delete stacks[meta.vScale.id][meta.index];\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 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.initialize();\n }\n\n _createClass(DatasetController, [{\n key: \"initialize\",\n value: function initialize() {\n var me = this;\n var meta = me._cachedMeta;\n me.configure();\n me.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n me.addElements();\n }\n }, {\n key: \"updateIndex\",\n value: function updateIndex(datasetIndex) {\n this.index = datasetIndex;\n }\n }, {\n key: \"linkScales\",\n value: function linkScales() {\n var me = this;\n var chart = me.chart;\n var meta = me._cachedMeta;\n var dataset = me.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 = me.getScaleForId(xid);\n meta.yScale = me.getScaleForId(yid);\n meta.rScale = me.getScaleForId(rid);\n meta.iScale = me.getScaleForId(iid);\n meta.vScale = me.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 me = this;\n var dataset = me.getDataset();\n var data = dataset.data || (dataset.data = []);\n\n if (isObject(data)) {\n me._data = convertObjectDataToArray(data);\n } else if (me._data !== data) {\n if (me._data) {\n unlistenArrayEvents(me._data, me);\n clearStacks(me._cachedMeta);\n }\n\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, me);\n }\n\n me._data = data;\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var me = this;\n var meta = me._cachedMeta;\n\n me._dataCheck();\n\n if (me.datasetElementType) {\n meta.dataset = new me.datasetElementType();\n }\n }\n }, {\n key: \"buildOrUpdateElements\",\n value: function buildOrUpdateElements(resetNewElements) {\n var me = this;\n var meta = me._cachedMeta;\n var dataset = me.getDataset();\n var stackChanged = false;\n\n me._dataCheck();\n\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 me._resyncElements(resetNewElements);\n\n if (stackChanged) {\n updateStacks(me, meta._parsed);\n }\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var me = this;\n var config = me.chart.config;\n var scopeKeys = config.datasetScopeKeys(me._type);\n var scopes = config.getOptionScopes(me.getDataset(), scopeKeys, true);\n me.options = config.createResolver(scopes, me.getContext());\n me._parsing = me.options.parsing;\n }\n }, {\n key: \"parse\",\n value: function parse(start, count) {\n var me = this;\n var meta = me._cachedMeta,\n data = me._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 (me._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = me.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = me.parseObjectData(meta, data, start, count);\n } else {\n parsed = me.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(me, 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 range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n value = _applyStack(stack, parsedValue, this._cachedMeta.index, {\n all: true\n });\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 me = this;\n var meta = me._cachedMeta;\n var _parsed = meta._parsed;\n var sorted = meta._sorted && scale === meta.iScale;\n var ilen = _parsed.length;\n\n var otherScale = me._getOtherScale(scale);\n\n var stack = canStack && meta._stacked && {\n keys: getSortedDatasetIndices(me.chart, true),\n values: null\n };\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, value, parsed, otherValue;\n\n function _skip() {\n parsed = _parsed[i];\n value = parsed[scale.axis];\n otherValue = parsed[otherScale.axis];\n return !isNumberFinite(value) || otherMin > otherValue || otherMax < otherValue;\n }\n\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n\n me.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 me.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 me = this;\n var meta = me._cachedMeta;\n var iScale = meta.iScale;\n var vScale = meta.vScale;\n var parsed = me.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 me = this;\n var meta = me._cachedMeta;\n me.configure();\n me._cachedDataOpts = {};\n me.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(me.options.clip, defaultClip(meta.xScale, meta.yScale, me.getMaxOverflow())));\n }\n }, {\n key: \"update\",\n value: function update(mode) {}\n }, {\n key: \"draw\",\n value: function draw() {\n var me = this;\n var ctx = me._ctx;\n var chart = me.chart;\n var meta = me._cachedMeta;\n var elements = meta.data || [];\n var area = chart.chartArea;\n var active = [];\n var start = me._drawStart || 0;\n var count = me._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.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 me = this;\n var dataset = me.getDataset();\n var context;\n\n if (index >= 0 && index < me._cachedMeta.data.length) {\n var element = me._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(me.getContext(), index, element));\n context.parsed = me.getParsed(index);\n context.raw = dataset.data[index];\n } else {\n context = me.$context || (me.$context = createDatasetContext(me.chart.getContext(), me.index));\n context.dataset = dataset;\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 mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n var index = arguments.length > 2 ? arguments[2] : undefined;\n var me = this;\n var active = mode === 'active';\n var cache = me._cachedDataOpts;\n var cacheKey = elementType + '-' + mode;\n var cached = cache[cacheKey];\n var sharing = me.enableOptionSharing && defined(index);\n\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n\n var config = me.chart.config;\n var scopeKeys = config.datasetElementScopeKeys(me._type, elementType);\n var prefixes = active ? [\"\".concat(elementType, \"Hover\"), 'hover', elementType, ''] : [elementType, ''];\n var scopes = config.getOptionScopes(me.getDataset(), scopeKeys);\n var names = Object.keys(defaults.elements[elementType]);\n\n var context = function context() {\n return me.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 me = this;\n var chart = me.chart;\n var cache = me._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 = me.chart.config;\n var scopeKeys = config.datasetAnimationScopeKeys(me._type, transition);\n var scopes = config.getOptionScopes(me.getDataset(), scopeKeys);\n options = config.createResolver(scopes, me.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 me = this;\n var numMeta = me._cachedMeta.data.length;\n var numData = me._data.length;\n\n if (numData > numMeta) {\n me._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n me._removeElements(numData, numMeta - numData);\n }\n\n var count = Math.min(numData, numMeta);\n\n if (count) {\n me.parse(0, count);\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 me = this;\n var meta = me._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 me.dataElementType();\n }\n\n if (me._parsing) {\n move(meta._parsed);\n }\n\n me.parse(start, count);\n\n if (resetNewElements) {\n me.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 me = this;\n var meta = me._cachedMeta;\n\n if (me._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: \"_onDataPush\",\n value: function _onDataPush() {\n var count = arguments.length;\n\n this._insertElements(this.getDataset().data.length - count, count);\n }\n }, {\n key: \"_onDataPop\",\n value: function _onDataPop() {\n this._removeElements(this._cachedMeta.data.length - 1, 1);\n }\n }, {\n key: \"_onDataShift\",\n value: function _onDataShift() {\n this._removeElements(0, 1);\n }\n }, {\n key: \"_onDataSplice\",\n value: function _onDataSplice(start, count) {\n this._removeElements(start, count);\n\n this._insertElements(start, arguments.length - 2);\n }\n }, {\n key: \"_onDataUnshift\",\n value: function _onDataUnshift() {\n this._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) {\n if (!scale._cache.$bar) {\n var metas = scale.getMatchingVisibleMetas('bar');\n var values = [];\n\n for (var i = 0, ilen = metas.length; i < ilen; i++) {\n values = values.concat(metas[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(scale) {\n var values = getAllScaleValues(scale);\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\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: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var me = this;\n var meta = me._cachedMeta;\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var parsed = me.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 var me = this;\n me.enableOptionSharing = true;\n\n _get(_getPrototypeOf(BarController.prototype), \"initialize\", this).call(this);\n\n var meta = me._cachedMeta;\n meta.stack = me.getDataset().stack;\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var me = this;\n var meta = me._cachedMeta;\n me.updateElements(meta.data, 0, meta.data.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(bars, start, count, mode) {\n var me = this;\n var reset = mode === 'reset';\n var vScale = me._cachedMeta.vScale;\n var base = vScale.getBasePixel();\n var horizontal = vScale.isHorizontal();\n\n var ruler = me._getRuler();\n\n var firstOpts = me.resolveDataElementOptions(start, mode);\n var sharedOptions = me.getSharedOptions(firstOpts);\n var includeOptions = me.includeOptions(mode, sharedOptions);\n me.updateSharedOptions(sharedOptions, mode, firstOpts);\n\n for (var i = start; i < start + count; i++) {\n var parsed = me.getParsed(i);\n var vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base: base,\n head: base\n } : me._calculateBarValuePixels(i);\n\n var ipixels = me._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) || me.index === stack._top || me.index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : undefined,\n width: horizontal ? undefined : ipixels.size\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || me.resolveDataElementOptions(i, mode);\n }\n\n me.updateElement(bars[i], i, properties, mode);\n }\n }\n }, {\n key: \"_getStacks\",\n value: function _getStacks(last, dataIndex) {\n var me = this;\n var meta = me._cachedMeta;\n var iScale = meta.iScale;\n var metasets = iScale.getMatchingVisibleMetas(me._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 (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 me = this;\n var opts = me.options;\n var meta = me._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(me.getParsed(i)[iScale.axis], i));\n }\n\n var barThickness = opts.barThickness;\n var min = barThickness || computeMinSampleSize(iScale);\n return {\n min: min,\n pixels: pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: me._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 me = this;\n var _me$_cachedMeta = me._cachedMeta,\n vScale = _me$_cachedMeta.vScale,\n _stacked = _me$_cachedMeta._stacked;\n var _me$options = me.options,\n baseValue = _me$options.base,\n minBarLength = _me$options.minBarLength;\n var parsed = me.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 ? me.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 (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n size = size < 0 ? -minBarLength : minBarLength;\n\n if (value === 0) {\n base -= size / 2;\n }\n\n head = base + size;\n }\n\n var actualBase = baseValue || 0;\n\n if (base === vScale.getPixelForValue(actualBase)) {\n var halfGrid = vScale.getLineWidthForValue(actualBase) / 2;\n\n if (size > 0) {\n base += halfGrid;\n size -= halfGrid;\n } else if (size < 0) {\n base -= halfGrid;\n size += halfGrid;\n }\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 me = this;\n var scale = ruler.scale;\n var options = me.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 ? me._getStackCount(index) : ruler.stackCount;\n var range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount) : computeFitCategoryTraits(index, ruler, options, stackCount);\n\n var stackIndex = me._getStackIndex(me.index, me._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(me.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 me = this;\n var chart = me.chart;\n var meta = me._cachedMeta;\n var vScale = meta.vScale;\n var rects = meta.data;\n var ilen = rects.length;\n var i = 0;\n clipArea(chart.ctx, chart.chartArea);\n\n for (; i < ilen; ++i) {\n if (me.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(me._ctx);\n }\n }\n\n unclipArea(chart.ctx);\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 interaction: {\n mode: 'index'\n },\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: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var _this$_parsing3 = this._parsing,\n _this$_parsing3$xAxis = _this$_parsing3.xAxisKey,\n xAxisKey = _this$_parsing3$xAxis === void 0 ? 'x' : _this$_parsing3$xAxis,\n _this$_parsing3$yAxis = _this$_parsing3.yAxisKey,\n yAxisKey = _this$_parsing3$yAxis === void 0 ? 'y' : _this$_parsing3$yAxis;\n var parsed = [];\n var i, ilen, item;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n item = data[i];\n parsed.push({\n x: xScale.parse(resolveObjectKey(item, xAxisKey), i),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), i),\n _custom: item && item.r && +item.r\n });\n }\n\n return parsed;\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n var _this$_cachedMeta = this._cachedMeta,\n data = _this$_cachedMeta.data,\n _parsed = _this$_cachedMeta._parsed;\n var max = 0;\n\n for (var i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size() / 2, _parsed[i]._custom);\n }\n\n return max > 0 && max;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var me = this;\n var meta = me._cachedMeta;\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var parsed = me.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 me = this;\n var points = me._cachedMeta.data;\n me.updateElements(points, 0, points.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var me = this;\n var reset = mode === 'reset';\n var _me$_cachedMeta2 = me._cachedMeta,\n xScale = _me$_cachedMeta2.xScale,\n yScale = _me$_cachedMeta2.yScale;\n var firstOpts = me.resolveDataElementOptions(start, mode);\n var sharedOptions = me.getSharedOptions(firstOpts);\n var includeOptions = me.includeOptions(mode, sharedOptions);\n\n for (var i = start; i < start + count; i++) {\n var point = points[i];\n var parsed = !reset && me.getParsed(i);\n var x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(parsed.x);\n var y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(parsed.y);\n var properties = {\n x: x,\n y: y,\n skip: isNaN(x) || isNaN(y)\n };\n\n if (includeOptions) {\n properties.options = me.resolveDataElementOptions(i, mode);\n\n if (reset) {\n properties.options.radius = 0;\n }\n }\n\n me.updateElement(point, i, properties, mode);\n }\n\n me.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) ? 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) ? -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 _this;\n\n _classCallCheck(this, DoughnutController);\n\n _this = _super3.call(this, chart, datasetIndex);\n _this.enableOptionSharing = true;\n _this.innerRadius = undefined;\n _this.outerRadius = undefined;\n _this.offsetX = undefined;\n _this.offsetY = undefined;\n return _this;\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 var i, ilen;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = +data[i];\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 var me = this;\n\n for (var i = 0; i < me.chart.data.datasets.length; ++i) {\n if (me.chart.isDatasetVisible(i)) {\n var controller = me.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 me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var meta = me._cachedMeta;\n var arcs = meta.data;\n var spacing = me.getMaxBorderWidth() + me.getMaxOffset(arcs);\n var maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n var cutout = Math.min(toPercentage(me.options.cutout, maxSize), 1);\n\n var chartWeight = me._getRingWeight(me.index);\n\n var _me$_getRotationExten = me._getRotationExtents(),\n circumference = _me$_getRotationExten.circumference,\n rotation = _me$_getRotationExten.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(me.options.radius, maxRadius);\n var innerRadius = Math.max(outerRadius * cutout, 0);\n\n var radiusLength = (outerRadius - innerRadius) / me._getVisibleDatasetWeightTotal();\n\n me.offsetX = offsetX * outerRadius;\n me.offsetY = offsetY * outerRadius;\n meta.total = me.calculateTotal();\n me.outerRadius = outerRadius - radiusLength * me._getRingWeightOffset(me.index);\n me.innerRadius = Math.max(me.outerRadius - radiusLength * chartWeight, 0);\n me.updateElements(arcs, 0, arcs.length, mode);\n }\n }, {\n key: \"_circumference\",\n value: function _circumference(i, reset) {\n var me = this;\n var opts = me.options;\n var meta = me._cachedMeta;\n\n var circumference = me._getCircumference();\n\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null) {\n return 0;\n }\n\n return me.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(arcs, start, count, mode) {\n var me = this;\n var reset = mode === 'reset';\n var chart = me.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 : me.innerRadius;\n var outerRadius = animateScale ? 0 : me.outerRadius;\n var firstOpts = me.resolveDataElementOptions(start, mode);\n var sharedOptions = me.getSharedOptions(firstOpts);\n var includeOptions = me.includeOptions(mode, sharedOptions);\n\n var startAngle = me._getRotation();\n\n var i;\n\n for (i = 0; i < start; ++i) {\n startAngle += me._circumference(i, reset);\n }\n\n for (i = start; i < start + count; ++i) {\n var circumference = me._circumference(i, reset);\n\n var arc = arcs[i];\n var properties = {\n x: centerX + me.offsetX,\n y: centerY + me.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 || me.resolveDataElementOptions(i, mode);\n }\n\n startAngle += circumference;\n me.updateElement(arc, i, properties, mode);\n }\n\n me.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)) {\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 me = this;\n var meta = me._cachedMeta;\n var chart = me.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 me = this;\n var max = 0;\n var chart = me.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 !== me) {\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']\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n indexAxis: 'r'\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 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 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 me = this;\n var meta = me._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 = me.chart._animationsDisabled;\n\n var _getStartAndCountOfVi = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled),\n start = _getStartAndCountOfVi.start,\n count = _getStartAndCountOfVi.count;\n\n me._drawStart = start;\n me._drawCount = count;\n\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n line._decimated = !!_dataset._decimated;\n line.points = points;\n var options = me.resolveDatasetElementOptions(mode);\n\n if (!me.options.showLine) {\n options.borderWidth = 0;\n }\n\n options.segment = me.options.segment;\n me.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options: options\n }, mode);\n me.updateElements(points, start, count, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var me = this;\n var reset = mode === 'reset';\n var _me$_cachedMeta3 = me._cachedMeta,\n xScale = _me$_cachedMeta3.xScale,\n yScale = _me$_cachedMeta3.yScale,\n _stacked = _me$_cachedMeta3._stacked;\n var firstOpts = me.resolveDataElementOptions(start, mode);\n var sharedOptions = me.getSharedOptions(firstOpts);\n var includeOptions = me.includeOptions(mode, sharedOptions);\n var spanGaps = me.options.spanGaps;\n var maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n var directUpdate = me.chart._animationsDisabled || reset || mode === 'none';\n var prevParsed = start > 0 && me.getParsed(start - 1);\n\n for (var i = start; i < start + count; ++i) {\n var point = points[i];\n var parsed = me.getParsed(i);\n var properties = directUpdate ? point : {};\n var nullData = isNullOrUndef(parsed.y);\n var x = properties.x = xScale.getPixelForValue(parsed.x, i);\n var y = properties.y = reset || nullData ? yScale.getBasePixel() : yScale.getPixelForValue(_stacked ? me.applyStack(yScale, parsed, _stacked) : parsed.y, i);\n properties.skip = isNaN(x) || isNaN(y) || nullData;\n properties.stop = i > 0 && parsed.x - prevParsed.x > maxGapLength;\n properties.parsed = parsed;\n\n if (includeOptions) {\n properties.options = sharedOptions || me.resolveDataElementOptions(i, mode);\n }\n\n if (!directUpdate) {\n me.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n\n me.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n var me = this;\n var meta = me._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(me.resolveDataElementOptions(0));\n var lastPoint = data[data.length - 1].size(me.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n }, {\n key: \"draw\",\n value: function draw() {\n this._cachedMeta.dataset.updateControlPoints(this.chart.chartArea);\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 _this2;\n\n _classCallCheck(this, PolarAreaController);\n\n _this2 = _super5.call(this, chart, datasetIndex);\n _this2.innerRadius = undefined;\n _this2.outerRadius = undefined;\n return _this2;\n }\n\n _createClass(PolarAreaController, [{\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 me = this;\n var chart = me.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 me.outerRadius = outerRadius - radiusLength * me.index;\n me.innerRadius = me.outerRadius - radiusLength;\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(arcs, start, count, mode) {\n var me = this;\n var reset = mode === 'reset';\n var chart = me.chart;\n var dataset = me.getDataset();\n var opts = chart.options;\n var animationOpts = opts.animation;\n var scale = me._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 / me.countVisibleElements();\n\n for (i = 0; i < start; ++i) {\n angle += me._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 + me._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: me.resolveDataElementOptions(i, mode)\n };\n me.updateElement(arc, i, properties, mode);\n }\n }\n }, {\n key: \"countVisibleElements\",\n value: function countVisibleElements() {\n var _this3 = 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]) && _this3.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 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 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 me = this;\n var vScale = me._cachedMeta.vScale;\n var parsed = me.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 me = this;\n var meta = me._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 = me.resolveDatasetElementOptions(mode);\n\n if (!me.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 me.updateElement(line, undefined, properties, mode);\n }\n\n me.updateElements(points, 0, points.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var me = this;\n var dataset = me.getDataset();\n var scale = me._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 = me.resolveDataElementOptions(i, 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 me.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: either no adapter can be found or an incomplete integration was 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 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;\n\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n layoutBoxes.push({\n index: i,\n box: box,\n pos: box.position,\n horizontal: box.isHorizontal(),\n weight: box.weight\n });\n }\n\n return layoutBoxes;\n}\n\nfunction setLayoutDims(layouts, params) {\n var i, ilen, layout;\n\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n\n if (layout.horizontal) {\n layout.width = layout.box.fullSize && params.availableWidth;\n layout.height = params.hBoxMaxHeight;\n } else {\n layout.width = params.vBoxMaxWidth;\n layout.height = layout.box.fullSize && params.availableHeight;\n }\n }\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) {\n var box = layout.box;\n var maxPadding = chartArea.maxPadding;\n\n if (!isObject(layout.pos)) {\n if (layout.size) {\n chartArea[layout.pos] -= layout.size;\n }\n\n layout.size = layout.horizontal ? box.height : box.width;\n chartArea[layout.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) {\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),\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) || changed;\n}\n\nfunction placeBoxes(boxes, chartArea, params) {\n var userPadding = params.padding;\n var x = chartArea.x;\n var y = chartArea.y;\n var i, ilen, layout, box;\n\n for (i = 0, ilen = boxes.length; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n\n if (layout.horizontal) {\n box.left = box.fullSize ? userPadding.left : chartArea.left;\n box.right = box.fullSize ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\n box.top = y;\n box.bottom = y + box.height;\n box.width = box.right - box.left;\n y = box.bottom;\n } else {\n box.left = x;\n box.right = x + box.width;\n box.top = box.fullSize ? userPadding.top : chartArea.top;\n box.bottom = box.fullSize ? params.outerHeight - userPadding.right : chartArea.top + chartArea.h;\n box.height = box.bottom - box.top;\n x = box.right;\n }\n }\n\n chartArea.x = x;\n chartArea.y = y;\n}\n\ndefaults.set('layout', {\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 = width - padding.width;\n var availableHeight = height - padding.height;\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 setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params);\n fitBoxes(verticalBoxes, chartArea, params);\n\n if (fitBoxes(horizontalBoxes, chartArea, params)) {\n fitBoxes(verticalBoxes, chartArea, params);\n }\n\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params);\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\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\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\n var container = canvas && _getParentNode(canvas);\n\n var element = container || canvas;\n var observer = new MutationObserver(function (entries) {\n var parent = _getParentNode(element);\n\n entries.forEach(function (entry) {\n for (var i = 0; i < entry.addedNodes.length; i++) {\n var added = entry.addedNodes[i];\n\n if (added === element || added === parent) {\n listener(entry.target);\n }\n }\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\n var container = canvas && _getParentNode(canvas);\n\n if (!container) {\n return;\n }\n\n var observer = new MutationObserver(function (entries) {\n entries.forEach(function (entry) {\n for (var i = 0; i < entry.removedNodes.length; i++) {\n if (entry.removedNodes[i] === canvas) {\n listener();\n break;\n }\n }\n });\n });\n observer.observe(container, {\n childList: 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 && _getParentNode(container));\n }\n }]);\n\n return DomPlatform;\n}(BasePlatform);\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 me = this;\n var anims = this.$animations;\n\n if (!_final || !anims) {\n return me;\n }\n\n var ret = {};\n props.forEach(function (prop) {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : me[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});\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 Object.assign(Object.create(parent), {\n scale: scale,\n type: 'scale'\n });\n}\n\nfunction createTickContext(parent, index, tick) {\n return Object.assign(Object.create(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 var rotation = 0;\n var maxWidth, titleX, titleY;\n\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = offsetFromEdge(scale, position, offset);\n maxWidth = right - left;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\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 _this4;\n\n _classCallCheck(this, Scale);\n\n _this4 = _super11.call(this);\n _this4.id = cfg.id;\n _this4.type = cfg.type;\n _this4.options = undefined;\n _this4.ctx = cfg.ctx;\n _this4.chart = cfg.chart;\n _this4.top = undefined;\n _this4.bottom = undefined;\n _this4.left = undefined;\n _this4.right = undefined;\n _this4.width = undefined;\n _this4.height = undefined;\n _this4._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n _this4.maxWidth = undefined;\n _this4.maxHeight = undefined;\n _this4.paddingTop = undefined;\n _this4.paddingBottom = undefined;\n _this4.paddingLeft = undefined;\n _this4.paddingRight = undefined;\n _this4.axis = undefined;\n _this4.labelRotation = undefined;\n _this4.min = undefined;\n _this4.max = undefined;\n _this4._range = undefined;\n _this4.ticks = [];\n _this4._gridLineItems = null;\n _this4._labelItems = null;\n _this4._labelSizes = null;\n _this4._length = 0;\n _this4._maxLength = 0;\n _this4._longestTextCache = {};\n _this4._startPixel = undefined;\n _this4._endPixel = undefined;\n _this4._reversePixels = false;\n _this4._userMax = undefined;\n _this4._userMin = undefined;\n _this4._suggestedMax = undefined;\n _this4._suggestedMin = undefined;\n _this4._ticksLength = 0;\n _this4._borderValue = 0;\n _this4._cache = {};\n _this4._dataLimitsCached = false;\n _this4.$context = undefined;\n return _this4;\n }\n\n _createClass(Scale, [{\n key: \"init\",\n value: function init(options) {\n var me = this;\n me.options = options.setContext(me.getContext());\n me.axis = options.axis;\n me._userMin = me.parse(options.min);\n me._userMax = me.parse(options.max);\n me._suggestedMin = me.parse(options.suggestedMin);\n me._suggestedMax = me.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 me = this;\n\n var _me$getUserBounds = me.getUserBounds(),\n min = _me$getUserBounds.min,\n max = _me$getUserBounds.max,\n minDefined = _me$getUserBounds.minDefined,\n maxDefined = _me$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 = me.getMatchingVisibleMetas();\n\n for (var i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(me, 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 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 var me = this;\n return {\n left: me.paddingLeft || 0,\n top: me.paddingTop || 0,\n right: me.paddingRight || 0,\n bottom: me.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 me = this;\n var tickOpts = me.options.ticks;\n var sampleSize = tickOpts.sampleSize;\n me.beforeUpdate();\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n me.ticks = null;\n me._labelSizes = null;\n me._gridLineItems = null;\n me._labelItems = null;\n me.beforeSetDimensions();\n me.setDimensions();\n me.afterSetDimensions();\n me._maxLength = me.isHorizontal() ? me.width + margins.left + margins.right : me.height + margins.top + margins.bottom;\n\n if (!me._dataLimitsCached) {\n me.beforeDataLimits();\n me.determineDataLimits();\n me.afterDataLimits();\n me._range = _addGrace(me, me.options.grace);\n me._dataLimitsCached = true;\n }\n\n me.beforeBuildTicks();\n me.ticks = me.buildTicks() || [];\n me.afterBuildTicks();\n var samplingEnabled = sampleSize < me.ticks.length;\n\n me._convertTicksToLabels(samplingEnabled ? sample(me.ticks, sampleSize) : me.ticks);\n\n me.configure();\n me.beforeCalculateLabelRotation();\n me.calculateLabelRotation();\n me.afterCalculateLabelRotation();\n\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n me.ticks = autoSkip(me, me.ticks);\n me._labelSizes = null;\n }\n\n if (samplingEnabled) {\n me._convertTicksToLabels(me.ticks);\n }\n\n me.beforeFit();\n me.fit();\n me.afterFit();\n me.afterUpdate();\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var me = this;\n var reversePixels = me.options.reverse;\n var startPixel, endPixel;\n\n if (me.isHorizontal()) {\n startPixel = me.left;\n endPixel = me.right;\n } else {\n startPixel = me.top;\n endPixel = me.bottom;\n reversePixels = !reversePixels;\n }\n\n me._startPixel = startPixel;\n me._endPixel = endPixel;\n me._reversePixels = reversePixels;\n me._length = endPixel - startPixel;\n me._alignToPixels = me.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 var me = this;\n\n if (me.isHorizontal()) {\n me.width = me.maxWidth;\n me.left = 0;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n me.top = 0;\n me.bottom = me.height;\n }\n\n me.paddingLeft = 0;\n me.paddingTop = 0;\n me.paddingRight = 0;\n me.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 var me = this;\n me.chart.notifyPlugins(name, me.getContext());\n callback(me.options[name], [me]);\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 me = this;\n var tickOpts = me.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], me);\n }\n\n for (i = 0; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\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 me = this;\n var options = me.options;\n var tickOpts = options.ticks;\n var numTicks = me.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 (!me._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !me.isHorizontal()) {\n me.labelRotation = minRotation;\n return;\n }\n\n var labelSizes = me._getLabelSizes();\n\n var maxLabelWidth = labelSizes.widest.width;\n var maxLabelHeight = labelSizes.highest.height;\n\n var maxWidth = _limitValue(me.chart.width - maxLabelWidth, 0, me.maxWidth);\n\n tickWidth = options.offset ? me.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = me.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, me.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(Math.min((labelSizes.highest.height + 6) / tickWidth, 1)), Math.asin(Math.min(maxHeight / maxLabelDiagonal, 1)) - Math.asin(maxLabelHeight / maxLabelDiagonal)));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n\n me.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 me = this;\n var minSize = {\n width: 0,\n height: 0\n };\n var chart = me.chart,\n _me$options2 = me.options,\n tickOpts = _me$options2.ticks,\n titleOpts = _me$options2.title,\n gridOpts = _me$options2.grid;\n\n var display = me._isVisible();\n\n var isHorizontal = me.isHorizontal();\n\n if (display) {\n var titleHeight = getTitleHeight(titleOpts, chart.options.font);\n\n if (isHorizontal) {\n minSize.width = me.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = me.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n\n if (tickOpts.display && me.ticks.length) {\n var _me$_getLabelSizes = me._getLabelSizes(),\n first = _me$_getLabelSizes.first,\n last = _me$_getLabelSizes.last,\n widest = _me$_getLabelSizes.widest,\n highest = _me$_getLabelSizes.highest;\n\n var tickPadding = tickOpts.padding * 2;\n var angleRadians = toRadians(me.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(me.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n var labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(me.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n\n me._calculatePadding(first, last, sin, cos);\n }\n }\n\n me._handleMargins();\n\n if (isHorizontal) {\n me.width = me._length = chart.width - me._margins.left - me._margins.right;\n me.height = minSize.height;\n } else {\n me.width = minSize.width;\n me.height = me._length = chart.height - me._margins.top - me._margins.bottom;\n }\n }\n }, {\n key: \"_calculatePadding\",\n value: function _calculatePadding(first, last, sin, cos) {\n var me = this;\n var _me$options3 = me.options,\n _me$options3$ticks = _me$options3.ticks,\n align = _me$options3$ticks.align,\n padding = _me$options3$ticks.padding,\n position = _me$options3.position;\n var isRotated = me.labelRotation !== 0;\n var labelsBelowTicks = position !== 'top' && me.axis === 'x';\n\n if (me.isHorizontal()) {\n var offsetLeft = me.getPixelForTick(0) - me.left;\n var offsetRight = me.right - me.getPixelForTick(me.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 me.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * me.width / (me.width - offsetLeft), 0);\n me.paddingRight = Math.max((paddingRight - offsetRight + padding) * me.width / (me.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 me.paddingTop = paddingTop + padding;\n me.paddingBottom = paddingBottom + padding;\n }\n }\n }, {\n key: \"_handleMargins\",\n value: function _handleMargins() {\n var me = this;\n\n if (me._margins) {\n me._margins.left = Math.max(me.paddingLeft, me._margins.left);\n me._margins.top = Math.max(me.paddingTop, me._margins.top);\n me._margins.right = Math.max(me.paddingRight, me._margins.right);\n me._margins.bottom = Math.max(me.paddingBottom, me._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$options = this.options,\n axis = _this$options.axis,\n position = _this$options.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 var me = this;\n me.beforeTickToLabelConversion();\n me.generateTickLabels(ticks);\n me.afterTickToLabelConversion();\n }\n }, {\n key: \"_getLabelSizes\",\n value: function _getLabelSizes() {\n var me = this;\n var labelSizes = me._labelSizes;\n\n if (!labelSizes) {\n var sampleSize = me.options.ticks.sampleSize;\n var ticks = me.ticks;\n\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n\n me._labelSizes = labelSizes = me._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 var me = this;\n\n if (me._reversePixels) {\n decimal = 1 - decimal;\n }\n\n var pixel = me._startPixel + decimal * me._length;\n return _int16Range(me._alignToPixels ? _alignPixel(me.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 me = this;\n var ticks = me.ticks || [];\n\n if (index >= 0 && index < ticks.length) {\n var tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(me.getContext(), index, tick));\n }\n\n return me.$context || (me.$context = createScaleContext(me.chart.getContext(), me));\n }\n }, {\n key: \"_tickSize\",\n value: function _tickSize() {\n var me = this;\n var optionTicks = me.options.ticks;\n var rot = toRadians(me.labelRotation);\n var cos = Math.abs(Math.cos(rot));\n var sin = Math.abs(Math.sin(rot));\n\n var labelSizes = me._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 me.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 me = this;\n var axis = me.axis;\n var chart = me.chart;\n var options = me.options;\n var grid = options.grid,\n position = options.position;\n var offset = grid.offset;\n var isHorizontal = me.isHorizontal();\n var ticks = me.ticks;\n var ticksLength = ticks.length + (offset ? 1 : 0);\n var tl = getTickMarkLength(grid);\n var items = [];\n var borderOpts = grid.setContext(me.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(me.bottom);\n ty1 = me.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(me.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = me.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(me.right);\n tx1 = me.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(me.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = me.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(me.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 _positionAxisID = Object.keys(position)[0];\n var _value = position[_positionAxisID];\n borderValue = alignBorderValue(me.chart.scales[_positionAxisID].getPixelForValue(_value));\n }\n\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n\n for (i = 0; i < ticksLength; ++i) {\n var optsAtIndex = grid.setContext(me.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(me, 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 me._ticksLength = ticksLength;\n me._borderValue = borderValue;\n return items;\n }\n }, {\n key: \"_computeLabelItems\",\n value: function _computeLabelItems(chartArea) {\n var me = this;\n var axis = me.axis;\n var options = me.options;\n var position = options.position,\n optionTicks = options.ticks;\n var isHorizontal = me.isHorizontal();\n var ticks = me.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(me.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 = me.bottom - hTickAndPadding;\n textAlign = me._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = me.top + hTickAndPadding;\n textAlign = me._getXAxisLabelAlignment();\n } else if (position === 'left') {\n var ret = me._getYAxisLabelAlignment(tl);\n\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n var _ret = me._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 = me.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n\n textAlign = me._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 _positionAxisID2 = Object.keys(position)[0];\n var _value2 = position[_positionAxisID2];\n x = me.chart.scales[_positionAxisID2].getPixelForValue(_value2);\n }\n\n textAlign = me._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 = me._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(me.getContext(i));\n pixel = me.getPixelForTick(i) + optionTicks.labelOffset;\n font = me._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 me = this;\n var _me$options4 = me.options,\n position = _me$options4.position,\n ticks = _me$options4.ticks;\n var rotation = -toRadians(me.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 me = this;\n var _me$options5 = me.options,\n position = _me$options5.position,\n _me$options5$ticks = _me$options5.ticks,\n crossAlign = _me$options5$ticks.crossAlign,\n mirror = _me$options5$ticks.mirror,\n padding = _me$options5$ticks.padding;\n\n var labelSizes = me._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 textAlign = 'left';\n x = me.right + padding;\n } else {\n x = me.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 = me.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n textAlign = 'right';\n x = me.left + padding;\n } else {\n x = me.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 = me.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 var me = this;\n\n if (me.options.ticks.mirror) {\n return;\n }\n\n var chart = me.chart;\n var position = me.options.position;\n\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: me.left,\n bottom: chart.height,\n right: me.right\n };\n }\n\n if (position === 'top' || position === 'bottom') {\n return {\n top: me.top,\n left: 0,\n bottom: me.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 me = this;\n var grid = me.options.grid;\n\n if (!me._isVisible() || !grid.display) {\n return 0;\n }\n\n var ticks = me.ticks;\n var index = ticks.findIndex(function (t) {\n return t.value === value;\n });\n\n if (index >= 0) {\n var opts = grid.setContext(me.getContext(index));\n return opts.lineWidth;\n }\n\n return 0;\n }\n }, {\n key: \"drawGrid\",\n value: function drawGrid(chartArea) {\n var me = this;\n var grid = me.options.grid;\n var ctx = me.ctx;\n\n var items = me._gridLineItems || (me._gridLineItems = me._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 me = this;\n var chart = me.chart,\n ctx = me.ctx,\n grid = me.options.grid;\n var borderOpts = grid.setContext(me.getContext());\n var axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n\n if (!axisWidth) {\n return;\n }\n\n var lastLineWidth = grid.setContext(me.getContext(0)).lineWidth;\n var borderValue = me._borderValue;\n var x1, x2, y1, y2;\n\n if (me.isHorizontal()) {\n x1 = _alignPixel(chart, me.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, me.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, me.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, me.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 me = this;\n var optionTicks = me.options.ticks;\n\n if (!optionTicks.display) {\n return;\n }\n\n var ctx = me.ctx;\n\n var area = me._computeLabelArea();\n\n if (area) {\n clipArea(ctx, area);\n }\n\n var items = me._labelItems || (me._labelItems = me._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$options2 = this.options,\n position = _this$options2.position,\n title = _this$options2.title,\n reverse = _this$options2.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') {\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 var me = this;\n\n if (!me._isVisible()) {\n return;\n }\n\n me.drawBackground();\n me.drawGrid(chartArea);\n me.drawBorder();\n me.drawTitle();\n me.drawLabels(chartArea);\n }\n }, {\n key: \"_layers\",\n value: function _layers() {\n var me = this;\n var opts = me.options;\n var tz = opts.ticks && opts.ticks.z || 0;\n var gz = opts.grid && opts.grid.z || 0;\n\n if (!me._isVisible() || me.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: function draw(chartArea) {\n me.draw(chartArea);\n }\n }];\n }\n\n return [{\n z: gz,\n draw: function draw(chartArea) {\n me.drawBackground();\n me.drawGrid(chartArea);\n me.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: function draw() {\n me.drawBorder();\n }\n }, {\n z: tz,\n draw: function draw(chartArea) {\n me.drawLabels(chartArea);\n }\n }];\n }\n }, {\n key: \"getMatchingVisibleMetas\",\n value: function getMatchingVisibleMetas(type) {\n var me = this;\n var metas = me.chart.getSortedVisibleDatasetMetas();\n var axisID = me.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] === me.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 me = this;\n\n var fontSize = me._resolveTickFontOptions(0).lineHeight;\n\n return me.isHorizontal() ? me.width / fontSize / 0.7 : me.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 me = this;\n var proto = Object.getPrototypeOf(item);\n var parentScope;\n\n if (isIChartComponent(proto)) {\n parentScope = me.register(proto);\n }\n\n var items = me.items;\n var id = item.id;\n var scope = me.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 (me.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 me = this;\n\n _toConsumableArray(args).forEach(function (arg) {\n var reg = typedRegistry || me._getRegistryForType(arg);\n\n if (typedRegistry || reg.isForType(arg) || reg === me.plugins && arg.id) {\n me._exec(method, reg, arg);\n } else {\n each(arg, function (item) {\n var itemReg = typedRegistry || me._getRegistryForType(item);\n\n me._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 var me = this;\n\n if (hook === 'beforeInit') {\n me._init = me._createDescriptors(chart, true);\n\n me._notify(me._init, chart, 'install');\n }\n\n var descriptors = filter ? me._descriptors(chart).filter(filter) : me._descriptors(chart);\n\n var result = me._notify(descriptors, chart, hook, args);\n\n if (hook === 'destroy') {\n me._notify(descriptors, chart, 'stop');\n\n me._notify(me._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 _iterator4 = _createForOfIteratorHelper(descriptors),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var descriptor = _step4.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 _iterator4.e(err);\n } finally {\n _iterator4.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 _i = 0; _i < local.length; _i++) {\n var plugin = local[_i];\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 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: \"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\n var array = _toConsumableArray(scopes);\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 _iterator5 = _createForOfIteratorHelper(names),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var prop = _step5.value;\n result[prop] = options[prop];\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.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 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\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\nfunction needContext(proxy, names) {\n var _descriptors2 = _descriptors(proxy),\n isScriptable = _descriptors2.isScriptable,\n isIndexable = _descriptors2.isIndexable;\n\n var _iterator6 = _createForOfIteratorHelper(names),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var prop = _step6.value;\n\n if (isScriptable(prop) && isFunction(proxy[prop]) || isIndexable(prop) && isArray(proxy[prop])) {\n return true;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return false;\n}\n\nvar version = \"3.2.1\";\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 isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\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, config) {\n var _this5 = this;\n\n _classCallCheck(this, Chart);\n\n var me = this;\n this.config = config = new Config(config);\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(), me.getContext());\n this.platform = me._initializePlatform(initialCanvas, config);\n var context = me.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._sortedMetasets = [];\n this.scales = {};\n this.scale = undefined;\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 () {\n return _this5.update('resize');\n }, options.resizeDelay || 0);\n instances[me.id] = me;\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(me, 'complete', onAnimationsComplete);\n animator.listen(me, 'progress', onAnimationProgress);\n\n me._initialize();\n\n if (me.attached) {\n me.update();\n }\n }\n\n _createClass(Chart, [{\n key: \"_initialize\",\n value: function _initialize() {\n var me = this;\n me.notifyPlugins('beforeInit');\n\n if (me.options.responsive) {\n me.resize();\n } else {\n retinaScale(me, me.options.devicePixelRatio);\n }\n\n me.bindEvents();\n me.notifyPlugins('afterInit');\n return me;\n }\n }, {\n key: \"_initializePlatform\",\n value: function _initializePlatform(canvas, config) {\n if (config.platform) {\n return new config.platform();\n } else if (!isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return new BasicPlatform();\n }\n\n return new DomPlatform();\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 me = this;\n var options = me.options;\n var canvas = me.canvas;\n var aspectRatio = options.maintainAspectRatio && me.aspectRatio;\n var newSize = me.platform.getMaximumSize(canvas, width, height, aspectRatio);\n var oldRatio = me.currentDevicePixelRatio;\n var newRatio = options.devicePixelRatio || me.platform.getDevicePixelRatio();\n\n if (me.width === newSize.width && me.height === newSize.height && oldRatio === newRatio) {\n return;\n }\n\n me.width = newSize.width;\n me.height = newSize.height;\n me._aspectRatio = me.aspectRatio;\n retinaScale(me, newRatio, true);\n me.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [me, newSize], me);\n\n if (me.attached) {\n if (me._doResize()) {\n me.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 me = this;\n var options = me.options;\n var scaleOpts = options.scales;\n var scales = me.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: me.ctx,\n chart: me\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(me, scale, scale.options);\n layouts.addBox(me, scale);\n });\n }\n }, {\n key: \"_updateMetasetIndex\",\n value: function _updateMetasetIndex(meta, index) {\n var metasets = this._metasets;\n var oldIndex = meta.index;\n\n if (oldIndex !== index) {\n metasets[oldIndex] = metasets[index];\n metasets[index] = meta;\n meta.index = index;\n }\n }\n }, {\n key: \"_updateMetasets\",\n value: function _updateMetasets() {\n var me = this;\n var metasets = me._metasets;\n var numData = me.data.datasets.length;\n var numMeta = metasets.length;\n\n if (numMeta > numData) {\n for (var i = numData; i < numMeta; ++i) {\n me._destroyDatasetMeta(i);\n }\n\n metasets.splice(numData, numMeta - numData);\n }\n\n me._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n }, {\n key: \"_removeUnreferencedMetasets\",\n value: function _removeUnreferencedMetasets() {\n var me = this;\n var metasets = me._metasets,\n datasets = me.data.datasets;\n\n if (metasets.length > datasets.length) {\n delete me._stacks;\n }\n\n metasets.forEach(function (meta, index) {\n if (datasets.filter(function (x) {\n return x === meta._dataset;\n }).length === 0) {\n me._destroyDatasetMeta(index);\n }\n });\n }\n }, {\n key: \"buildOrUpdateControllers\",\n value: function buildOrUpdateControllers() {\n var me = this;\n var newControllers = [];\n var datasets = me.data.datasets;\n var i, ilen;\n\n me._removeUnreferencedMetasets();\n\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n var dataset = datasets[i];\n var meta = me.getDatasetMeta(i);\n var type = dataset.type || me.config.type;\n\n if (meta.type && meta.type !== type) {\n me._destroyDatasetMeta(i);\n\n meta = me.getDatasetMeta(i);\n }\n\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, me.options);\n meta.order = dataset.order || 0;\n\n me._updateMetasetIndex(meta, i);\n\n meta.label = '' + dataset.label;\n meta.visible = me.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(me, i);\n newControllers.push(meta.controller);\n }\n }\n\n me._updateMetasets();\n\n return newControllers;\n }\n }, {\n key: \"_resetElements\",\n value: function _resetElements() {\n var me = this;\n each(me.data.datasets, function (dataset, datasetIndex) {\n me.getDatasetMeta(datasetIndex).controller.reset();\n }, me);\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 me = this;\n var config = me.config;\n config.update();\n me._options = config.createResolver(config.chartOptionScopes(), me.getContext());\n each(me.scales, function (scale) {\n layouts.removeBox(me, scale);\n });\n var animsDisabled = me._animationsDisabled = !me.options.animation;\n me.ensureScalesHaveIDs();\n me.buildOrUpdateScales();\n var existingEvents = new Set(Object.keys(me._listeners));\n var newEvents = new Set(me.options.events);\n\n if (!setsEqual(existingEvents, newEvents)) {\n me.unbindEvents();\n me.bindEvents();\n }\n\n me._plugins.invalidate();\n\n if (me.notifyPlugins('beforeUpdate', {\n mode: mode,\n cancelable: true\n }) === false) {\n return;\n }\n\n var newControllers = me.buildOrUpdateControllers();\n me.notifyPlugins('beforeElementsUpdate');\n var minPadding = 0;\n\n for (var i = 0, ilen = me.data.datasets.length; i < ilen; i++) {\n var _me$getDatasetMeta = me.getDatasetMeta(i),\n controller = _me$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 me._minPadding = minPadding;\n\n me._updateLayout(minPadding);\n\n if (!animsDisabled) {\n each(newControllers, function (controller) {\n controller.reset();\n });\n }\n\n me._updateDatasets(mode);\n\n me.notifyPlugins('afterUpdate', {\n mode: mode\n });\n\n me._layers.sort(compare2Level('z', '_idx'));\n\n if (me._lastEvent) {\n me._eventHandler(me._lastEvent, true);\n }\n\n me.render();\n }\n }, {\n key: \"_updateLayout\",\n value: function _updateLayout(minPadding) {\n var me = this;\n\n if (me.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n\n layouts.update(me, me.width, me.height, minPadding);\n var area = me.chartArea;\n var noArea = area.width <= 0 || area.height <= 0;\n me._layers = [];\n each(me.boxes, function (box) {\n var _me$_layers;\n\n if (noArea && box.position === 'chartArea') {\n return;\n }\n\n if (box.configure) {\n box.configure();\n }\n\n (_me$_layers = me._layers).push.apply(_me$_layers, _toConsumableArray(box._layers()));\n }, me);\n\n me._layers.forEach(function (item, index) {\n item._idx = index;\n });\n\n me.notifyPlugins('afterLayout');\n }\n }, {\n key: \"_updateDatasets\",\n value: function _updateDatasets(mode) {\n var me = this;\n var isFunction = typeof mode === 'function';\n\n if (me.notifyPlugins('beforeDatasetsUpdate', {\n mode: mode,\n cancelable: true\n }) === false) {\n return;\n }\n\n for (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n me._updateDataset(i, isFunction ? mode({\n datasetIndex: i\n }) : mode);\n }\n\n me.notifyPlugins('afterDatasetsUpdate', {\n mode: mode\n });\n }\n }, {\n key: \"_updateDataset\",\n value: function _updateDataset(index, mode) {\n var me = this;\n var meta = me.getDatasetMeta(index);\n var args = {\n meta: meta,\n index: index,\n mode: mode,\n cancelable: true\n };\n\n if (me.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n\n meta.controller._update(mode);\n\n args.cancelable = false;\n me.notifyPlugins('afterDatasetUpdate', args);\n }\n }, {\n key: \"render\",\n value: function render() {\n var me = this;\n\n if (me.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n\n if (animator.has(me)) {\n if (me.attached && !animator.running(me)) {\n animator.start(me);\n }\n } else {\n me.draw();\n onAnimationsComplete({\n chart: me\n });\n }\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var me = this;\n var i;\n\n if (me._resizeBeforeDraw) {\n var _me$_resizeBeforeDraw = me._resizeBeforeDraw,\n width = _me$_resizeBeforeDraw.width,\n height = _me$_resizeBeforeDraw.height;\n\n me._resize(width, height);\n\n me._resizeBeforeDraw = null;\n }\n\n me.clear();\n\n if (me.width <= 0 || me.height <= 0) {\n return;\n }\n\n if (me.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n\n var layers = me._layers;\n\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(me.chartArea);\n }\n\n me._drawDatasets();\n\n for (; i < layers.length; ++i) {\n layers[i].draw(me.chartArea);\n }\n\n me.notifyPlugins('afterDraw');\n }\n }, {\n key: \"_getSortedDatasetMetas\",\n value: function _getSortedDatasetMetas(filterVisible) {\n var me = this;\n var metasets = me._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 var me = this;\n\n if (me.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n\n var metasets = me.getSortedVisibleDatasetMetas();\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n me._drawDataset(metasets[i]);\n }\n\n me.notifyPlugins('afterDatasetsDraw');\n }\n }, {\n key: \"_drawDataset\",\n value: function _drawDataset(meta) {\n var me = this;\n var ctx = me.ctx;\n var clip = meta._clip;\n var area = me.chartArea;\n var args = {\n meta: meta,\n index: meta.index,\n cancelable: true\n };\n\n if (me.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? me.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? me.height : area.bottom + clip.bottom\n });\n meta.controller.draw();\n unclipArea(ctx);\n args.cancelable = false;\n me.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 me = this;\n var dataset = me.data.datasets[datasetIndex];\n var metasets = me._metasets;\n var meta = metasets.filter(function (x) {\n return x && x._dataset === dataset;\n }).pop();\n\n if (!meta) {\n meta = metasets[datasetIndex] = {\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 }\n\n return meta;\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.$context || (this.$context = {\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: \"_updateDatasetVisibility\",\n value: function _updateDatasetVisibility(datasetIndex, visible) {\n var me = this;\n var mode = visible ? 'show' : 'hide';\n var meta = me.getDatasetMeta(datasetIndex);\n\n var anims = meta.controller._resolveAnimations(undefined, mode);\n\n me.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible: visible\n });\n me.update(function (ctx) {\n return ctx.datasetIndex === datasetIndex ? mode : undefined;\n });\n }\n }, {\n key: \"hide\",\n value: function hide(datasetIndex) {\n this._updateDatasetVisibility(datasetIndex, false);\n }\n }, {\n key: \"show\",\n value: function show(datasetIndex) {\n this._updateDatasetVisibility(datasetIndex, true);\n }\n }, {\n key: \"_destroyDatasetMeta\",\n value: function _destroyDatasetMeta(datasetIndex) {\n var me = this;\n var meta = me._metasets && me._metasets[datasetIndex];\n\n if (meta && meta.controller) {\n meta.controller._destroy();\n\n delete me._metasets[datasetIndex];\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var me = this;\n var canvas = me.canvas,\n ctx = me.ctx;\n var i, ilen;\n me.stop();\n animator.remove(me);\n\n for (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n me._destroyDatasetMeta(i);\n }\n\n me.config.clearCache();\n\n if (canvas) {\n me.unbindEvents();\n clearCanvas(canvas, ctx);\n me.platform.releaseContext(ctx);\n me.canvas = null;\n me.ctx = null;\n }\n\n me.notifyPlugins('destroy');\n delete instances[me.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 var me = this;\n var listeners = me._listeners;\n var platform = me.platform;\n\n var _add = function _add(type, listener) {\n platform.addEventListener(me, type, listener);\n listeners[type] = listener;\n };\n\n var _remove = function _remove(type, listener) {\n if (listeners[type]) {\n platform.removeEventListener(me, type, listener);\n delete listeners[type];\n }\n };\n\n var listener = function listener(e, x, y) {\n e.offsetX = x;\n e.offsetY = y;\n\n me._eventHandler(e);\n };\n\n each(me.options.events, function (type) {\n return _add(type, listener);\n });\n\n if (me.options.responsive) {\n listener = function listener(width, height) {\n if (me.canvas) {\n me.resize(width, height);\n }\n };\n\n var detached;\n\n var attached = function attached() {\n _remove('attach', attached);\n\n me.attached = true;\n me.resize();\n\n _add('resize', listener);\n\n _add('detach', detached);\n };\n\n detached = function detached() {\n me.attached = false;\n\n _remove('resize', listener);\n\n _add('attach', attached);\n };\n\n if (platform.isAttached(me.canvas)) {\n attached();\n } else {\n detached();\n }\n } else {\n me.attached = true;\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n var me = this;\n var listeners = me._listeners;\n\n if (!listeners) {\n return;\n }\n\n me._listeners = {};\n each(listeners, function (listener, type) {\n me.platform.removeEventListener(me, type, listener);\n });\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 me = this;\n var lastActive = me._active || [];\n var active = activeElements.map(function (_ref) {\n var datasetIndex = _ref.datasetIndex,\n index = _ref.index;\n var meta = me.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 me._active = active;\n\n me._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 me = this;\n var hoverOptions = me.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 me.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n\n if (activated.length && hoverOptions.mode) {\n me.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n }, {\n key: \"_eventHandler\",\n value: function _eventHandler(e, replay) {\n var _this6 = this;\n\n var me = this;\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 || _this6.options.events).includes(e.type);\n };\n\n if (me.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n\n var changed = me._handleEvent(e, replay);\n\n args.cancelable = false;\n me.notifyPlugins('afterEvent', args, eventFilter);\n\n if (changed || args.changed) {\n me.render();\n }\n\n return me;\n }\n }, {\n key: \"_handleEvent\",\n value: function _handleEvent(e, replay) {\n var me = this;\n var _me$_active = me._active,\n lastActive = _me$_active === void 0 ? [] : _me$_active,\n options = me.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 = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n lastEvent = e.type === 'click' ? me._lastEvent : e;\n }\n\n me._lastEvent = null;\n\n if (_isPointInArea(e, me.chartArea, me._minPadding)) {\n callback(options.onHover, [e, active, me], me);\n\n if (e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu') {\n callback(options.onClick, [e, active, me], me);\n }\n }\n\n changed = !_elementsEqual(active, lastActive);\n\n if (changed || replay) {\n me._active = active;\n\n me._updateHoverStyles(active, lastActive, replay);\n }\n\n me._lastEvent = lastEvent;\n return changed;\n }\n }, {\n key: \"aspectRatio\",\n get: function get() {\n var _this$options3 = this.options,\n aspectRatio = _this$options3.aspectRatio,\n maintainAspectRatio = _this$options3.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\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) {\n var startAngle = element.startAngle,\n endAngle = element.endAngle,\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) {\n var x = element.x,\n y = element.y,\n startAngle = element.startAngle,\n endAngle = element.endAngle,\n pixelMargin = element.pixelMargin;\n var outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n var innerRadius = element.innerRadius + pixelMargin;\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) {\n if (element.fullCircles) {\n element.endAngle = element.startAngle + TAU;\n pathArc(ctx, element);\n\n for (var i = 0; i < element.fullCircles; ++i) {\n ctx.fill();\n }\n }\n\n if (!isNaN(element.circumference)) {\n element.endAngle = element.startAngle + element.circumference % TAU;\n }\n\n pathArc(ctx, element);\n ctx.fill();\n}\n\nfunction drawFullCircleBorders(ctx, element, inner) {\n var x = element.x,\n y = element.y,\n startAngle = element.startAngle,\n endAngle = element.endAngle,\n pixelMargin = element.pixelMargin;\n var outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n var innerRadius = element.innerRadius + pixelMargin;\n var i;\n\n if (inner) {\n element.endAngle = element.startAngle + TAU;\n clipArc(ctx, element);\n element.endAngle = endAngle;\n\n if (element.endAngle === element.startAngle) {\n element.endAngle += TAU;\n element.fullCircles--;\n }\n }\n\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n\n for (i = 0; i < element.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 < element.fullCircles; ++i) {\n ctx.stroke();\n }\n}\n\nfunction drawBorder(ctx, element) {\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);\n }\n\n pathArc(ctx, element);\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 _this7;\n\n _classCallCheck(this, ArcElement);\n\n _this7 = _super12.call(this);\n _this7.options = undefined;\n _this7.circumference = undefined;\n _this7.startAngle = undefined;\n _this7.endAngle = undefined;\n _this7.innerRadius = undefined;\n _this7.outerRadius = undefined;\n _this7.pixelMargin = 0;\n _this7.fullCircles = 0;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this7), cfg);\n }\n\n return _this7;\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 betweenAngles = circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n\n var withinRadius = distance >= innerRadius && distance <= outerRadius;\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'], 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 halfAngle = (startAngle + endAngle) / 2;\n var halfRadius = (innerRadius + outerRadius) / 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 me = this;\n var options = me.options;\n var offset = options.offset || 0;\n me.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n me.fullCircles = Math.floor(me.circumference / TAU);\n\n if (me.circumference === 0 || me.innerRadius < 0 || me.outerRadius < 0) {\n return;\n }\n\n ctx.save();\n\n if (offset && me.circumference < TAU) {\n var halfAngle = (me.startAngle + me.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n }\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n drawArc(ctx, me);\n drawBorder(ctx, me);\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 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 _ref2 = params || {},\n _ref2$move = _ref2.move,\n move = _ref2$move === void 0 ? true : _ref2$move,\n reverse = _ref2.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 _ref3 = params || {},\n _ref3$move = _ref3.move,\n move = _ref3$move === void 0 ? true : _ref3$move,\n reverse = _ref3.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 _iterator7 = _createForOfIteratorHelper(segments),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var segment = _step7.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 _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n}\n\nvar usePath2D = typeof Path2D === 'function';\n\nfunction _draw(ctx, line, start, count) {\n if (usePath2D && line.segments.length === 1) {\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 _this8;\n\n _classCallCheck(this, LineElement);\n\n _this8 = _super13.call(this);\n _this8.animated = true;\n _this8.options = undefined;\n _this8._loop = undefined;\n _this8._fullLoop = undefined;\n _this8._path = undefined;\n _this8._points = undefined;\n _this8._segments = undefined;\n _this8._decimated = false;\n _this8._pointsUpdated = false;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this8), cfg);\n }\n\n return _this8;\n }\n\n _createClass(LineElement, [{\n key: \"updateControlPoints\",\n value: function updateControlPoints(chartArea) {\n var me = this;\n var options = me.options;\n\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !me._pointsUpdated) {\n var loop = options.spanGaps ? me._loop : me._fullLoop;\n\n _updateBezierControlPoints(me._points, options, chartArea, loop);\n\n me._pointsUpdated = true;\n }\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 me = this;\n var options = me.options;\n var value = point[property];\n var points = me.points;\n\n var segments = _boundSegments(me, {\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 me = this;\n var segments = me.segments;\n\n var segmentMethod = _getSegmentMethod(me);\n\n var loop = me._loop;\n start = start || 0;\n count = count || me.points.length - start;\n\n var _iterator8 = _createForOfIteratorHelper(segments),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var segment = _step8.value;\n loop &= segmentMethod(ctx, me, segment, {\n start: start,\n end: start + count - 1\n });\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n\n return !!loop;\n }\n }, {\n key: \"draw\",\n value: function draw(ctx, chartArea, start, count) {\n var me = this;\n var options = me.options || {};\n var points = me.points || [];\n\n if (!points.length || !options.borderWidth) {\n return;\n }\n\n ctx.save();\n\n _draw(ctx, me, start, count);\n\n ctx.restore();\n\n if (me.animated) {\n me._pointsUpdated = false;\n me._path = undefined;\n }\n }\n }, {\n key: \"points\",\n set: function set(points) {\n var me = this;\n me._points = points;\n delete me._segments;\n delete me._path;\n me._pointsUpdated = false;\n },\n get: function get() {\n return this._points;\n }\n }, {\n key: \"segments\",\n get: function get() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\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 _this9;\n\n _classCallCheck(this, PointElement);\n\n _this9 = _super14.call(this);\n _this9.options = undefined;\n _this9.parsed = undefined;\n _this9.skip = undefined;\n _this9.stop = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this9), cfg);\n }\n\n return _this9;\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) {\n var me = this;\n var options = me.options;\n\n if (me.skip || options.radius < 0.1) {\n return;\n }\n\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, me.x, me.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 parseBorderSkipped(bar) {\n var edge = bar.options.borderSkipped;\n var res = {};\n\n if (!edge) {\n return res;\n }\n\n edge = bar.horizontal ? parseEdge(edge, 'left', 'right', bar.base > bar.x) : parseEdge(edge, 'bottom', 'top', bar.base < bar.y);\n res[edge] = true;\n return 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 skipOrLimit(skip, value, min, max) {\n return skip ? 0 : Math.max(Math.min(value, max), min);\n}\n\nfunction parseBorderWidth(bar, maxW, maxH) {\n var value = bar.options.borderWidth;\n var skip = parseBorderSkipped(bar);\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 = parseBorderSkipped(bar);\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\nvar BarElement = /*#__PURE__*/function (_Element5) {\n _inherits(BarElement, _Element5);\n\n var _super15 = _createSuper(BarElement);\n\n function BarElement(cfg) {\n var _this10;\n\n _classCallCheck(this, BarElement);\n\n _this10 = _super15.call(this);\n _this10.options = undefined;\n _this10.horizontal = undefined;\n _this10.base = undefined;\n _this10.width = undefined;\n _this10.height = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this10), cfg);\n }\n\n return _this10;\n }\n\n _createClass(BarElement, [{\n key: \"draw\",\n value: function draw(ctx) {\n var options = this.options;\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, outer);\n ctx.clip();\n addRectPath(ctx, inner);\n ctx.fillStyle = options.borderColor;\n ctx.fill('evenodd');\n }\n\n ctx.beginPath();\n addRectPath(ctx, inner);\n ctx.fillStyle = options.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 enableBorderRadius: true,\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.floor((i + 1) * bucketWidth) + 1 + 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 if (count <= 4 * availableWidth) {\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'].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 pointsFromSegments(boundary, line) {\n var _ref4 = boundary || {},\n _ref4$x = _ref4.x,\n x = _ref4$x === void 0 ? null : _ref4$x,\n _ref4$y = _ref4.y,\n y = _ref4$y === void 0 ? null : _ref4$y;\n\n var linePoints = line.points;\n var points = [];\n line.segments.forEach(function (segment) {\n var first = linePoints[segment.start];\n var last = linePoints[segment.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 chart = source.chart,\n 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(chart, 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\nvar isLineAndNotInHideAnimation = function isLineAndNotInHideAnimation(meta) {\n return meta.type === 'line' && !meta.hidden;\n};\n\nfunction getLinesBelow(chart, index) {\n var below = [];\n var metas = chart.getSortedVisibleDatasetMetas();\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 (isLineAndNotInHideAnimation(meta)) {\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 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 _iterator9 = _createForOfIteratorHelper(segments),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var segment = _step9.value;\n var bounds = getBounds(property, points[segment.start], points[segment.end], segment.loop);\n\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[segment.start],\n end: points[segment.end]\n });\n continue;\n }\n\n var targetSegments = _boundSegments(target, bounds);\n\n var _iterator10 = _createForOfIteratorHelper(targetSegments),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var tgt = _step10.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 _iterator11 = _createForOfIteratorHelper(fillSources),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var fillSource = _step11.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 _iterator11.e(err);\n } finally {\n _iterator11.f();\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 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 _ref5 = bounds || {},\n property = _ref5.property,\n start = _ref5.start,\n end = _ref5.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 _iterator12 = _createForOfIteratorHelper(segments),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var _ref7 = _step12.value;\n var src = _ref7.source;\n var tgt = _ref7.target;\n var start = _ref7.start;\n var end = _ref7.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 ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, getBounds(property, start, end));\n ctx.beginPath();\n var lineLoop = !!line.pathSegment(ctx, src);\n\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 var loop = lineLoop && targetLoop;\n\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.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 _ref8 = fillOption || {},\n _ref8$above = _ref8.above,\n above = _ref8$above === void 0 ? color : _ref8$above,\n _ref8$below = _ref8.below,\n below = _ref8$below === void 0 ? color : _ref8$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);\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 _this11;\n\n _classCallCheck(this, Legend);\n\n _this11 = _super16.call(this);\n _this11._added = false;\n _this11.legendHitBoxes = [];\n _this11._hoveredItem = null;\n _this11.doughnutMode = false;\n _this11.chart = config.chart;\n _this11.options = config.options;\n _this11.ctx = config.ctx;\n _this11.legendItems = undefined;\n _this11.columnSizes = undefined;\n _this11.lineWidths = undefined;\n _this11.maxHeight = undefined;\n _this11.maxWidth = undefined;\n _this11.top = undefined;\n _this11.bottom = undefined;\n _this11.left = undefined;\n _this11.right = undefined;\n _this11.height = undefined;\n _this11.width = undefined;\n _this11._margins = undefined;\n _this11.position = undefined;\n _this11.weight = undefined;\n _this11.fullSize = undefined;\n return _this11;\n }\n\n _createClass(Legend, [{\n key: \"update\",\n value: function update(maxWidth, maxHeight, margins) {\n var me = this;\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me._margins = margins;\n me.setDimensions();\n me.buildLabels();\n me.fit();\n }\n }, {\n key: \"setDimensions\",\n value: function setDimensions() {\n var me = this;\n\n if (me.isHorizontal()) {\n me.width = me.maxWidth;\n me.left = 0;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n me.top = 0;\n me.bottom = me.height;\n }\n }\n }, {\n key: \"buildLabels\",\n value: function buildLabels() {\n var me = this;\n var labelOpts = me.options.labels || {};\n var legendItems = callback(labelOpts.generateLabels, [me.chart], me) || [];\n\n if (labelOpts.filter) {\n legendItems = legendItems.filter(function (item) {\n return labelOpts.filter(item, me.chart.data);\n });\n }\n\n if (labelOpts.sort) {\n legendItems = legendItems.sort(function (a, b) {\n return labelOpts.sort(a, b, me.chart.data);\n });\n }\n\n if (me.options.reverse) {\n legendItems.reverse();\n }\n\n me.legendItems = legendItems;\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var me = this;\n var options = me.options,\n ctx = me.ctx;\n\n if (!options.display) {\n me.width = me.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 = me._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 (me.isHorizontal()) {\n width = me.maxWidth;\n height = me._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = me.maxHeight;\n width = me._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n\n me.width = Math.min(width, options.maxWidth || me.maxWidth);\n me.height = Math.min(height, options.maxHeight || me.maxHeight);\n }\n }, {\n key: \"_fitRows\",\n value: function _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n var me = this;\n var ctx = me.ctx,\n maxWidth = me.maxWidth,\n padding = me.options.labels.padding;\n var hitboxes = me.legendHitBoxes = [];\n var lineWidths = me.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 me.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 me = this;\n var ctx = me.ctx,\n maxHeight = me.maxHeight,\n padding = me.options.labels.padding;\n var hitboxes = me.legendHitBoxes = [];\n var columnSizes = me.columnSizes = [];\n var heightLimit = maxHeight - titleHeight;\n var totalWidth = padding;\n var currentColWidth = 0;\n var currentColHeight = 0;\n var left = 0;\n var top = 0;\n var col = 0;\n me.legendItems.forEach(function (legendItem, i) {\n var itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n\n if (i > 0 && currentColHeight + fontSize + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n top = 0;\n currentColWidth = currentColHeight = 0;\n }\n\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += fontSize + padding;\n hitboxes[i] = {\n left: left,\n top: top,\n col: col,\n width: itemWidth,\n height: itemHeight\n };\n top += 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 var me = this;\n\n if (!me.options.display) {\n return;\n }\n\n var titleHeight = me._computeTitleHeight();\n\n var hitboxes = me.legendHitBoxes,\n _me$options6 = me.options,\n align = _me$options6.align,\n padding = _me$options6.labels.padding;\n\n if (this.isHorizontal()) {\n var row = 0;\n\n var left = _alignStartEnd(align, me.left + padding, me.right - me.lineWidths[row]);\n\n var _iterator13 = _createForOfIteratorHelper(hitboxes),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var hitbox = _step13.value;\n\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, me.left + padding, me.right - me.lineWidths[row]);\n }\n\n hitbox.top += me.top + titleHeight + padding;\n hitbox.left = left;\n left += hitbox.width + padding;\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n } else {\n var col = 0;\n\n var top = _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - me.columnSizes[col].height);\n\n var _iterator14 = _createForOfIteratorHelper(hitboxes),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var _hitbox = _step14.value;\n\n if (_hitbox.col !== col) {\n col = _hitbox.col;\n top = _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - me.columnSizes[col].height);\n }\n\n _hitbox.top = top;\n _hitbox.left += me.left + padding;\n top += _hitbox.height + padding;\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.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 var me = this;\n\n if (me.options.display) {\n var ctx = me.ctx;\n clipArea(ctx, me);\n\n me._draw();\n\n unclipArea(ctx);\n }\n }\n }, {\n key: \"_draw\",\n value: function _draw() {\n var me = this;\n var opts = me.options,\n columnSizes = me.columnSizes,\n lineWidths = me.lineWidths,\n ctx = me.ctx;\n var align = opts.align,\n labelOpts = opts.labels;\n var defaultColor = defaults.color;\n var rtlHelper = getRtlAdapter(opts.rtl, me.left, me.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 me.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: legendItem.textAlign\n });\n };\n\n var isHorizontal = me.isHorizontal();\n\n var titleHeight = this._computeTitleHeight();\n\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, me.left + padding, me.right - lineWidths[0]),\n y: me.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: me.left + padding,\n y: _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - columnSizes[0].height),\n line: 0\n };\n }\n\n overrideTextDirection(me.ctx, opts.textDirection);\n var lineHeight = itemHeight + padding;\n me.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 + fontSize / 2 + textWidth;\n var x = cursor.x;\n var y = cursor.y;\n rtlHelper.setWidth(me.width);\n\n if (isHorizontal) {\n if (i > 0 && x + width + padding > me.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, me.left + padding, me.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > me.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, me.top + titleHeight + padding, me.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, me.right);\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(me.ctx, opts.textDirection);\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {\n var me = this;\n var opts = me.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, me.left, me.width);\n var ctx = me.ctx;\n var position = titleOpts.position;\n var halfFontSize = titleFont.size / 2;\n var topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n var y;\n var left = me.left;\n var maxWidth = me.width;\n\n if (this.isHorizontal()) {\n maxWidth = Math.max.apply(Math, _toConsumableArray(me.lineWidths));\n y = me.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, me.right - maxWidth);\n } else {\n var maxHeight = me.columnSizes.reduce(function (acc, size) {\n return Math.max(acc, size.height);\n }, 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, me.top, me.bottom - maxHeight - opts.labels.padding - me._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 me = this;\n var i, hitBox, lh;\n\n if (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\n lh = me.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 me.legendItems[i];\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e) {\n var me = this;\n var opts = me.options;\n\n if (!isListened(e.type, opts)) {\n return;\n }\n\n var hoveredItem = me._getLegendItemAt(e.x, e.y);\n\n if (e.type === 'mousemove') {\n var previous = me._hoveredItem;\n var sameItem = itemsEqual(previous, hoveredItem);\n\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, me], me);\n }\n\n me._hoveredItem = hoveredItem;\n\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, me], me);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, me], me);\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 _this12;\n\n _classCallCheck(this, Title);\n\n _this12 = _super17.call(this);\n _this12.chart = config.chart;\n _this12.options = config.options;\n _this12.ctx = config.ctx;\n _this12._padding = undefined;\n _this12.top = undefined;\n _this12.bottom = undefined;\n _this12.left = undefined;\n _this12.right = undefined;\n _this12.width = undefined;\n _this12.height = undefined;\n _this12.position = undefined;\n _this12.weight = undefined;\n _this12.fullSize = undefined;\n return _this12;\n }\n\n _createClass(Title, [{\n key: \"update\",\n value: function update(maxWidth, maxHeight) {\n var me = this;\n var opts = me.options;\n me.left = 0;\n me.top = 0;\n\n if (!opts.display) {\n me.width = me.height = me.right = me.bottom = 0;\n return;\n }\n\n me.width = me.right = maxWidth;\n me.height = me.bottom = maxHeight;\n var lineCount = isArray(opts.text) ? opts.text.length : 1;\n me._padding = toPadding(opts.padding);\n\n var textSize = lineCount * toFont(opts.font).lineHeight + me._padding.height;\n\n if (me.isHorizontal()) {\n me.height = textSize;\n } else {\n me.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 me = this;\n var ctx = me.ctx;\n var opts = me.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 + me._padding.top;\n\n var _me$_drawArgs = me._drawArgs(offset),\n titleX = _me$_drawArgs.titleX,\n titleY = _me$_drawArgs.titleY,\n maxWidth = _me$_drawArgs.maxWidth,\n rotation = _me$_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 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\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 : 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 var radiusAndPadding = cornerRadius + caretPadding;\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 -= radiusAndPadding;\n } else if (xAlign === 'right') {\n x += radiusAndPadding;\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 Object.assign(Object.create(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 _this13;\n\n _classCallCheck(this, Tooltip);\n\n _this13 = _super18.call(this);\n _this13.opacity = 0;\n _this13._active = [];\n _this13._chart = config._chart;\n _this13._eventPosition = undefined;\n _this13._size = undefined;\n _this13._cachedAnimations = undefined;\n _this13._tooltipItems = [];\n _this13.$animations = undefined;\n _this13.$context = undefined;\n _this13.options = config.options;\n _this13.dataPoints = undefined;\n _this13.title = undefined;\n _this13.beforeBody = undefined;\n _this13.body = undefined;\n _this13.afterBody = undefined;\n _this13.footer = undefined;\n _this13.xAlign = undefined;\n _this13.yAlign = undefined;\n _this13.x = undefined;\n _this13.y = undefined;\n _this13.height = undefined;\n _this13.width = undefined;\n _this13.caretX = undefined;\n _this13.caretY = undefined;\n _this13.labelColors = undefined;\n _this13.labelPointStyles = undefined;\n _this13.labelTextColors = undefined;\n return _this13;\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 me = this;\n var cached = me._cachedAnimations;\n\n if (cached) {\n return cached;\n }\n\n var chart = me._chart;\n var options = me.options.setContext(me.getContext());\n var opts = options.enabled && chart.options.animation && options.animations;\n var animations = new Animations(me._chart, opts);\n\n if (opts._cacheable) {\n me._cachedAnimations = Object.freeze(animations);\n }\n\n return animations;\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n var me = this;\n return me.$context || (me.$context = createTooltipContext(me._chart.getContext(), me, me._tooltipItems));\n }\n }, {\n key: \"getTitle\",\n value: function getTitle(context, options) {\n var me = this;\n var callbacks = options.callbacks;\n var beforeTitle = callbacks.beforeTitle.apply(me, [context]);\n var title = callbacks.title.apply(me, [context]);\n var afterTitle = callbacks.afterTitle.apply(me, [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 me = this;\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(me, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(me, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(me, 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 me = this;\n var callbacks = options.callbacks;\n var beforeFooter = callbacks.beforeFooter.apply(me, [tooltipItems]);\n var footer = callbacks.footer.apply(me, [tooltipItems]);\n var afterFooter = callbacks.afterFooter.apply(me, [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 me = this;\n var active = me._active;\n var data = me._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(me._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(me, context));\n labelPointStyles.push(scoped.labelPointStyle.call(me, context));\n labelTextColors.push(scoped.labelTextColor.call(me, context));\n });\n me.labelColors = labelColors;\n me.labelPointStyles = labelPointStyles;\n me.labelTextColors = labelTextColors;\n me.dataPoints = tooltipItems;\n return tooltipItems;\n }\n }, {\n key: \"update\",\n value: function update(changed, replay) {\n var me = this;\n var options = me.options.setContext(me.getContext());\n var active = me._active;\n var properties;\n var tooltipItems = [];\n\n if (!active.length) {\n if (me.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n var position = positioners[options.position].call(me, active, me._eventPosition);\n tooltipItems = me._createItems(options);\n me.title = me.getTitle(tooltipItems, options);\n me.beforeBody = me.getBeforeBody(tooltipItems, options);\n me.body = me.getBody(tooltipItems, options);\n me.afterBody = me.getAfterBody(tooltipItems, options);\n me.footer = me.getFooter(tooltipItems, options);\n var size = me._size = getTooltipSize(me, options);\n var positionAndSize = Object.assign({}, position, size);\n var alignment = determineAlignment(me._chart, options, positionAndSize);\n var backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, me._chart);\n me.xAlign = alignment.xAlign;\n me.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 me._tooltipItems = tooltipItems;\n me.$context = undefined;\n\n if (properties) {\n me._resolveAnimations().update(me, properties);\n }\n\n if (changed && options.external) {\n options.external.call(me, {\n chart: me._chart,\n tooltip: me,\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 cornerRadius = options.cornerRadius,\n caretSize = options.caretSize;\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 + cornerRadius + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - cornerRadius - 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 me = this;\n var title = me.title;\n var length = title.length;\n var titleFont, titleSpacing, i;\n\n if (length) {\n var rtlHelper = getRtlAdapter(options.rtl, me.x, me.width);\n pt.x = getAlignedX(me, 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 me = this;\n var labelColors = me.labelColors[i];\n var labelPointStyle = me.labelPointStyles[i];\n var boxHeight = options.boxHeight,\n boxWidth = options.boxWidth;\n var bodyFont = toFont(options.bodyFont);\n var colorX = getAlignedX(me, '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);\n var innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 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 = me.labelTextColors[i];\n }\n }, {\n key: \"drawBody\",\n value: function drawBody(pt, ctx, options) {\n var me = this;\n var body = me.body;\n var bodySpacing = options.bodySpacing,\n bodyAlign = options.bodyAlign,\n displayColors = options.displayColors,\n boxHeight = options.boxHeight,\n boxWidth = options.boxWidth;\n var bodyFont = toFont(options.bodyFont);\n var bodyLineHeight = bodyFont.lineHeight;\n var xLinePadding = 0;\n var rtlHelper = getRtlAdapter(options.rtl, me.x, me.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(me, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(me.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + 1 : boxWidth + 2 : 0;\n\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = me.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n\n if (displayColors && lines.length) {\n me._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(me.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n }, {\n key: \"drawFooter\",\n value: function drawFooter(pt, ctx, options) {\n var me = this;\n var footer = me.footer;\n var length = footer.length;\n var footerFont, i;\n\n if (length) {\n var rtlHelper = getRtlAdapter(options.rtl, me.x, me.width);\n pt.x = getAlignedX(me, 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 var radius = options.cornerRadius;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + radius, y);\n\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, 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 me = this;\n var chart = me._chart;\n var anims = me.$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(me, me._active, me._eventPosition);\n\n if (!position) {\n return;\n }\n\n var size = me._size = getTooltipSize(me, options);\n var positionAndSize = Object.assign({}, position, me._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 me.xAlign = alignment.xAlign;\n me.yAlign = alignment.yAlign;\n me.width = size.width;\n me.height = size.height;\n me.caretX = position.x;\n me.caretY = position.y;\n\n me._resolveAnimations().update(me, point);\n }\n }\n }\n }, {\n key: \"draw\",\n value: function draw(ctx) {\n var me = this;\n var options = me.options.setContext(me.getContext());\n var opacity = me.opacity;\n\n if (!opacity) {\n return;\n }\n\n me._updateAnimationTarget(options);\n\n var tooltipSize = {\n width: me.width,\n height: me.height\n };\n var pt = {\n x: me.x,\n y: me.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n var padding = toPadding(options.padding);\n var hasTooltipContent = me.title.length || me.beforeBody.length || me.body.length || me.afterBody.length || me.footer.length;\n\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n me.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n me.drawTitle(pt, ctx, options);\n me.drawBody(pt, ctx, options);\n me.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 me = this;\n var lastActive = me._active;\n var active = activeElements.map(function (_ref9) {\n var datasetIndex = _ref9.datasetIndex,\n index = _ref9.index;\n\n var meta = me._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 = me._positionChanged(active, eventPosition);\n\n if (changed || positionChanged) {\n me._active = active;\n me._eventPosition = eventPosition;\n me.update(true);\n }\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e, replay) {\n var me = this;\n var options = me.options;\n var lastActive = me._active || [];\n var changed = false;\n var active = [];\n\n if (e.type !== 'mouseout') {\n active = me._chart.getElementsAtEventForMode(e, options.mode, options, replay);\n\n if (options.reverse) {\n active.reverse();\n }\n }\n\n var positionChanged = me._positionChanged(active, e);\n\n changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n\n if (changed) {\n me._active = active;\n\n if (options.enabled || options.external) {\n me._eventPosition = {\n x: e.x,\n y: e.y\n };\n me.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 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 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 _this14;\n\n _classCallCheck(this, CategoryScale);\n\n _this14 = _super19.call(this, cfg);\n _this14._startValue = undefined;\n _this14._valueRange = 0;\n return _this14;\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 me = this;\n\n var _me$getUserBounds2 = me.getUserBounds(),\n minDefined = _me$getUserBounds2.minDefined,\n maxDefined = _me$getUserBounds2.maxDefined;\n\n var _me$getMinMax = me.getMinMax(true),\n min = _me$getMinMax.min,\n max = _me$getMinMax.max;\n\n if (me.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n\n if (!maxDefined) {\n max = me.getLabels().length - 1;\n }\n }\n\n me.min = min;\n me.max = max;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var me = this;\n var min = me.min;\n var max = me.max;\n var offset = me.options.offset;\n var ticks = [];\n var labels = me.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n me._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n me._startValue = me.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 me = this;\n var labels = me.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 var me = this;\n\n _get(_getPrototypeOf(CategoryScale.prototype), \"configure\", this).call(this);\n\n if (!me.isHorizontal()) {\n me._reversePixels = !me._reversePixels;\n }\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n var me = this;\n\n if (typeof value !== 'number') {\n value = me.parse(value);\n }\n\n return value === null ? NaN : me.getPixelForDecimal((value - me._startValue) / me._valueRange);\n }\n }, {\n key: \"getPixelForTick\",\n value: function getPixelForTick(index) {\n var me = this;\n var ticks = me.ticks;\n\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n\n return me.getPixelForValue(ticks[index].value);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var me = this;\n return Math.round(me._startValue + me.getDecimalForPixel(pixel) * me._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 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 horizontal = generationOptions.horizontal;\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;\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 niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = 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 factor = Math.pow(10, isNullOrUndef(precision) ? _decimalPlaces(spacing) : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n var j = 0;\n\n if (minDefined) {\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, minSpacing * (horizontal ? ('' + min).length : 1))) {\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) {\n if (almostEquals(ticks[ticks.length - 1].value, max, minSpacing * (horizontal ? ('' + max).length : 1))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else {\n ticks.push({\n value: niceMax\n });\n }\n\n return ticks;\n}\n\nvar LinearScaleBase = /*#__PURE__*/function (_Scale2) {\n _inherits(LinearScaleBase, _Scale2);\n\n var _super20 = _createSuper(LinearScaleBase);\n\n function LinearScaleBase(cfg) {\n var _this15;\n\n _classCallCheck(this, LinearScaleBase);\n\n _this15 = _super20.call(this, cfg);\n _this15.start = undefined;\n _this15.end = undefined;\n _this15._startValue = undefined;\n _this15._endValue = undefined;\n _this15._valueRange = 0;\n return _this15;\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 me = this;\n var _me$options7 = me.options,\n beginAtZero = _me$options7.beginAtZero,\n stacked = _me$options7.stacked;\n\n var _me$getUserBounds3 = me.getUserBounds(),\n minDefined = _me$getUserBounds3.minDefined,\n maxDefined = _me$getUserBounds3.maxDefined;\n\n var min = me.min,\n max = me.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 || stacked) {\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 setMax(max + 1);\n\n if (!beginAtZero) {\n setMin(min - 1);\n }\n }\n\n me.min = min;\n me.max = max;\n }\n }, {\n key: \"getTickLimit\",\n value: function getTickLimit() {\n var me = this;\n var tickOpts = me.options.ticks;\n var maxTicksLimit = tickOpts.maxTicksLimit,\n stepSize = tickOpts.stepSize;\n var maxTicks;\n\n if (stepSize) {\n maxTicks = Math.ceil(me.max / stepSize) - Math.floor(me.min / stepSize) + 1;\n } else {\n maxTicks = me.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 me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n var maxTicks = me.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n var numericGeneratorOptions = {\n maxTicks: maxTicks,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: me._maxDigits(),\n horizontal: me.isHorizontal()\n };\n var dataRange = me._range || me;\n var ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, me, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n me.start = me.max;\n me.end = me.min;\n } else {\n me.start = me.min;\n me.end = me.max;\n }\n\n return ticks;\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var me = this;\n var ticks = me.ticks;\n var start = me.min;\n var end = me.max;\n\n _get(_getPrototypeOf(LinearScaleBase.prototype), \"configure\", this).call(this);\n\n if (me.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 me._startValue = start;\n me._endValue = end;\n me._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 me = this;\n\n var _me$getMinMax2 = me.getMinMax(true),\n min = _me$getMinMax2.min,\n max = _me$getMinMax2.max;\n\n me.min = isNumberFinite(min) ? min : 0;\n me.max = isNumberFinite(max) ? max : 1;\n me.handleTickRangeOptions();\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n var me = this;\n\n if (me.isHorizontal()) {\n return Math.ceil(me.width / 40);\n }\n\n var tickFont = me._resolveTickFontOptions(0);\n\n return Math.ceil(me.height / tickFont.lineHeight);\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 _this16;\n\n _classCallCheck(this, LogarithmicScale);\n\n _this16 = _super22.call(this, cfg);\n _this16.start = undefined;\n _this16.end = undefined;\n _this16._startValue = undefined;\n _this16._valueRange = 0;\n return _this16;\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 me = this;\n\n var _me$getMinMax3 = me.getMinMax(true),\n min = _me$getMinMax3.min,\n max = _me$getMinMax3.max;\n\n me.min = isNumberFinite(min) ? Math.max(0, min) : null;\n me.max = isNumberFinite(max) ? Math.max(0, max) : null;\n\n if (me.options.beginAtZero) {\n me._zero = true;\n }\n\n me.handleTickRangeOptions();\n }\n }, {\n key: \"handleTickRangeOptions\",\n value: function handleTickRangeOptions() {\n var me = this;\n\n var _me$getUserBounds4 = me.getUserBounds(),\n minDefined = _me$getUserBounds4.minDefined,\n maxDefined = _me$getUserBounds4.maxDefined;\n\n var min = me.min;\n var max = me.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 (me._zero && me.min !== me._suggestedMin && min === exp(me.min, 0)) {\n setMin(exp(min, -1));\n }\n\n me.min = min;\n me.max = max;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var me = this;\n var opts = me.options;\n var generationOptions = {\n min: me._userMin,\n max: me._userMax\n };\n var ticks = generateTicks(generationOptions, me);\n\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, me, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n me.start = me.max;\n me.end = me.min;\n } else {\n me.start = me.min;\n me.end = me.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 me = this;\n var start = me.min;\n\n _get(_getPrototypeOf(LogarithmicScale.prototype), \"configure\", this).call(this);\n\n me._startValue = log10(start);\n me._valueRange = log10(me.max) - log10(start);\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n var me = this;\n\n if (value === undefined || value === 0) {\n value = me.min;\n }\n\n if (value === null || isNaN(value)) {\n return NaN;\n }\n\n return me.getPixelForDecimal(value === me.min ? 0 : (log10(value) - me._startValue) / me._valueRange);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var me = this;\n var decimal = me.getDecimalForPixel(pixel);\n return Math.pow(10, me._startValue + decimal * me._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, lineHeight, label) {\n if (isArray(label)) {\n return {\n w: _longestText(ctx, ctx.font, label),\n h: label.length * lineHeight\n };\n }\n\n return {\n w: ctx.measureText(label).width,\n h: 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 i, textSize, pointPosition;\n var labelSizes = [];\n var padding = [];\n var valueCount = scale.getLabels().length;\n\n for (i = 0; i < valueCount; i++) {\n var _opts = scale.options.pointLabels.setContext(scale.getContext(i));\n\n padding[i] = _opts.padding;\n pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i]);\n var plFont = toFont(_opts.font);\n scale.ctx.font = plFont.string;\n textSize = measureLabelSize(scale.ctx, plFont.lineHeight, 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 = [];\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 (i = 0; i < valueCount; i++) {\n var extra = i === 0 ? tickBackdropHeight / 2 : 0;\n var pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i]);\n\n var _angle = toDegrees(scale.getIndexAngle(i));\n\n var size = labelSizes[i];\n adjustPointPositionForLabelHeight(_angle, size, pointLabelPosition);\n var textAlign = getTextAlignForAngle(_angle);\n var left = void 0;\n\n if (textAlign === 'left') {\n left = pointLabelPosition.x;\n } else if (textAlign === 'center') {\n left = pointLabelPosition.x - size.w / 2;\n } else {\n left = pointLabelPosition.x - size.w;\n }\n\n var right = left + size.w;\n scale._pointLabelItems[i] = {\n x: pointLabelPosition.x,\n y: pointLabelPosition.y,\n textAlign: textAlign,\n left: left,\n top: pointLabelPosition.y,\n right: right,\n bottom: pointLabelPosition.y + size.h\n };\n }\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 adjustPointPositionForLabelHeight(angle, textSize, position) {\n if (angle === 90 || angle === 270) {\n position.y -= textSize.h / 2;\n } else if (angle > 270 || angle < 90) {\n position.y -= textSize.h;\n }\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.getContext(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\nvar RadialLinearScale = /*#__PURE__*/function (_LinearScaleBase2) {\n _inherits(RadialLinearScale, _LinearScaleBase2);\n\n var _super23 = _createSuper(RadialLinearScale);\n\n function RadialLinearScale(cfg) {\n var _this17;\n\n _classCallCheck(this, RadialLinearScale);\n\n _this17 = _super23.call(this, cfg);\n _this17.xCenter = undefined;\n _this17.yCenter = undefined;\n _this17.drawingArea = undefined;\n _this17._pointLabels = [];\n _this17._pointLabelItems = [];\n return _this17;\n }\n\n _createClass(RadialLinearScale, [{\n key: \"setDimensions\",\n value: function setDimensions() {\n var me = this;\n me.width = me.maxWidth;\n me.height = me.maxHeight;\n me.paddingTop = getTickBackdropHeight(me.options) / 2;\n me.xCenter = Math.floor(me.width / 2);\n me.yCenter = Math.floor((me.height - me.paddingTop) / 2);\n me.drawingArea = Math.min(me.height - me.paddingTop, me.width) / 2;\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var me = this;\n\n var _me$getMinMax4 = me.getMinMax(false),\n min = _me$getMinMax4.min,\n max = _me$getMinMax4.max;\n\n me.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n me.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n me.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 me = this;\n LinearScaleBase.prototype.generateTickLabels.call(me, ticks);\n me._pointLabels = me.getLabels().map(function (value, index) {\n var label = callback(me.options.pointLabels.callback, [value, index], me);\n return label || label === 0 ? label : '';\n });\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var me = this;\n var opts = me.options;\n\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(me);\n } else {\n me.setCenterPoint(0, 0, 0, 0);\n }\n }\n }, {\n key: \"_setReductions\",\n value: function _setReductions(largestPossibleRadius, furthestLimits, furthestAngles) {\n var me = this;\n var radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n var radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\n var radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n var radiusReductionBottom = -Math.max(furthestLimits.b - (me.height - me.paddingTop), 0) / Math.cos(furthestAngles.b);\n radiusReductionLeft = numberOrZero(radiusReductionLeft);\n radiusReductionRight = numberOrZero(radiusReductionRight);\n radiusReductionTop = numberOrZero(radiusReductionTop);\n radiusReductionBottom = numberOrZero(radiusReductionBottom);\n me.drawingArea = Math.max(largestPossibleRadius / 2, Math.min(Math.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2), Math.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2)));\n me.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n }\n }, {\n key: \"setCenterPoint\",\n value: function setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n var me = this;\n var maxRight = me.width - rightMovement - me.drawingArea;\n var maxLeft = leftMovement + me.drawingArea;\n var maxTop = topMovement + me.drawingArea;\n var maxBottom = me.height - me.paddingTop - bottomMovement - me.drawingArea;\n me.xCenter = Math.floor((maxLeft + maxRight) / 2 + me.left);\n me.yCenter = Math.floor((maxTop + maxBottom) / 2 + me.top + me.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 var me = this;\n\n if (isNullOrUndef(value)) {\n return NaN;\n }\n\n var scalingFactor = me.drawingArea / (me.max - me.min);\n\n if (me.options.reverse) {\n return (me.max - value) * scalingFactor;\n }\n\n return (value - me.min) * scalingFactor;\n }\n }, {\n key: \"getValueForDistanceFromCenter\",\n value: function getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n\n var me = this;\n var scaledDistance = distance / (me.drawingArea / (me.max - me.min));\n return me.options.reverse ? me.max - scaledDistance : me.min + scaledDistance;\n }\n }, {\n key: \"getPointPosition\",\n value: function getPointPosition(index, distanceFromCenter) {\n var me = this;\n var angle = me.getIndexAngle(index) - HALF_PI;\n return {\n x: Math.cos(angle) * distanceFromCenter + me.xCenter,\n y: Math.sin(angle) * distanceFromCenter + me.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 me = this;\n var _me$options8 = me.options,\n backgroundColor = _me$options8.backgroundColor,\n circular = _me$options8.grid.circular;\n\n if (backgroundColor) {\n var ctx = me.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(me, me.getDistanceFromCenterForValue(me._endValue), circular, me.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 me = this;\n var ctx = me.ctx;\n var opts = me.options;\n var angleLines = opts.angleLines,\n grid = opts.grid;\n var labelCount = me.getLabels().length;\n var i, offset, position;\n\n if (opts.pointLabels.display) {\n drawPointLabels(me, labelCount);\n }\n\n if (grid.display) {\n me.ticks.forEach(function (tick, index) {\n if (index !== 0) {\n offset = me.getDistanceFromCenterForValue(tick.value);\n var optsAtIndex = grid.setContext(me.getContext(index - 1));\n drawRadiusLine(me, optsAtIndex, offset, labelCount);\n }\n });\n }\n\n if (angleLines.display) {\n ctx.save();\n\n for (i = me.getLabels().length - 1; i >= 0; i--) {\n var optsAtIndex = angleLines.setContext(me.getContext(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 = me.getDistanceFromCenterForValue(opts.ticks.reverse ? me.min : me.max);\n position = me.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(me.xCenter, me.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 me = this;\n var ctx = me.ctx;\n var opts = me.options;\n var tickOpts = opts.ticks;\n\n if (!tickOpts.display) {\n return;\n }\n\n var startAngle = me.getIndexAngle(0);\n var offset, width;\n ctx.save();\n ctx.translate(me.xCenter, me.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n me.ticks.forEach(function (tick, index) {\n if (index === 0 && !opts.reverse) {\n return;\n }\n\n var optsAtIndex = tickOpts.setContext(me.getContext(index));\n var tickFont = toFont(optsAtIndex.font);\n offset = me.getDistanceFromCenterForValue(me.ticks[index].value);\n\n if (optsAtIndex.showLabelBackdrop) {\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 _this18;\n\n _classCallCheck(this, TimeScale);\n\n _this18 = _super24.call(this, props);\n _this18._cache = {\n data: [],\n labels: [],\n all: []\n };\n _this18._unit = 'day';\n _this18._majorUnit = undefined;\n _this18._offsets = {};\n _this18._normalized = false;\n _this18._parseOpts = undefined;\n return _this18;\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 me = this;\n var options = me.options;\n var adapter = me._adapter;\n var unit = options.time.unit || 'day';\n\n var _me$getUserBounds5 = me.getUserBounds(),\n min = _me$getUserBounds5.min,\n max = _me$getUserBounds5.max,\n minDefined = _me$getUserBounds5.minDefined,\n maxDefined = _me$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(me._getLabelBounds());\n\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(me.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 me.min = Math.min(min, max - 1);\n me.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 me = this;\n var options = me.options;\n var timeOpts = options.time;\n var tickOpts = options.ticks;\n var timestamps = tickOpts.source === 'labels' ? me.getLabelTimestamps() : me._generate();\n\n if (options.bounds === 'ticks' && timestamps.length) {\n me.min = me._userMin || timestamps[0];\n me.max = me._userMax || timestamps[timestamps.length - 1];\n }\n\n var min = me.min;\n var max = me.max;\n\n var ticks = _filterBetween(timestamps, min, max);\n\n me._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, me.min, me.max, me._getLabelCapacity(min)) : determineUnitForFormatting(me, ticks.length, timeOpts.minUnit, me.min, me.max));\n me._majorUnit = !tickOpts.major.enabled || me._unit === 'year' ? undefined : determineMajorUnit(me._unit);\n me.initOffsets(timestamps);\n\n if (options.reverse) {\n ticks.reverse();\n }\n\n return ticksFromTimestamps(me, ticks, me._majorUnit);\n }\n }, {\n key: \"initOffsets\",\n value: function initOffsets(timestamps) {\n var me = this;\n var start = 0;\n var end = 0;\n var first, last;\n\n if (me.options.offset && timestamps.length) {\n first = me.getDecimalForValue(timestamps[0]);\n\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (me.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n\n last = me.getDecimalForValue(timestamps[timestamps.length - 1]);\n\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - me.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 me._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 me = this;\n var adapter = me._adapter;\n var min = me.min;\n var max = me.max;\n var options = me.options;\n var timeOpts = options.time;\n var minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, me._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' && me.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 me = this;\n var adapter = me._adapter;\n var timeOpts = me.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 me = this;\n var options = me.options;\n var formats = options.time.displayFormats;\n var unit = me._unit;\n var majorUnit = me._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 = me._adapter.format(time, format || (major ? majorFormat : minorFormat));\n\n var formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], me) : 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 var me = this;\n return value === null ? NaN : (value - me.min) / (me.max - me.min);\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n var me = this;\n var offsets = me._offsets;\n var pos = me.getDecimalForValue(value);\n return me.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var me = this;\n var offsets = me._offsets;\n var pos = me.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return me.min + pos * (me.max - me.min);\n }\n }, {\n key: \"_getLabelSize\",\n value: function _getLabelSize(label) {\n var me = this;\n var ticksOpts = me.options.ticks;\n var tickLabelWidth = me.ctx.measureText(label).width;\n var angle = toRadians(me.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n var cosRotation = Math.cos(angle);\n var sinRotation = Math.sin(angle);\n\n var tickFontSize = me._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 me = this;\n var timeOpts = me.options.time;\n var displayFormats = timeOpts.displayFormats;\n var format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n\n var exampleLabel = me._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(me, [exampleTime], me._majorUnit), format);\n\n var size = me._getLabelSize(exampleLabel);\n\n var capacity = Math.floor(me.isHorizontal() ? me.width / size.w : me.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n }, {\n key: \"getDataTimestamps\",\n value: function getDataTimestamps() {\n var me = this;\n var timestamps = me._cache.data || [];\n var i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var metas = me.getMatchingVisibleMetas();\n\n if (me._normalized && metas.length) {\n return me._cache.data = metas[0].controller.getAllParsedValues(me);\n }\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(me));\n }\n\n return me._cache.data = me.normalize(timestamps);\n }\n }, {\n key: \"getLabelTimestamps\",\n value: function getLabelTimestamps() {\n var me = this;\n var timestamps = me._cache.labels || [];\n var i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var labels = me.getLabels();\n\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(_parse(me, labels[i]));\n }\n\n return me._cache.labels = me._normalized ? timestamps : me.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 prevSource, nextSource, prevTarget, nextTarget;\n\n if (reverse) {\n prevSource = Math.floor(val);\n nextSource = Math.ceil(val);\n prevTarget = table[prevSource];\n nextTarget = table[nextSource];\n } else {\n var result = _lookup(table, val);\n\n prevTarget = result.lo;\n nextTarget = result.hi;\n prevSource = table[prevTarget];\n nextSource = table[nextTarget];\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 _this19;\n\n _classCallCheck(this, TimeSeriesScale);\n\n _this19 = _super25.call(this, props);\n _this19._table = [];\n _this19._maxIndex = undefined;\n return _this19;\n }\n\n _createClass(TimeSeriesScale, [{\n key: \"initOffsets\",\n value: function initOffsets() {\n var me = this;\n\n var timestamps = me._getTimestampsForTable();\n\n me._table = me.buildLookupTable(timestamps);\n me._maxIndex = me._table.length - 1;\n\n _get(_getPrototypeOf(TimeSeriesScale.prototype), \"initOffsets\", this).call(this, timestamps);\n }\n }, {\n key: \"buildLookupTable\",\n value: function buildLookupTable(timestamps) {\n var me = this;\n var min = me.min,\n max = me.max;\n\n if (!timestamps.length) {\n return [{\n time: min,\n pos: 0\n }, {\n time: max,\n pos: 1\n }];\n }\n\n var items = [min];\n var i, ilen, curr;\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 items.push(max);\n return items;\n }\n }, {\n key: \"_getTimestampsForTable\",\n value: function _getTimestampsForTable() {\n var me = this;\n var timestamps = me._cache.all || [];\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var data = me.getDataTimestamps();\n var label = me.getLabelTimestamps();\n\n if (data.length && label.length) {\n timestamps = me.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n\n timestamps = me._cache.all = timestamps;\n return timestamps;\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value, index) {\n var me = this;\n var offsets = me._offsets;\n var pos = me._normalized && me._maxIndex > 0 && !isNullOrUndef(index) ? index / me._maxIndex : me.getDecimalForValue(value);\n return me.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n }, {\n key: \"getDecimalForValue\",\n value: function getDecimalForValue(value) {\n return interpolate(this._table, value) / this._maxIndex;\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var me = this;\n var offsets = me._offsets;\n var decimal = me.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(me._table, decimal * this._maxIndex, 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, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, animator, controllers, elements, layouts, plugins, registerables, registry, scales };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var _slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = 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 return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\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 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 /* 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\n\n\n var version = \"3.5.1\",\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 var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function funescape(escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem.namespaceURI,\n docElem = (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function CHILD(type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n ;\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // 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 }); // Initialize a jQuery object\n // 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 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 var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // 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 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 pipe()\n /* fnDone, fnFail, fnProgress */\n {\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 master Deferred\n master = 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 master.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, master.done(updateFunc(i)).resolve, master.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (master.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return master.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), master.reject);\n }\n\n return master.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\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 } // 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\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 }; // Matches dashed string for camelizing\n\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 var acceptData = function acceptData(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\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 var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return dataUser.access(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function _data(elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function removeData(key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\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 var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\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 var isHiddenWithinTree = function isHiddenWithinTree(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\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 var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\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 })(); // We have to close these tags to support XHTML (#13200)\n\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 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 } // Mark scripts as having already been evaluated\n\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 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 var rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n 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();\n return 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: function which(event) {\n var button = event.button; // Add which for key events\n\n if (event.which == null && rkeyEvent.test(event.type)) {\n return event.charCode != null ? event.charCode : event.keyCode;\n } // Add which for click: 1 === left; 2 === middle; 3 === right\n\n\n if (!event.which && button !== undefined && rmouseEvent.test(event.type)) {\n if (button & 1) {\n return 1;\n }\n\n if (button & 2) {\n return 3;\n }\n\n if (button & 4) {\n return 2;\n }\n\n return 0;\n }\n\n return event.which;\n }\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 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 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 var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function getStyles(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\n var swap = function swap(elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\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 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\";\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height) > 3;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\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 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 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 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\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\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 }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\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 var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function removeAttr(elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function set(elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\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 }); // 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 function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = _typeof(value),\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function get(elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\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 }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml;\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 xml = undefined;\n }\n\n if (!xml || xml.getElementsByTagName(\"parsererror\").length) {\n jQuery.error(\"Invalid XML: \" + data);\n }\n\n return xml;\n };\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 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\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1) {\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\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function textScript() {}\n },\n dataFilter: function dataFilter(response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function unwrap(selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = _callback();\n errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (_callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n _callback = _callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (_callback) {\n throw e;\n }\n }\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, _callback2;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"