{"version":3,"sources":["webpack:///./node_modules/chart.js/dist/Chart.js","webpack:///./src/views/charts-and-maps/charts/chartjs/Chartjs.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsBarChart.vue","webpack:///./node_modules/vue-chartjs/es/mixins/index.js","webpack:///./node_modules/vue-chartjs/es/BaseCharts.js","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentBarChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentLineChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentPieChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentRadarChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentPolarAreaChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentDoughnutChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentHorizontalBarChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentBubbleChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentScatterChart.vue","webpack:///src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentBarChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentBarChart.vue?e8b5","webpack:///src/views/charts-and-maps/charts/chartjs/ChartjsBarChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsBarChart.vue?c081","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsBarChart.vue?7a66","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsLineChart.vue","webpack:///src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentLineChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentLineChart.vue?7153","webpack:///src/views/charts-and-maps/charts/chartjs/ChartjsLineChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsLineChart.vue?7448","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsLineChart.vue?205d","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsPieChart.vue","webpack:///src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentPieChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentPieChart.vue?ceb8","webpack:///src/views/charts-and-maps/charts/chartjs/ChartjsPieChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsPieChart.vue?441f","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsPieChart.vue?b4ec","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsRadarChart.vue","webpack:///src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentRadarChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentRadarChart.vue?dc08","webpack:///src/views/charts-and-maps/charts/chartjs/ChartjsRadarChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsRadarChart.vue?5933","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsRadarChart.vue?d698","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsPolarAreaChart.vue","webpack:///src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentPolarAreaChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentPolarAreaChart.vue?3ca4","webpack:///src/views/charts-and-maps/charts/chartjs/ChartjsPolarAreaChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsPolarAreaChart.vue?0bc9","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsPolarAreaChart.vue?0d9c","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsDoughnutChart.vue","webpack:///src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentDoughnutChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentDoughnutChart.vue?5e6f","webpack:///src/views/charts-and-maps/charts/chartjs/ChartjsDoughnutChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsDoughnutChart.vue?4097","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsDoughnutChart.vue?4b13","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsHorizontalBarChart.vue","webpack:///src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentHorizontalBarChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentHorizontalBarChart.vue?85da","webpack:///src/views/charts-and-maps/charts/chartjs/ChartjsHorizontalBarChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsHorizontalBarChart.vue?9d3e","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsHorizontalBarChart.vue?7029","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsBubbleChart.vue","webpack:///src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentBubbleChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentBubbleChart.vue?9c45","webpack:///src/views/charts-and-maps/charts/chartjs/ChartjsBubbleChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsBubbleChart.vue?cfdb","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsBubbleChart.vue?af8a","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsScatterChart.vue","webpack:///src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentScatterChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/charts-components/ChartjsComponentScatterChart.vue?9d16","webpack:///src/views/charts-and-maps/charts/chartjs/ChartjsScatterChart.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsScatterChart.vue?1c41","webpack:///./src/views/charts-and-maps/charts/chartjs/ChartjsScatterChart.vue?23a4","webpack:///src/views/charts-and-maps/charts/chartjs/Chartjs.vue","webpack:///./src/views/charts-and-maps/charts/chartjs/Chartjs.vue?1e6f","webpack:///./src/views/charts-and-maps/charts/chartjs/Chartjs.vue?d3bb"],"names":["global","factory","module","exports","e","this","moment","hasOwnProperty","conversions","rgb2hsl","rgb2hsv","rgb2hwb","rgb2cmyk","rgb2keyword","rgb2xyz","rgb2lab","rgb2lch","hsl2rgb","hsl2hsv","hsl2hwb","hsl2cmyk","hsl2keyword","hsv2rgb","hsv2hsl","hsv2hwb","hsv2cmyk","hsv2keyword","hwb2rgb","hwb2hsl","hwb2hsv","hwb2cmyk","hwb2keyword","cmyk2rgb","cmyk2hsl","cmyk2hsv","cmyk2hwb","cmyk2keyword","keyword2rgb","keyword2hsl","keyword2hsv","keyword2hwb","keyword2cmyk","keyword2lab","keyword2xyz","xyz2rgb","xyz2lab","xyz2lch","lab2xyz","lab2rgb","lab2lch","lch2lab","lch2xyz","lch2rgb","rgb","h","s","l","r","g","b","min","Math","max","delta","v","w","c","m","y","k","reverseKeywords","JSON","stringify","pow","x","z","a","xyz","args","hsl","t1","t2","t3","val","i","sv","hsv","hi","floor","f","p","q","t","sl","hwb","n","wh","bl","ratio","cmyk","lab","y2","hr","atan2","PI","sqrt","lch","cos","sin","keyword","cssKeywords","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","key","convert","Converter","func","arg","Array","prototype","slice","call","arguments","pair","exec","from","to","undefined","length","round","convs","routeSpace","space","values","getValues","setValues","vals","fspace","forEach","colorConvert","colorName","colorString","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","string","abbr","hex","rgba","per","match","hexAlpha","parseInt","parseFloat","scale","alpha","isNaN","hsla","hexDouble","reverseNames","num","str","toString","toUpperCase","name","Color","obj","valid","lightness","value","whiteness","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","concat","cmykArray","rgbaArray","hslaArray","setChannel","hue","saturation","saturationv","blackness","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","yiq","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","toJSON","clone","type","result","source","target","prop","console","error","spaces","maxes","charAt","capped","chans","sname","index","svalues","window","chartjsColor","helpers","noop","uid","id","isNullOrUndef","isArray","Object","substr","isObject","isFinite","Number","valueOrDefault","defaultValue","valueAtIndexOrDefault","callback","fn","thisArg","apply","each","loopable","reverse","len","keys","arrayEquals","a0","a1","ilen","v0","v1","map","klen","_merger","options","tval","sval","merge","_mergerIf","mergeIf","sources","merger","extend","setFn","inherits","extensions","me","ChartElement","constructor","Surrogate","__super__","helpers_core","callCallback","indexOf","array","item","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clear","chart","ctx","clearRect","width","height","roundedRect","radius","left","top","right","bottom","moveTo","arc","closePath","rect","drawPoint","style","rotation","xOffset","yOffset","size","cornerRadius","rad","drawImage","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","point","area","epsilon","clipArea","save","clip","unclipArea","restore","previous","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","defaults","_set","scope","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","matches","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","lineHeight","fontStyle","resolve","inputs","context","helpers$1","easing","canvas","interpolate","start","view","model","ease","actual","origin","c0","c1","Element","configuration","initialize","hidden","pivot","_view","_model","_start","transition","tooltipPosition","hasValue","isNumber","core_element","exports$2","currentStep","numSteps","render","onAnimationProgress","onAnimationComplete","core_animation","defineProperty","get","set","animation","duration","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","startTime","Date","now","animating","push","requestAnimationFrame","cancelAnimation","findIndex","splice","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","configurable","enumerable","method","base","res","object","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","linkScales","addElements","updateIndex","meta","getMeta","dataset","getDataset","xAxisID","scales","xAxes","yAxisID","yAxes","data","datasets","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","update","destroy","_data","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","element","updateElement","buildOrUpdateElements","isExtensible","resyncElements","easingValue","elements","draw","removeHoverStyle","$previousStyle","setHoverStyle","custom","getHoverColor","backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","numMeta","numData","insertElements","count","onDataPush","onDataPop","pop","onDataShift","shift","onDataSplice","onDataUnshift","core_datasetController","borderAlign","element_arc","inLabelRange","mouseX","vm","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","distance","startAngle","endAngle","betweenAngles","withinRadius","innerRadius","outerRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","angleMargin","sA","eA","pixelMargin","fillStyle","lineWidth","lineJoin","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","current","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","lineCap","setLineDash","lineDashOffset","previousItem","skip","valueOrDefault$2","defaultColor$1","xRange","abs","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","x2","y1","half","swap","orig","v2","parseBorderSkipped","edge","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","inner","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Line","Point","Rectangle","resolve$1","computeMinSampleSize","pixels","prev","curr","isHorizontal","ticks","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","next","percent","end","hover","mode","offset","gridLines","offsetGridLines","controller_bar","stack","bar","_ruler","getRuler","_resolveElementOptions","_xScale","_yScale","datasetLabel","label","labels","_updateElementGeometry","vscale","getBasePixel","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","_getStacks","last","stacked","stacks","isDatasetVisible","getStackCount","getStackIndex","getPixelForValue","imeta","ivalue","getRightValue","minBarLength","controller","range","stackIndex","maxBarThickness","Infinity","dataIndex","valueOrDefault$3","resolve$2","position","tooltips","callbacks","title","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","NaN","_options","resolve$3","valueOrDefault$4","animateRotate","animateScale","legendCallback","text","join","legend","generateLabels","ds","arcOpts","bw","onClick","legendItem","cutoutPercentage","circumference","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","j","opts","availableWidth","availableHeight","minSize","arcs","chartWeight","_getRingWeight","contains0","contains90","contains180","contains270","cutout","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","offsetX","offsetY","total","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","controller_horizontalBar","valueOrDefault$5","resolve$4","isPointInArea","lineEnabled","showLine","controller_line","lineTension","_scale","_resolveLineOptions","updateBezierControlPoints","lineModel","_resolvePointOptions","calculatePointY","ELEMENT_OPTIONS","elementOptions","dsMeta","sumPos","sumNeg","stackedRightValue","rightValue","controlPoints","capControlPoint","pt","filter","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","halfBorderWidth","resolve$5","angleLines","display","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$6","resolve$6","controller_radar","pointPosition","getPointPositionForValue","controller_scatter","controllers","bubble","horizontalBar","polarArea","pie","radar","scatter","getRelativePosition","native","parseVisibleItems","handler","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","_tmpIndex_","sort","findMaxPadding","boxes","box","getPadding","boxPadding","addSizeByPosition","layout","core_layouts","addBox","fullWidth","removeBox","layoutItem","configure","props","layoutOptions","leftPadding","rightPadding","topPadding","bottomPadding","leftBoxes","rightBoxes","topBoxes","bottomBoxes","chartAreaBoxes","maxPadding","verticalBoxes","horizontalBoxes","outerBoxes","chartWidth","chartHeight","chartAreaWidth","verticalBoxWidth","maxChartAreaWidth","maxChartAreaHeight","outerBoxSizes","minBoxSizes","getMinimumBoxSize","fitBox","finalFitVerticalBox","leftPaddingAddition","topPaddingAddition","newMaxChartAreaHeight","newMaxChartAreaWidth","placeBox","minBoxSize","findNextWhere","minBox","scaleMargin","platform_basic","acquireContext","getContext","platform_dom","platform_dom$1","freeze","default","getCjsExportFromNamespace","stylesheet","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","property","getStyle","initCanvas","config","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","addEventListener","eventListenerOptions","passive","addListener","node","removeListener","removeEventListener","createEvent","nativeEvent","fromNativeEvent","event","pos","throttled","ticking","createDiv","cls","el","document","createElement","className","createResizer","maxSize","resizer","expand","shrink","appendChild","_reset","scrollLeft","scrollTop","onScroll","bind","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","classList","add","unwatchForRender","remove","addResizeListener","container","maintainAspectRatio","parentNode","clientWidth","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","platform","css","_style","setAttribute","getElementsByTagName","createTextNode","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","_loaded","getElementById","releaseContext","removeAttribute","proxies","addEvent","removeEvent","implementation","plugins","core_plugins","_plugins","_cacheId","register","plugin","unregister","idx","getAll","notify","hook","descriptor","params","descriptors","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$7","enabled","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","activeElement","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","d","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","String","split","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getTooltipSize","tooltip","body","combinedBodyLength","reduce","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","align","getBeforeAfterBodyLines","exports$3","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","changed","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","textAlign","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$8","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","positionIsHorizontal","events","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","construct","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","stop","silent","newWidth","getMaximumWidth","newHeight","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","Error","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","drawDatasets","_drawTooltip","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","hoverOptions","core_controller","Controller","types","configMerge","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","filtered","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","sign","log10","exponent","log","LOG10E","powerOf10","isPowerOf10","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","niceFraction","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","parent","host","cw","clientHeight","ch","currentStyle","getPropertyValue","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","longest","thing","nestedThing","gcLen","textWidth","numberOfLabelLines","numberOfLines","color","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","formats","parse","format","diff","startOf","endOf","_create","override","members","_date","core_adapters","core_ticks","formatters","tickValue","logDelta","tickString","maxTick","logTick","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$9","labelsFromTicks","getPixelForGridLine","lineValue","computeTextSize","tick","drawBorder","drawOnChartArea","drawTicks","tickMarkLength","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","minor","major","core_scale","_ticks","beforeUpdate","maxWidth","maxHeight","margins","_maxLabelLines","longestLabelWidth","longestTextCache","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","beforeTickToLabelConversion","convertTicksToLabels","afterTickToLabelConversion","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","afterUpdate","tickOpts","userCallback","tickFont","labelRotation","cosRotation","sinRotation","originalLabelWidth","labelWidth","tickWidth","angleRadians","scaleLabelOpts","gridLineOpts","_isVisible","parseFont","isFullWidth","scaleLabelFont","scaleLabelPadding","deltaHeight","largestTextWidth","tallestLabelHeightInLines","lineSpace","tickPadding","labelHeight","firstLabelWidth","lastLabelWidth","offsetLeft","offsetRight","handleMargins","rawValue","getValueForPixel","innerWidth","finalVal","innerHeight","decimal","valueOffset","getBaseValue","_autoSkip","optionTicks","tickCount","skipRatio","maxTicks","maxTicksLimit","ticksLength","_tickSize","axisLength","PaddingBottom","rot","borderValue","tickStart","tickEnd","optionMajorTicks","isRotated","isMirrored","tickFontColor","fontColor","majorTickFontColor","majorTickFont","tl","scaleLabelFontColor","labelRotationRadians","itemsToDraw","axisWidth","alignPixel","lineColor","tx1","ty1","tx2","ty2","labelX","labelY","textOffset","zeroLineIndex","labelYOffset","labelXOffset","glWidth","glColor","glBorderDash","glBorderDashOffset","itemToDraw","translate","scaleLabelX","scaleLabelY","halfLineHeight","isLeft","firstLineWidth","lastLineWidth","defaultConfig","scale_category","getLabels","xLabels","yLabels","minIndex","maxIndex","valueCategory","offsetAmt","valueWidth","widthOffset","valueHeight","heightOffset","horz","valueDimension","_defaults","generateTicks","generationOptions","dataRange","factor","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","unit","maxNumSpaces","precision","rmin","rmax","spacing","ceil","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","defaultConfig$1","scale_linear","DEFAULT_MIN","DEFAULT_MAX","IDMatches","hasStacks","valuesPerStack","positiveValues","negativeValues","relativePoints","valuesForType","minVal","maxVal","innerDimension","_defaults$1","valueOrDefault$a","generateTicks$1","exp","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","tickValues","_getFirstTickValue","firstTickValue","_defaults$2","valueOrDefault$b","valueAtIndexOrDefault$1","resolve$7","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getValueCount","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","angleLineOpts","pointLabelOpts","tickBackdropHeight","outerDistance","outerPosition","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","startAngleRadians","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","yCenterOffset","_defaults$3","valueOrDefault$c","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","arrayUnique","hash","out","buildLookupTable","timestamps","distribution","time","table","lookup","mid","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","input","adapter","_adapter","parser","determineStepSize","capacity","interval","milliseconds","determineUnitForAutoTicks","minUnit","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","weekday","isoWeekday","majorTicksEnabled","first","computeOffsets","ticksFromTimestamps","majorUnit","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","date","warn","timestamp","dataLabels","_horizontal","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","majorTime","majorTickOpts","formatter","getPixelForOffset","isReverse","getLabelWidth","ticksOpts","tickLabelWidth","tickFontSize","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","valueOf","amount","as","filler","propagate","mappers","visible","boundary","decodeFill","computeBoundary","scaleBottom","scaleTop","scaleZero","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","p1","d0","d1","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetDraw","noop$1","valueOrDefault$d","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","totalWidth","currentColWidth","currentColHeight","itemHeight","itemWidth","lineDefault","legendWidth","cursor","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","lineCount","fontOpts","titleX","titleY","createNewTitleBlockAndAttach","titleOpts","titleBlock","plugin_title","_adapters","Animation","animationService","Interaction","layouts","Scale","scaleService","Ticks","Tooltip","src","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","toLowerCase","_vm","_c","_self","attrs","_m","staticClass","staticRenderFns","_v","slot","generateChart","chartId","chartType","styles","class","cssClasses","ref","methods","addPlugin","$data","renderChart","$refs","beforeDestroy","Bar","HorizontalBar","Doughnut","Pie","PolarArea","Radar","Bubble","Scatter","extends","mounted","component","components","ChartjsComponentBarChart","ChartjsComponentLineChart","ChartjsComponentPieChart","pointBorderColor","pointBackgroundColor","ChartjsComponentRadarChart","ChartjsComponentPolarAreaChart","ChartjsComponentDoughnutChart","ChartjsComponentHorizontalBarChart","ChartjsComponentBubbleChart","pointBorderWidth","pointHoverBorderWidth","pointRadius","ChartjsComponentScatterChart","ChartjsBarChart","ChartjsLineChart","ChartjsPieChart","ChartjsRadarChart","ChartjsPolarAreaChart","ChartjsDoughnutChart","ChartjsHorizontalBarChart","ChartjsScatterChart","ChartjsBubbleChart"],"mappings":"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AAA,EACAC,YAAA,GACA,CACApwC,MAAA,oBACAzL,KAAA,EACAtkB,EAAA,GACAN,EAAA,IACA,CACAM,EAAA,GACAN,EAAA,IACA,CACAM,EAAA,GACAN,EAAA,IACA,CACAM,EAAA,GACAN,EAAA,IACA,CACAM,EAAA,GACAN,EAAA,IACA,CACAM,EAAA,GACAN,EAAA,IACA,CACAM,EAAA,GACAN,EAAA,KAEA6mB,gBAAA,sBACAC,YAAA,cACAk5C,iBAAA,UACAC,qBAAA,OACAM,iBAAA,EACAC,sBAAA,EACAC,YAAA,KAIApqD,QAAA,CACA67B,YAAA,EACA3N,qBAAA,EACA4N,4BAAA,IACA5f,MAAA,CACA6F,SAAA,EACA7E,KAAA,0BAEA/O,OAAA,CACAC,MAAA,EACA2N,SAAA,MACA1C,UAAA,CACA4wB,cAAA,kBACAxC,MAAA,UACAqC,WAAA,GAEAM,WAAA,CACAroB,SAAA,EACAsoB,YAAA,YAGA/7B,MAAA,EACAyN,SAAA,QACA1C,UAAA,CACA4wB,cAAA,kBACAxC,MAAA,UACAqC,WAAA,GAEAM,WAAA,CACAroB,SAAA,EACAsoB,YAAA,gBAOAkf,WAAA,CACAc,kCCxOyY,MCOrY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCsCA,IACfd,WAAA,CACAe,kBACAC,oBACAC,mBACAC,qBACAC,yBACAC,wBACAC,6BACAC,uBACAC,wBClE6X,MCOzX,GAAY,eACd,GACAjgD,EACA+8C,GACA,EACA,KACA,KACA,MAIa,gB","file":"js/chunk-efb14088.0abfeac4.js","sourcesContent":["/*!\n * Chart.js v2.8.0\n * https://www.chartjs.org\n * (c) 2019 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\n/* MIT license */\n\nvar conversions = {\n rgb2hsl: rgb2hsl,\n rgb2hsv: rgb2hsv,\n rgb2hwb: rgb2hwb,\n rgb2cmyk: rgb2cmyk,\n rgb2keyword: rgb2keyword,\n rgb2xyz: rgb2xyz,\n rgb2lab: rgb2lab,\n rgb2lch: rgb2lch,\n\n hsl2rgb: hsl2rgb,\n hsl2hsv: hsl2hsv,\n hsl2hwb: hsl2hwb,\n hsl2cmyk: hsl2cmyk,\n hsl2keyword: hsl2keyword,\n\n hsv2rgb: hsv2rgb,\n hsv2hsl: hsv2hsl,\n hsv2hwb: hsv2hwb,\n hsv2cmyk: hsv2cmyk,\n hsv2keyword: hsv2keyword,\n\n hwb2rgb: hwb2rgb,\n hwb2hsl: hwb2hsl,\n hwb2hsv: hwb2hsv,\n hwb2cmyk: hwb2cmyk,\n hwb2keyword: hwb2keyword,\n\n cmyk2rgb: cmyk2rgb,\n cmyk2hsl: cmyk2hsl,\n cmyk2hsv: cmyk2hsv,\n cmyk2hwb: cmyk2hwb,\n cmyk2keyword: cmyk2keyword,\n\n keyword2rgb: keyword2rgb,\n keyword2hsl: keyword2hsl,\n keyword2hsv: keyword2hsv,\n keyword2hwb: keyword2hwb,\n keyword2cmyk: keyword2cmyk,\n keyword2lab: keyword2lab,\n keyword2xyz: keyword2xyz,\n\n xyz2rgb: xyz2rgb,\n xyz2lab: xyz2lab,\n xyz2lch: xyz2lch,\n\n lab2xyz: lab2xyz,\n lab2rgb: lab2rgb,\n lab2lch: lab2lch,\n\n lch2lab: lch2lab,\n lch2xyz: lch2xyz,\n lch2rgb: lch2rgb\n};\n\n\nfunction rgb2hsl(rgb) {\n var r = rgb[0]/255,\n g = rgb[1]/255,\n b = rgb[2]/255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, l;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g)/ delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n l = (min + max) / 2;\n\n if (max == min)\n s = 0;\n else if (l <= 0.5)\n s = delta / (max + min);\n else\n s = delta / (2 - max - min);\n\n return [h, s * 100, l * 100];\n}\n\nfunction rgb2hsv(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, v;\n\n if (max == 0)\n s = 0;\n else\n s = (delta/max * 1000)/10;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g) / delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n v = ((max / 255) * 1000) / 10;\n\n return [h, s, v];\n}\n\nfunction rgb2hwb(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n h = rgb2hsl(rgb)[0],\n w = 1/255 * Math.min(r, Math.min(g, b)),\n b = 1 - 1/255 * Math.max(r, Math.max(g, b));\n\n return [h, w * 100, b * 100];\n}\n\nfunction rgb2cmyk(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255,\n c, m, y, k;\n\n k = Math.min(1 - r, 1 - g, 1 - b);\n c = (1 - r - k) / (1 - k) || 0;\n m = (1 - g - k) / (1 - k) || 0;\n y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n}\n\nfunction rgb2keyword(rgb) {\n return reverseKeywords[JSON.stringify(rgb)];\n}\n\nfunction rgb2xyz(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255;\n\n // assume sRGB\n r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n return [x * 100, y *100, z * 100];\n}\n\nfunction rgb2lab(rgb) {\n var xyz = rgb2xyz(rgb),\n x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction rgb2lch(args) {\n return lab2lch(rgb2lab(args));\n}\n\nfunction hsl2rgb(hsl) {\n var h = hsl[0] / 360,\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n t1, t2, t3, rgb, val;\n\n if (s == 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5)\n t2 = l * (1 + s);\n else\n t2 = l + s - l * s;\n t1 = 2 * l - t2;\n\n rgb = [0, 0, 0];\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * - (i - 1);\n t3 < 0 && t3++;\n t3 > 1 && t3--;\n\n if (6 * t3 < 1)\n val = t1 + (t2 - t1) * 6 * t3;\n else if (2 * t3 < 1)\n val = t2;\n else if (3 * t3 < 2)\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n else\n val = t1;\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n}\n\nfunction hsl2hsv(hsl) {\n var h = hsl[0],\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n sv, v;\n\n if(l === 0) {\n // no need to do calc on black\n // also avoids divide by 0 error\n return [0, 0, 0];\n }\n\n l *= 2;\n s *= (l <= 1) ? l : 2 - l;\n v = (l + s) / 2;\n sv = (2 * s) / (l + s);\n return [h, sv * 100, v * 100];\n}\n\nfunction hsl2hwb(args) {\n return rgb2hwb(hsl2rgb(args));\n}\n\nfunction hsl2cmyk(args) {\n return rgb2cmyk(hsl2rgb(args));\n}\n\nfunction hsl2keyword(args) {\n return rgb2keyword(hsl2rgb(args));\n}\n\n\nfunction hsv2rgb(hsv) {\n var h = hsv[0] / 60,\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n hi = Math.floor(h) % 6;\n\n var f = h - Math.floor(h),\n p = 255 * v * (1 - s),\n q = 255 * v * (1 - (s * f)),\n t = 255 * v * (1 - (s * (1 - f))),\n v = 255 * v;\n\n switch(hi) {\n case 0:\n return [v, t, p];\n case 1:\n return [q, v, p];\n case 2:\n return [p, v, t];\n case 3:\n return [p, q, v];\n case 4:\n return [t, p, v];\n case 5:\n return [v, p, q];\n }\n}\n\nfunction hsv2hsl(hsv) {\n var h = hsv[0],\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n sl, l;\n\n l = (2 - s) * v;\n sl = s * v;\n sl /= (l <= 1) ? l : 2 - l;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n}\n\nfunction hsv2hwb(args) {\n return rgb2hwb(hsv2rgb(args))\n}\n\nfunction hsv2cmyk(args) {\n return rgb2cmyk(hsv2rgb(args));\n}\n\nfunction hsv2keyword(args) {\n return rgb2keyword(hsv2rgb(args));\n}\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nfunction hwb2rgb(hwb) {\n var h = hwb[0] / 360,\n wh = hwb[1] / 100,\n bl = hwb[2] / 100,\n ratio = wh + bl,\n i, v, f, n;\n\n // wh + bl cant be > 1\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i;\n if ((i & 0x01) != 0) {\n f = 1 - f;\n }\n n = wh + f * (v - wh); // linear interpolation\n\n switch (i) {\n default:\n case 6:\n case 0: r = v; g = n; b = wh; break;\n case 1: r = n; g = v; b = wh; break;\n case 2: r = wh; g = v; b = n; break;\n case 3: r = wh; g = n; b = v; break;\n case 4: r = n; g = wh; b = v; break;\n case 5: r = v; g = wh; b = n; break;\n }\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction hwb2hsl(args) {\n return rgb2hsl(hwb2rgb(args));\n}\n\nfunction hwb2hsv(args) {\n return rgb2hsv(hwb2rgb(args));\n}\n\nfunction hwb2cmyk(args) {\n return rgb2cmyk(hwb2rgb(args));\n}\n\nfunction hwb2keyword(args) {\n return rgb2keyword(hwb2rgb(args));\n}\n\nfunction cmyk2rgb(cmyk) {\n var c = cmyk[0] / 100,\n m = cmyk[1] / 100,\n y = cmyk[2] / 100,\n k = cmyk[3] / 100,\n r, g, b;\n\n r = 1 - Math.min(1, c * (1 - k) + k);\n g = 1 - Math.min(1, m * (1 - k) + k);\n b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n}\n\nfunction cmyk2hsl(args) {\n return rgb2hsl(cmyk2rgb(args));\n}\n\nfunction cmyk2hsv(args) {\n return rgb2hsv(cmyk2rgb(args));\n}\n\nfunction cmyk2hwb(args) {\n return rgb2hwb(cmyk2rgb(args));\n}\n\nfunction cmyk2keyword(args) {\n return rgb2keyword(cmyk2rgb(args));\n}\n\n\nfunction xyz2rgb(xyz) {\n var x = xyz[0] / 100,\n y = xyz[1] / 100,\n z = xyz[2] / 100,\n r, g, b;\n\n r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n // assume sRGB\n r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n : r = (r * 12.92);\n\n g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n : g = (g * 12.92);\n\n b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n : b = (b * 12.92);\n\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction xyz2lab(xyz) {\n var x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction xyz2lch(args) {\n return lab2lch(xyz2lab(args));\n}\n\nfunction lab2xyz(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n x, y, z, y2;\n\n if (l <= 8) {\n y = (l * 100) / 903.3;\n y2 = (7.787 * (y / 100)) + (16 / 116);\n } else {\n y = 100 * Math.pow((l + 16) / 116, 3);\n y2 = Math.pow(y / 100, 1/3);\n }\n\n x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\n\n z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\n\n return [x, y, z];\n}\n\nfunction lab2lch(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n hr, h, c;\n\n hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n if (h < 0) {\n h += 360;\n }\n c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n}\n\nfunction lab2rgb(args) {\n return xyz2rgb(lab2xyz(args));\n}\n\nfunction lch2lab(lch) {\n var l = lch[0],\n c = lch[1],\n h = lch[2],\n a, b, hr;\n\n hr = h / 360 * 2 * Math.PI;\n a = c * Math.cos(hr);\n b = c * Math.sin(hr);\n return [l, a, b];\n}\n\nfunction lch2xyz(args) {\n return lab2xyz(lch2lab(args));\n}\n\nfunction lch2rgb(args) {\n return lab2rgb(lch2lab(args));\n}\n\nfunction keyword2rgb(keyword) {\n return cssKeywords[keyword];\n}\n\nfunction keyword2hsl(args) {\n return rgb2hsl(keyword2rgb(args));\n}\n\nfunction keyword2hsv(args) {\n return rgb2hsv(keyword2rgb(args));\n}\n\nfunction keyword2hwb(args) {\n return rgb2hwb(keyword2rgb(args));\n}\n\nfunction keyword2cmyk(args) {\n return rgb2cmyk(keyword2rgb(args));\n}\n\nfunction keyword2lab(args) {\n return rgb2lab(keyword2rgb(args));\n}\n\nfunction keyword2xyz(args) {\n return rgb2xyz(keyword2rgb(args));\n}\n\nvar cssKeywords = {\n aliceblue: [240,248,255],\n antiquewhite: [250,235,215],\n aqua: [0,255,255],\n aquamarine: [127,255,212],\n azure: [240,255,255],\n beige: [245,245,220],\n bisque: [255,228,196],\n black: [0,0,0],\n blanchedalmond: [255,235,205],\n blue: [0,0,255],\n blueviolet: [138,43,226],\n brown: [165,42,42],\n burlywood: [222,184,135],\n cadetblue: [95,158,160],\n chartreuse: [127,255,0],\n chocolate: [210,105,30],\n coral: [255,127,80],\n cornflowerblue: [100,149,237],\n cornsilk: [255,248,220],\n crimson: [220,20,60],\n cyan: [0,255,255],\n darkblue: [0,0,139],\n darkcyan: [0,139,139],\n darkgoldenrod: [184,134,11],\n darkgray: [169,169,169],\n darkgreen: [0,100,0],\n darkgrey: [169,169,169],\n darkkhaki: [189,183,107],\n darkmagenta: [139,0,139],\n darkolivegreen: [85,107,47],\n darkorange: [255,140,0],\n darkorchid: [153,50,204],\n darkred: [139,0,0],\n darksalmon: [233,150,122],\n darkseagreen: [143,188,143],\n darkslateblue: [72,61,139],\n darkslategray: [47,79,79],\n darkslategrey: [47,79,79],\n darkturquoise: [0,206,209],\n darkviolet: [148,0,211],\n deeppink: [255,20,147],\n deepskyblue: [0,191,255],\n dimgray: [105,105,105],\n dimgrey: [105,105,105],\n dodgerblue: [30,144,255],\n firebrick: [178,34,34],\n floralwhite: [255,250,240],\n forestgreen: [34,139,34],\n fuchsia: [255,0,255],\n gainsboro: [220,220,220],\n ghostwhite: [248,248,255],\n gold: [255,215,0],\n goldenrod: [218,165,32],\n gray: [128,128,128],\n green: [0,128,0],\n greenyellow: [173,255,47],\n grey: [128,128,128],\n honeydew: [240,255,240],\n hotpink: [255,105,180],\n indianred: [205,92,92],\n indigo: [75,0,130],\n ivory: [255,255,240],\n khaki: [240,230,140],\n lavender: [230,230,250],\n lavenderblush: [255,240,245],\n lawngreen: [124,252,0],\n lemonchiffon: [255,250,205],\n lightblue: [173,216,230],\n lightcoral: [240,128,128],\n lightcyan: [224,255,255],\n lightgoldenrodyellow: [250,250,210],\n lightgray: [211,211,211],\n lightgreen: [144,238,144],\n lightgrey: [211,211,211],\n lightpink: [255,182,193],\n lightsalmon: [255,160,122],\n lightseagreen: [32,178,170],\n lightskyblue: [135,206,250],\n lightslategray: [119,136,153],\n lightslategrey: [119,136,153],\n lightsteelblue: [176,196,222],\n lightyellow: [255,255,224],\n lime: [0,255,0],\n limegreen: [50,205,50],\n linen: [250,240,230],\n magenta: [255,0,255],\n maroon: [128,0,0],\n mediumaquamarine: [102,205,170],\n mediumblue: [0,0,205],\n mediumorchid: [186,85,211],\n mediumpurple: [147,112,219],\n mediumseagreen: [60,179,113],\n mediumslateblue: [123,104,238],\n mediumspringgreen: [0,250,154],\n mediumturquoise: [72,209,204],\n mediumvioletred: [199,21,133],\n midnightblue: [25,25,112],\n mintcream: [245,255,250],\n mistyrose: [255,228,225],\n moccasin: [255,228,181],\n navajowhite: [255,222,173],\n navy: [0,0,128],\n oldlace: [253,245,230],\n olive: [128,128,0],\n olivedrab: [107,142,35],\n orange: [255,165,0],\n orangered: [255,69,0],\n orchid: [218,112,214],\n palegoldenrod: [238,232,170],\n palegreen: [152,251,152],\n paleturquoise: [175,238,238],\n palevioletred: [219,112,147],\n papayawhip: [255,239,213],\n peachpuff: [255,218,185],\n peru: [205,133,63],\n pink: [255,192,203],\n plum: [221,160,221],\n powderblue: [176,224,230],\n purple: [128,0,128],\n rebeccapurple: [102, 51, 153],\n red: [255,0,0],\n rosybrown: [188,143,143],\n royalblue: [65,105,225],\n saddlebrown: [139,69,19],\n salmon: [250,128,114],\n sandybrown: [244,164,96],\n seagreen: [46,139,87],\n seashell: [255,245,238],\n sienna: [160,82,45],\n silver: [192,192,192],\n skyblue: [135,206,235],\n slateblue: [106,90,205],\n slategray: [112,128,144],\n slategrey: [112,128,144],\n snow: [255,250,250],\n springgreen: [0,255,127],\n steelblue: [70,130,180],\n tan: [210,180,140],\n teal: [0,128,128],\n thistle: [216,191,216],\n tomato: [255,99,71],\n turquoise: [64,224,208],\n violet: [238,130,238],\n wheat: [245,222,179],\n white: [255,255,255],\n whitesmoke: [245,245,245],\n yellow: [255,255,0],\n yellowgreen: [154,205,50]\n};\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n reverseKeywords[JSON.stringify(cssKeywords[key])] = key;\n}\n\nvar convert = function() {\n return new Converter();\n};\n\nfor (var func in conversions) {\n // export Raw versions\n convert[func + \"Raw\"] = (function(func) {\n // accept array or plain args\n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n return conversions[func](arg);\n }\n })(func);\n\n var pair = /(\\w+)2(\\w+)/.exec(func),\n from = pair[1],\n to = pair[2];\n\n // export rgb2hsl and [\"rgb\"][\"hsl\"]\n convert[from] = convert[from] || {};\n\n convert[from][to] = convert[func] = (function(func) { \n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n \n var val = conversions[func](arg);\n if (typeof val == \"string\" || val === undefined)\n return val; // keyword\n\n for (var i = 0; i < val.length; i++)\n val[i] = Math.round(val[i]);\n return val;\n }\n })(func);\n}\n\n\n/* Converter does lazy conversion and caching */\nvar Converter = function() {\n this.convs = {};\n};\n\n/* Either get the values for a space or\n set the values for a space, depending on args */\nConverter.prototype.routeSpace = function(space, args) {\n var values = args[0];\n if (values === undefined) {\n // color.rgb()\n return this.getValues(space);\n }\n // color.rgb(10, 10, 10)\n if (typeof values == \"number\") {\n values = Array.prototype.slice.call(args); \n }\n\n return this.setValues(space, values);\n};\n \n/* Set the values for a space, invalidating cache */\nConverter.prototype.setValues = function(space, values) {\n this.space = space;\n this.convs = {};\n this.convs[space] = values;\n return this;\n};\n\n/* Get the values for a space. If there's already\n a conversion for the space, fetch it, otherwise\n compute it */\nConverter.prototype.getValues = function(space) {\n var vals = this.convs[space];\n if (!vals) {\n var fspace = this.space,\n from = this.convs[fspace];\n vals = convert[fspace][space](from);\n\n this.convs[space] = vals;\n }\n return vals;\n};\n\n[\"rgb\", \"hsl\", \"hsv\", \"cmyk\", \"keyword\"].forEach(function(space) {\n Converter.prototype[space] = function(vals) {\n return this.routeSpace(space, arguments);\n };\n});\n\nvar colorConvert = convert;\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName) {\n reverseNames[colorName[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\n/**\n * @namespace Chart.helpers\n */\nvar helpers = {\n\t/**\n\t * An empty function that can be used, for example, for optional callback.\n\t */\n\tnoop: function() {},\n\n\t/**\n\t * Returns a unique id, sequentially generated from a global variable.\n\t * @returns {number}\n\t * @function\n\t */\n\tuid: (function() {\n\t\tvar id = 0;\n\t\treturn function() {\n\t\t\treturn id++;\n\t\t};\n\t}()),\n\n\t/**\n\t * Returns true if `value` is neither null nor undefined, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisNullOrUndef: function(value) {\n\t\treturn value === null || typeof value === 'undefined';\n\t},\n\n\t/**\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @function\n\t */\n\tisArray: function(value) {\n\t\tif (Array.isArray && Array.isArray(value)) {\n\t\t\treturn true;\n\t\t}\n\t\tvar type = Object.prototype.toString.call(value);\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\t/**\n\t * Returns true if `value` is an object (excluding null), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisObject: function(value) {\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\n\t},\n\n\t/**\n\t * Returns true if `value` is a finite number, else returns false\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t */\n\tisFinite: function(value) {\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\n\t},\n\n\t/**\n\t * Returns `value` if defined, else returns `defaultValue`.\n\t * @param {*} value - The value to return if defined.\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\n\t * @returns {*}\n\t */\n\tvalueOrDefault: function(value, defaultValue) {\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\n\t},\n\n\t/**\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n\t * @param {Array} value - The array to lookup for value at `index`.\n\t * @param {number} index - The index in `value` to lookup for value.\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n\t * @returns {*}\n\t */\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n\t},\n\n\t/**\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n\t * @param {function} fn - The function to call.\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @returns {*}\n\t */\n\tcallback: function(fn, args, thisArg) {\n\t\tif (fn && typeof fn.call === 'function') {\n\t\t\treturn fn.apply(thisArg, args);\n\t\t}\n\t},\n\n\t/**\n\t * Note(SB) for performance sake, this method should only be used when loopable type\n\t * is unknown or in none intensive code (not called often and small loopable). Else\n\t * it's preferable to use a regular for() loop and save extra function calls.\n\t * @param {object|Array} loopable - The object or array to be iterated.\n\t * @param {function} fn - The function to call for each item.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\n\t */\n\teach: function(loopable, fn, thisArg, reverse) {\n\t\tvar i, len, keys;\n\t\tif (helpers.isArray(loopable)) {\n\t\t\tlen = loopable.length;\n\t\t\tif (reverse) {\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (helpers.isObject(loopable)) {\n\t\t\tkeys = Object.keys(loopable);\n\t\t\tlen = keys.length;\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n\t * @see https://stackoverflow.com/a/14853974\n\t * @param {Array} a0 - The array to compare\n\t * @param {Array} a1 - The array to compare\n\t * @returns {boolean}\n\t */\n\tarrayEquals: function(a0, a1) {\n\t\tvar i, ilen, v0, v1;\n\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\n\t\t\tv0 = a0[i];\n\t\t\tv1 = a1[i];\n\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (v0 !== v1) {\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\n\t * @param {*} source - The value to clone.\n\t * @returns {*}\n\t */\n\tclone: function(source) {\n\t\tif (helpers.isArray(source)) {\n\t\t\treturn source.map(helpers.clone);\n\t\t}\n\n\t\tif (helpers.isObject(source)) {\n\t\t\tvar target = {};\n\t\t\tvar keys = Object.keys(source);\n\t\t\tvar klen = keys.length;\n\t\t\tvar k = 0;\n\n\t\t\tfor (; k < klen; ++k) {\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\n\t\t\t}\n\n\t\t\treturn target;\n\t\t}\n\n\t\treturn source;\n\t},\n\n\t/**\n\t * The default merger when Chart.helpers.merge is called without merger option.\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n\t * @private\n\t */\n\t_merger: function(key, target, source, options) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.merge(tval, sval, options);\n\t\t} else {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Merges source[key] in target[key] only if target[key] is undefined.\n\t * @private\n\t */\n\t_mergerIf: function(key, target, source) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.mergeIf(tval, sval);\n\t\t} else if (!target.hasOwnProperty(key)) {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @param {object} [options] - Merging options:\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\n\t * @returns {object} The `target` object.\n\t */\n\tmerge: function(target, source, options) {\n\t\tvar sources = helpers.isArray(source) ? source : [source];\n\t\tvar ilen = sources.length;\n\t\tvar merge, i, keys, klen, k;\n\n\t\tif (!helpers.isObject(target)) {\n\t\t\treturn target;\n\t\t}\n\n\t\toptions = options || {};\n\t\tmerge = options.merger || helpers._merger;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!helpers.isObject(source)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tkeys = Object.keys(source);\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\n\t\t\t\tmerge(keys[k], target, source, options);\n\t\t\t}\n\t\t}\n\n\t\treturn target;\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @returns {object} The `target` object.\n\t */\n\tmergeIf: function(target, source) {\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\n\t},\n\n\t/**\n\t * Applies the contents of two or more objects together into the first object.\n\t * @param {object} target - The target object in which all objects are merged into.\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\n\t * @param {object} argN - Additional objects containing properties to merge in target.\n\t * @returns {object} The `target` object.\n\t */\n\textend: function(target) {\n\t\tvar setFn = function(value, key) {\n\t\t\ttarget[key] = value;\n\t\t};\n\t\tfor (var i = 1, ilen = arguments.length; i < ilen; ++i) {\n\t\t\thelpers.each(arguments[i], setFn);\n\t\t}\n\t\treturn target;\n\t},\n\n\t/**\n\t * Basic javascript inheritance based on the model created in Backbone.js\n\t */\n\tinherits: function(extensions) {\n\t\tvar me = this;\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\n\t\t\treturn me.apply(this, arguments);\n\t\t};\n\n\t\tvar Surrogate = function() {\n\t\t\tthis.constructor = ChartElement;\n\t\t};\n\n\t\tSurrogate.prototype = me.prototype;\n\t\tChartElement.prototype = new Surrogate();\n\t\tChartElement.extend = helpers.inherits;\n\n\t\tif (extensions) {\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\n\t\t}\n\n\t\tChartElement.__super__ = me.prototype;\n\t\treturn ChartElement;\n\t}\n};\n\nvar helpers_core = helpers;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nhelpers.callCallback = helpers.callback;\n\n/**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.indexOf = function(array, item, fromIndex) {\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\n};\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueOrDefault = helpers.valueOrDefault;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\nvar effects = {\n\tlinear: function(t) {\n\t\treturn t;\n\t},\n\n\teaseInQuad: function(t) {\n\t\treturn t * t;\n\t},\n\n\teaseOutQuad: function(t) {\n\t\treturn -t * (t - 2);\n\t},\n\n\teaseInOutQuad: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t;\n\t\t}\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\n\t},\n\n\teaseInCubic: function(t) {\n\t\treturn t * t * t;\n\t},\n\n\teaseOutCubic: function(t) {\n\t\treturn (t = t - 1) * t * t + 1;\n\t},\n\n\teaseInOutCubic: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\n\t},\n\n\teaseInQuart: function(t) {\n\t\treturn t * t * t * t;\n\t},\n\n\teaseOutQuart: function(t) {\n\t\treturn -((t = t - 1) * t * t * t - 1);\n\t},\n\n\teaseInOutQuart: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t;\n\t\t}\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\n\t},\n\n\teaseInQuint: function(t) {\n\t\treturn t * t * t * t * t;\n\t},\n\n\teaseOutQuint: function(t) {\n\t\treturn (t = t - 1) * t * t * t * t + 1;\n\t},\n\n\teaseInOutQuint: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n\t},\n\n\teaseInSine: function(t) {\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\n\t},\n\n\teaseOutSine: function(t) {\n\t\treturn Math.sin(t * (Math.PI / 2));\n\t},\n\n\teaseInOutSine: function(t) {\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n\t},\n\n\teaseInExpo: function(t) {\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n\t},\n\n\teaseOutExpo: function(t) {\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n\t},\n\n\teaseInOutExpo: function(t) {\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\n\t\t}\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\n\t},\n\n\teaseInCirc: function(t) {\n\t\tif (t >= 1) {\n\t\t\treturn t;\n\t\t}\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\n\t},\n\n\teaseOutCirc: function(t) {\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\n\t},\n\n\teaseInOutCirc: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\n\t\t}\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n\t},\n\n\teaseInElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t},\n\n\teaseOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n\t},\n\n\teaseInOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif ((t /= 0.5) === 2) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.45;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\tif (t < 1) {\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t\t}\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n\t},\n\teaseInBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn t * t * ((s + 1) * t - s);\n\t},\n\n\teaseOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\n\t},\n\n\teaseInOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n\t},\n\n\teaseInBounce: function(t) {\n\t\treturn 1 - effects.easeOutBounce(1 - t);\n\t},\n\n\teaseOutBounce: function(t) {\n\t\tif (t < (1 / 2.75)) {\n\t\t\treturn 7.5625 * t * t;\n\t\t}\n\t\tif (t < (2 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n\t\t}\n\t\tif (t < (2.5 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n\t\t}\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n\t},\n\n\teaseInOutBounce: function(t) {\n\t\tif (t < 0.5) {\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\n\t\t}\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n\t}\n};\n\nvar helpers_easing = {\n\teffects: effects\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\nvar RAD_PER_DEG = PI / 180;\nvar DOUBLE_PI = PI * 2;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports$1 = {\n\t/**\n\t * Clears the entire canvas associated to the given `chart`.\n\t * @param {Chart} chart - The chart for which to clear the canvas.\n\t */\n\tclear: function(chart) {\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\n\t},\n\n\t/**\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n\t * given size (width, height) and the same `radius` for all corners.\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\n\t * @param {number} width - The rectangle's width.\n\t * @param {number} height - The rectangle's height.\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n\t */\n\troundedRect: function(ctx, x, y, width, height, radius) {\n\t\tif (radius) {\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\n\t\t\tvar left = x + r;\n\t\t\tvar top = y + r;\n\t\t\tvar right = x + width - r;\n\t\t\tvar bottom = y + height - r;\n\n\t\t\tctx.moveTo(x, top);\n\t\t\tif (left < right && top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\n\t\t\t} else if (left < right) {\n\t\t\t\tctx.moveTo(left, y);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\n\t\t\t} else if (top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\n\t\t\t} else {\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\n\t\t\t}\n\t\t\tctx.closePath();\n\t\t\tctx.moveTo(x, y);\n\t\t} else {\n\t\t\tctx.rect(x, y, width, height);\n\t\t}\n\t},\n\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\n\n\t\tif (style && typeof style === 'object') {\n\t\t\ttype = style.toString();\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n\t\t\t\tctx.drawImage(style, x - style.width / 2, y - style.height / 2, style.width, style.height);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isNaN(radius) || radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.beginPath();\n\n\t\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\n\t\t\t// circle with `radius`. For more details, see the following PRs:\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\n\t\t\tcornerRadius = radius * 0.516;\n\t\t\tsize = radius - cornerRadius;\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tif (!rotation) {\n\t\t\t\tsize = Math.SQRT1_2 * radius;\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'rectRot':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'cross':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\trad += QUARTER_PI;\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.fill();\n\t\tctx.stroke();\n\t},\n\n\t/**\n\t * Returns true if the point is inside the rectangle\n\t * @param {object} point - The point to test\n\t * @param {object} area - The rectangle\n\t * @returns {boolean}\n\t * @private\n\t */\n\t_isPointInArea: function(point, area) {\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\n\t},\n\n\tclipArea: function(ctx, area) {\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n\t\tctx.clip();\n\t},\n\n\tunclipArea: function(ctx) {\n\t\tctx.restore();\n\t},\n\n\tlineTo: function(ctx, previous, target, flip) {\n\t\tvar stepped = target.steppedLine;\n\t\tif (stepped) {\n\t\t\tif (stepped === 'middle') {\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\n\t\t\t\tctx.lineTo(previous.x, target.y);\n\t\t\t} else {\n\t\t\t\tctx.lineTo(target.x, previous.y);\n\t\t\t}\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!target.tension) {\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tctx.bezierCurveTo(\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\n\t\t\ttarget.x,\n\t\t\ttarget.y);\n\t}\n};\n\nvar helpers_canvas = exports$1;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.clear = exports$1.clear;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports$1.roundedRect.apply(exports$1, arguments);\n};\n\nvar defaults = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n\ndefaults._set('global', {\n\tdefaultColor: 'rgba(0,0,0,0.1)',\n\tdefaultFontColor: '#666',\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\tdefaultFontSize: 12,\n\tdefaultFontStyle: 'normal',\n\tdefaultLineHeight: 1.2,\n\tshowLines: true\n});\n\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\n\n/**\n * Converts the given font object into a CSS font string.\n * @param {object} font - A font object.\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nfunction toFontString(font) {\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\n\t\treturn null;\n\t}\n\n\treturn (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nvar helpers_options = {\n\t/**\n\t * Converts the given line height `value` in pixels for a specific font `size`.\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n\t * @since 2.7.0\n\t */\n\ttoLineHeight: function(value, size) {\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n\t\tif (!matches || matches[1] === 'normal') {\n\t\t\treturn size * 1.2;\n\t\t}\n\n\t\tvalue = +matches[2];\n\n\t\tswitch (matches[3]) {\n\t\tcase 'px':\n\t\t\treturn value;\n\t\tcase '%':\n\t\t\tvalue /= 100;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\n\t\treturn size * value;\n\t},\n\n\t/**\n\t * Converts the given value into a padding object with pre-computed width/height.\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\n\t * else, if and object, use defined properties and sets undefined ones to 0.\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\n\t * @since 2.7.0\n\t */\n\ttoPadding: function(value) {\n\t\tvar t, r, b, l;\n\n\t\tif (helpers_core.isObject(value)) {\n\t\t\tt = +value.top || 0;\n\t\t\tr = +value.right || 0;\n\t\t\tb = +value.bottom || 0;\n\t\t\tl = +value.left || 0;\n\t\t} else {\n\t\t\tt = r = b = l = +value || 0;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: t,\n\t\t\tright: r,\n\t\t\tbottom: b,\n\t\t\tleft: l,\n\t\t\theight: t + b,\n\t\t\twidth: l + r\n\t\t};\n\t},\n\n\t/**\n\t * Parses font options and returns the font object.\n\t * @param {object} options - A object that contains font options to be parsed.\n\t * @return {object} The font object.\n\t * @todo Support font.* options and renamed to toFont().\n\t * @private\n\t */\n\t_parseFont: function(options) {\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\t\tvar font = {\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\n\t\t\tsize: size,\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\n\t\t\tweight: null,\n\t\t\tstring: ''\n\t\t};\n\n\t\tfont.string = toFontString(font);\n\t\treturn font;\n\t},\n\n\t/**\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\n\t * @param {Array} inputs - An array of values, falling back to the last value.\n\t * @param {object} [context] - If defined and the current value is a function, the value\n\t * is called with `context` as first argument and the result becomes the new input.\n\t * @param {number} [index] - If defined and the current value is an array, the value\n\t * at `index` become the new input.\n\t * @since 2.7.0\n\t */\n\tresolve: function(inputs, context, index) {\n\t\tvar i, ilen, value;\n\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\n\t\t\tvalue = inputs[i];\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (context !== undefined && typeof value === 'function') {\n\t\t\t\tvalue = value(context);\n\t\t\t}\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\n\t\t\t\tvalue = value[index];\n\t\t\t}\n\t\t\tif (value !== undefined) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar helpers$1 = helpers_core;\nvar easing = helpers_easing;\nvar canvas = helpers_canvas;\nvar options = helpers_options;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\n\nfunction interpolate(start, view, model, ease) {\n\tvar keys = Object.keys(model);\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\n\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\tkey = keys[i];\n\n\t\ttarget = model[key];\n\n\t\t// if a value is added to the model after pivot() has been called, the view\n\t\t// doesn't contain it, so let's initialize the view to the target value.\n\t\tif (!view.hasOwnProperty(key)) {\n\t\t\tview[key] = target;\n\t\t}\n\n\t\tactual = view[key];\n\n\t\tif (actual === target || key[0] === '_') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!start.hasOwnProperty(key)) {\n\t\t\tstart[key] = actual;\n\t\t}\n\n\t\torigin = start[key];\n\n\t\ttype = typeof target;\n\n\t\tif (type === typeof origin) {\n\t\t\tif (type === 'string') {\n\t\t\t\tc0 = chartjsColor(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = chartjsColor(target);\n\t\t\t\t\tif (c1.valid) {\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\n\t\t\t\tview[key] = origin + (target - origin) * ease;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tview[key] = target;\n\t}\n}\n\nvar Element = function(configuration) {\n\thelpers$1.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers$1.extend(Element.prototype, {\n\n\tinitialize: function() {\n\t\tthis.hidden = false;\n\t},\n\n\tpivot: function() {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\tme._view = helpers$1.clone(me._model);\n\t\t}\n\t\tme._start = {};\n\t\treturn me;\n\t},\n\n\ttransition: function(ease) {\n\t\tvar me = this;\n\t\tvar model = me._model;\n\t\tvar start = me._start;\n\t\tvar view = me._view;\n\n\t\t// No animation -> No Transition\n\t\tif (!model || ease === 1) {\n\t\t\tme._view = model;\n\t\t\tme._start = null;\n\t\t\treturn me;\n\t\t}\n\n\t\tif (!view) {\n\t\t\tview = me._view = {};\n\t\t}\n\n\t\tif (!start) {\n\t\t\tstart = me._start = {};\n\t\t}\n\n\t\tinterpolate(start, view, model, ease);\n\n\t\treturn me;\n\t},\n\n\ttooltipPosition: function() {\n\t\treturn {\n\t\t\tx: this._model.x,\n\t\t\ty: this._model.y\n\t\t};\n\t},\n\n\thasValue: function() {\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers$1.inherits;\n\nvar core_element = Element;\n\nvar exports$2 = core_element.extend({\n\tchart: null, // the animation associated chart instance\n\tcurrentStep: 0, // the current animation step\n\tnumSteps: 60, // default number of steps\n\teasing: '', // the easing to use for this animation\n\trender: null, // render function used by the animation service\n\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\n});\n\nvar core_animation = exports$2;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$2.prototype, 'animationObject', {\n\tget: function() {\n\t\treturn this;\n\t}\n});\n\n/**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$2.prototype, 'chartInstance', {\n\tget: function() {\n\t\treturn this.chart;\n\t},\n\tset: function(value) {\n\t\tthis.chart = value;\n\t}\n});\n\ncore_defaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers$1.noop,\n\t\tonComplete: helpers$1.noop\n\t}\n});\n\nvar core_animations = {\n\tanimations: [],\n\trequest: null,\n\n\t/**\n\t * @param {Chart} chart - The chart to animate.\n\t * @param {Chart.Animation} animation - The animation that we will animate.\n\t * @param {number} duration - The animation duration in ms.\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n\t */\n\taddAnimation: function(chart, animation, duration, lazy) {\n\t\tvar animations = this.animations;\n\t\tvar i, ilen;\n\n\t\tanimation.chart = chart;\n\t\tanimation.startTime = Date.now();\n\t\tanimation.duration = duration;\n\n\t\tif (!lazy) {\n\t\t\tchart.animating = true;\n\t\t}\n\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\n\t\t\tif (animations[i].chart === chart) {\n\t\t\t\tanimations[i] = animation;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tanimations.push(animation);\n\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\tif (animations.length === 1) {\n\t\t\tthis.requestAnimationFrame();\n\t\t}\n\t},\n\n\tcancelAnimation: function(chart) {\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\n\t\t\treturn animation.chart === chart;\n\t\t});\n\n\t\tif (index !== -1) {\n\t\t\tthis.animations.splice(index, 1);\n\t\t\tchart.animating = false;\n\t\t}\n\t},\n\n\trequestAnimationFrame: function() {\n\t\tvar me = this;\n\t\tif (me.request === null) {\n\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tme.request = null;\n\t\t\t\tme.startDigest();\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tstartDigest: function() {\n\t\tvar me = this;\n\n\t\tme.advance();\n\n\t\t// Do we have more stuff to animate?\n\t\tif (me.animations.length > 0) {\n\t\t\tme.requestAnimationFrame();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tadvance: function() {\n\t\tvar animations = this.animations;\n\t\tvar animation, chart, numSteps, nextStep;\n\t\tvar i = 0;\n\n\t\t// 1 animation per chart, so we are looping charts here\n\t\twhile (i < animations.length) {\n\t\t\tanimation = animations[i];\n\t\t\tchart = animation.chart;\n\t\t\tnumSteps = animation.numSteps;\n\n\t\t\t// Make sure that currentStep starts at 1\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\n\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\tif (animation.currentStep >= numSteps) {\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\n\t\t\t\tchart.animating = false;\n\t\t\t\tanimations.splice(i, 1);\n\t\t\t} else {\n\t\t\t\t++i;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar resolve = helpers$1.options.resolve;\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\nfunction listenArrayEvents(array, listener) {\n\tif (array._chartjs) {\n\t\tarray._chartjs.listeners.push(listener);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(array, '_chartjs', {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tvalue: {\n\t\t\tlisteners: [listener]\n\t\t}\n\t});\n\n\tarrayEvents.forEach(function(key) {\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\tvar base = array[key];\n\n\t\tObject.defineProperty(array, key, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: function() {\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nfunction unlistenArrayEvents(array, listener) {\n\tvar stub = array._chartjs;\n\tif (!stub) {\n\t\treturn;\n\t}\n\n\tvar listeners = stub.listeners;\n\tvar index = listeners.indexOf(listener);\n\tif (index !== -1) {\n\t\tlisteners.splice(index, 1);\n\t}\n\n\tif (listeners.length > 0) {\n\t\treturn;\n\t}\n\n\tarrayEvents.forEach(function(key) {\n\t\tdelete array[key];\n\t});\n\n\tdelete array._chartjs;\n}\n\n// Base class for all dataset controllers (line, bar, etc)\nvar DatasetController = function(chart, datasetIndex) {\n\tthis.initialize(chart, datasetIndex);\n};\n\nhelpers$1.extend(DatasetController.prototype, {\n\n\t/**\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t * @type {Chart.core.element}\n\t */\n\tdatasetElementType: null,\n\n\t/**\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t * @type {Chart.core.element}\n\t */\n\tdataElementType: null,\n\n\tinitialize: function(chart, datasetIndex) {\n\t\tvar me = this;\n\t\tme.chart = chart;\n\t\tme.index = datasetIndex;\n\t\tme.linkScales();\n\t\tme.addElements();\n\t},\n\n\tupdateIndex: function(datasetIndex) {\n\t\tthis.index = datasetIndex;\n\t},\n\n\tlinkScales: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in me.chart.scales)) {\n\t\t\tmeta.xAxisID = dataset.xAxisID || me.chart.options.scales.xAxes[0].id;\n\t\t}\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in me.chart.scales)) {\n\t\t\tmeta.yAxisID = dataset.yAxisID || me.chart.options.scales.yAxes[0].id;\n\t\t}\n\t},\n\n\tgetDataset: function() {\n\t\treturn this.chart.data.datasets[this.index];\n\t},\n\n\tgetMeta: function() {\n\t\treturn this.chart.getDatasetMeta(this.index);\n\t},\n\n\tgetScaleForId: function(scaleID) {\n\t\treturn this.chart.scales[scaleID];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScale: function() {\n\t\treturn this.getScaleForId(this._getValueScaleId());\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScale: function() {\n\t\treturn this.getScaleForId(this._getIndexScaleId());\n\t},\n\n\treset: function() {\n\t\tthis.update(true);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroy: function() {\n\t\tif (this._data) {\n\t\t\tunlistenArrayEvents(this._data, this);\n\t\t}\n\t},\n\n\tcreateMetaDataset: function() {\n\t\tvar me = this;\n\t\tvar type = me.datasetElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index\n\t\t});\n\t},\n\n\tcreateMetaData: function(index) {\n\t\tvar me = this;\n\t\tvar type = me.dataElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index\n\t\t});\n\t},\n\n\taddElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data || [];\n\t\tvar metaData = meta.data;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t}\n\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t},\n\n\taddElementAndReset: function(index) {\n\t\tvar element = this.createMetaData(index);\n\t\tthis.getMeta().data.splice(index, 0, element);\n\t\tthis.updateElement(element, index, true);\n\t},\n\n\tbuildOrUpdateElements: function() {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t// the internal meta data accordingly.\n\t\tif (me._data !== data) {\n\t\t\tif (me._data) {\n\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t}\n\n\t\t\tif (data && Object.isExtensible(data)) {\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t}\n\t\t\tme._data = data;\n\t\t}\n\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\tme.resyncElements();\n\t},\n\n\tupdate: helpers$1.noop,\n\n\ttransition: function(easingValue) {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].transition(easingValue);\n\t\t}\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.transition(easingValue);\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.draw();\n\t\t}\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].draw();\n\t\t}\n\t},\n\n\tremoveHoverStyle: function(element) {\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\n\t\tdelete element.$previousStyle;\n\t},\n\n\tsetHoverStyle: function(element) {\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\tvar index = element._index;\n\t\tvar custom = element.custom || {};\n\t\tvar model = element._model;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\telement.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth\n\t\t};\n\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tresyncElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data;\n\t\tvar numMeta = meta.data.length;\n\t\tvar numData = data.length;\n\n\t\tif (numData < numMeta) {\n\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t} else if (numData > numMeta) {\n\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinsertElements: function(start, count) {\n\t\tfor (var i = 0; i < count; ++i) {\n\t\t\tthis.addElementAndReset(start + i);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPush: function() {\n\t\tvar count = arguments.length;\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPop: function() {\n\t\tthis.getMeta().data.pop();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataShift: function() {\n\t\tthis.getMeta().data.shift();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataSplice: function(start, count) {\n\t\tthis.getMeta().data.splice(start, count);\n\t\tthis.insertElements(start, arguments.length - 2);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataUnshift: function() {\n\t\tthis.insertElements(0, arguments.length);\n\t}\n});\n\nDatasetController.extend = helpers$1.inherits;\n\nvar core_datasetController = DatasetController;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2,\n\t\t\tborderAlign: 'center'\n\t\t}\n\t}\n});\n\nvar element_arc = core_element.extend({\n\tinLabelRange: function(mouseX) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n\t\t}\n\t\treturn false;\n\t},\n\n\tinRange: function(chartX, chartY) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\n\t\t\tvar\tangle = pointRelativePosition.angle;\n\t\t\tvar distance = pointRelativePosition.distance;\n\n\t\t\t// Sanitise angle range\n\t\t\tvar startAngle = vm.startAngle;\n\t\t\tvar endAngle = vm.endAngle;\n\t\t\twhile (endAngle < startAngle) {\n\t\t\t\tendAngle += 2.0 * Math.PI;\n\t\t\t}\n\t\t\twhile (angle > endAngle) {\n\t\t\t\tangle -= 2.0 * Math.PI;\n\t\t\t}\n\t\t\twhile (angle < startAngle) {\n\t\t\t\tangle += 2.0 * Math.PI;\n\t\t\t}\n\n\t\t\t// Check if within the range of the open/close angle\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n\t\t\treturn (betweenAngles && withinRadius);\n\t\t}\n\t\treturn false;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n\t\treturn {\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n\t\treturn {\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar sA = vm.startAngle;\n\t\tvar eA = vm.endAngle;\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\n\t\tvar angleMargin;\n\n\t\tctx.save();\n\n\t\tctx.beginPath();\n\t\tctx.arc(vm.x, vm.y, Math.max(vm.outerRadius - pixelMargin, 0), sA, eA);\n\t\tctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\n\t\tctx.closePath();\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth) {\n\t\t\tif (vm.borderAlign === 'inner') {\n\t\t\t\t// Draw an inner border by cliping the arc and drawing a double-width border\n\t\t\t\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n\t\t\t\tctx.beginPath();\n\t\t\t\tangleMargin = pixelMargin / vm.outerRadius;\n\t\t\t\tctx.arc(vm.x, vm.y, vm.outerRadius, sA - angleMargin, eA + angleMargin);\n\t\t\t\tif (vm.innerRadius > pixelMargin) {\n\t\t\t\t\tangleMargin = pixelMargin / vm.innerRadius;\n\t\t\t\t\tctx.arc(vm.x, vm.y, vm.innerRadius - pixelMargin, eA + angleMargin, sA - angleMargin, true);\n\t\t\t\t} else {\n\t\t\t\t\tctx.arc(vm.x, vm.y, pixelMargin, eA + Math.PI / 2, sA - Math.PI / 2);\n\t\t\t\t}\n\t\t\t\tctx.closePath();\n\t\t\t\tctx.clip();\n\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA);\n\t\t\t\tctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\n\t\t\t\tctx.closePath();\n\n\t\t\t\tctx.lineWidth = vm.borderWidth * 2;\n\t\t\t\tctx.lineJoin = 'round';\n\t\t\t} else {\n\t\t\t\tctx.lineWidth = vm.borderWidth;\n\t\t\t\tctx.lineJoin = 'bevel';\n\t\t\t}\n\n\t\t\tctx.strokeStyle = vm.borderColor;\n\t\t\tctx.stroke();\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\n\nvar defaultColor = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: defaultColor,\n\t\t\tborderCapStyle: 'butt',\n\t\t\tborderDash: [],\n\t\t\tborderDashOffset: 0.0,\n\t\t\tborderJoinStyle: 'miter',\n\t\t\tcapBezierPoints: true,\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\n\t\t}\n\t}\n});\n\nvar element_line = core_element.extend({\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar vm = me._view;\n\t\tvar ctx = me._chart.ctx;\n\t\tvar spanGaps = vm.spanGaps;\n\t\tvar points = me._children.slice(); // clone array\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\n\t\tvar lastDrawnIndex = -1;\n\t\tvar index, current, previous, currentVM;\n\n\t\t// If we are looping, adding the first point again\n\t\tif (me._loop && points.length) {\n\t\t\tpoints.push(points[0]);\n\t\t}\n\n\t\tctx.save();\n\n\t\t// Stroke Line Options\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n\t\t// IE 9 and 10 do not support line dash\n\t\tif (ctx.setLineDash) {\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n\t\t}\n\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n\t\t// Stroke Line\n\t\tctx.beginPath();\n\t\tlastDrawnIndex = -1;\n\n\t\tfor (index = 0; index < points.length; ++index) {\n\t\t\tcurrent = points[index];\n\t\t\tprevious = helpers$1.previousItem(points, index);\n\t\t\tcurrentVM = current._view;\n\n\t\t\t// First point moves to it's starting position no matter what\n\t\t\tif (index === 0) {\n\t\t\t\tif (!currentVM.skip) {\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t\tlastDrawnIndex = index;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tprevious = lastDrawnIndex === -1 ? previous : points[lastDrawnIndex];\n\n\t\t\t\tif (!currentVM.skip) {\n\t\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n\t\t\t\t\t\t// There was a gap and this is the first point after the gap\n\t\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Line to next point\n\t\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, current._view);\n\t\t\t\t\t}\n\t\t\t\t\tlastDrawnIndex = index;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tctx.stroke();\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\n\nvar defaultColor$1 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor$1,\n\t\t\tborderColor: defaultColor$1,\n\t\t\tborderWidth: 1,\n\t\t\t// Hover\n\t\t\thitRadius: 1,\n\t\t\thoverRadius: 4,\n\t\t\thoverBorderWidth: 1\n\t\t}\n\t}\n});\n\nfunction xRange(mouseX) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\n}\n\nfunction yRange(mouseY) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\n}\n\nvar element_point = core_element.extend({\n\tinRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n\t},\n\n\tinLabelRange: xRange,\n\tinXRange: xRange,\n\tinYRange: yRange,\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tpadding: vm.radius + vm.borderWidth\n\t\t};\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar vm = this._view;\n\t\tvar ctx = this._chart.ctx;\n\t\tvar pointStyle = vm.pointStyle;\n\t\tvar rotation = vm.rotation;\n\t\tvar radius = vm.radius;\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\n\n\t\tif (vm.skip) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clipping for Points.\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n\t\t}\n\t}\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaultColor$2,\n\t\t\tborderColor: defaultColor$2,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(vm) {\n\treturn vm && vm.width !== undefined;\n}\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\nfunction getBarBounds(vm) {\n\tvar x1, x2, y1, y2, half;\n\n\tif (isVertical(vm)) {\n\t\thalf = vm.width / 2;\n\t\tx1 = vm.x - half;\n\t\tx2 = vm.x + half;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\thalf = vm.height / 2;\n\t\tx1 = Math.min(vm.x, vm.base);\n\t\tx2 = Math.max(vm.x, vm.base);\n\t\ty1 = vm.y - half;\n\t\ty2 = vm.y + half;\n\t}\n\n\treturn {\n\t\tleft: x1,\n\t\ttop: y1,\n\t\tright: x2,\n\t\tbottom: y2\n\t};\n}\n\nfunction swap(orig, v1, v2) {\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction parseBorderSkipped(vm) {\n\tvar edge = vm.borderSkipped;\n\tvar res = {};\n\n\tif (!edge) {\n\t\treturn res;\n\t}\n\n\tif (vm.horizontal) {\n\t\tif (vm.base > vm.x) {\n\t\t\tedge = swap(edge, 'left', 'right');\n\t\t}\n\t} else if (vm.base < vm.y) {\n\t\tedge = swap(edge, 'bottom', 'top');\n\t}\n\n\tres[edge] = true;\n\treturn res;\n}\n\nfunction parseBorderWidth(vm, maxW, maxH) {\n\tvar value = vm.borderWidth;\n\tvar skip = parseBorderSkipped(vm);\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = +value.top || 0;\n\t\tr = +value.right || 0;\n\t\tb = +value.bottom || 0;\n\t\tl = +value.left || 0;\n\t} else {\n\t\tt = r = b = l = +value || 0;\n\t}\n\n\treturn {\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\n\t};\n}\n\nfunction boundingRects(vm) {\n\tvar bounds = getBarBounds(vm);\n\tvar width = bounds.right - bounds.left;\n\tvar height = bounds.bottom - bounds.top;\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\n\n\treturn {\n\t\touter: {\n\t\t\tx: bounds.left,\n\t\t\ty: bounds.top,\n\t\t\tw: width,\n\t\t\th: height\n\t\t},\n\t\tinner: {\n\t\t\tx: bounds.left + border.l,\n\t\t\ty: bounds.top + border.t,\n\t\t\tw: width - border.l - border.r,\n\t\t\th: height - border.t - border.b\n\t\t}\n\t};\n}\n\nfunction inRange(vm, x, y) {\n\tvar skipX = x === null;\n\tvar skipY = y === null;\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\n\n\treturn bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nvar element_rectangle = core_element.extend({\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar rects = boundingRects(vm);\n\t\tvar outer = rects.outer;\n\t\tvar inner = rects.inner;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\n\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\n\t\tctx.clip();\n\t\tctx.fillStyle = vm.borderColor;\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\n\t\tctx.fill('evenodd');\n\t\tctx.restore();\n\t},\n\n\theight: function() {\n\t\tvar vm = this._view;\n\t\treturn vm.base - vm.y;\n\t},\n\n\tinRange: function(mouseX, mouseY) {\n\t\treturn inRange(this._view, mouseX, mouseY);\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn isVertical(vm)\n\t\t\t? inRange(vm, mouseX, null)\n\t\t\t: inRange(vm, null, mouseY);\n\t},\n\n\tinXRange: function(mouseX) {\n\t\treturn inRange(this._view, mouseX, null);\n\t},\n\n\tinYRange: function(mouseY) {\n\t\treturn inRange(this._view, null, mouseY);\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(vm)) {\n\t\t\tx = vm.x;\n\t\t\ty = (vm.y + vm.base) / 2;\n\t\t} else {\n\t\t\tx = (vm.x + vm.base) / 2;\n\t\t\ty = vm.y;\n\t\t}\n\n\t\treturn {x: x, y: y};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\n\t\treturn isVertical(vm)\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t}\n});\n\nvar elements = {};\nvar Arc = element_arc;\nvar Line = element_line;\nvar Point = element_point;\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar resolve$1 = helpers$1.options.resolve;\n\ncore_defaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9,\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'linear'\n\t\t}]\n\t}\n});\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(scale, pixels) {\n\tvar min = scale.isHorizontal() ? scale.width : scale.height;\n\tvar ticks = scale.getTicks();\n\tvar prev, curr, i, ilen;\n\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\n\t}\n\n\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\tcurr = scale.getPixelForTick(i);\n\t\tmin = i > 0 ? Math.min(min, curr - prev) : min;\n\t\tprev = curr;\n\t}\n\n\treturn min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options) {\n\tvar thickness = options.barThickness;\n\tvar count = ruler.stackCount;\n\tvar curr = ruler.pixels[index];\n\tvar size, ratio;\n\n\tif (helpers$1.isNullOrUndef(thickness)) {\n\t\tsize = ruler.min * options.categoryPercentage;\n\t\tratio = options.barPercentage;\n\t} else {\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\n\t\tsize = thickness * count;\n\t\tratio = 1;\n\t}\n\n\treturn {\n\t\tchunk: size / count,\n\t\tratio: ratio,\n\t\tstart: curr - (size / 2)\n\t};\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options) {\n\tvar pixels = ruler.pixels;\n\tvar curr = pixels[index];\n\tvar prev = index > 0 ? pixels[index - 1] : null;\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\n\tvar percent = options.categoryPercentage;\n\tvar start, size;\n\n\tif (prev === null) {\n\t\t// first data: its size is double based on the next point or,\n\t\t// if it's also the last data, we use the scale size.\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n\t}\n\n\tif (next === null) {\n\t\t// last data: its size is also double based on the previous point.\n\t\tnext = curr + curr - prev;\n\t}\n\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\n\tsize = Math.abs(next - prev) / 2 * percent;\n\n\treturn {\n\t\tchunk: size / ruler.stackCount,\n\t\tratio: options.barPercentage,\n\t\tstart: start\n\t};\n}\n\nvar controller_bar = core_datasetController.extend({\n\n\tdataElementType: elements.Rectangle,\n\n\tinitialize: function() {\n\t\tvar me = this;\n\t\tvar meta;\n\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\n\n\t\tmeta = me.getMeta();\n\t\tmeta.stack = me.getDataset().stack;\n\t\tmeta.bar = true;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar rects = me.getMeta().data;\n\t\tvar i, ilen;\n\n\t\tme._ruler = me.getRuler();\n\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\tme.updateElement(rects[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\t\tvar options = me._resolveElementOptions(rectangle, index);\n\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\trectangle._datasetIndex = me.index;\n\t\trectangle._index = index;\n\t\trectangle._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderSkipped: options.borderSkipped,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\tdatasetLabel: dataset.label,\n\t\t\tlabel: me.chart.data.labels[index]\n\t\t};\n\n\t\tme._updateElementGeometry(rectangle, index, reset);\n\n\t\trectangle.pivot();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateElementGeometry: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar model = rectangle._model;\n\t\tvar vscale = me._getValueScale();\n\t\tvar base = vscale.getBasePixel();\n\t\tvar horizontal = vscale.isHorizontal();\n\t\tvar ruler = me._ruler || me.getRuler();\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index);\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler);\n\n\t\tmodel.horizontal = horizontal;\n\t\tmodel.base = reset ? base : vpixels.base;\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t},\n\n\t/**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n\t_getStacks: function(last) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getIndexScale();\n\t\tvar stacked = scale.options.stacked;\n\t\tvar ilen = last === undefined ? chart.data.datasets.length : last + 1;\n\t\tvar stacks = [];\n\t\tvar i, meta;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\tif (meta.bar && chart.isDatasetVisible(i) &&\n\t\t\t\t(stacked === false ||\n\t\t\t\t(stacked === true && stacks.indexOf(meta.stack) === -1) ||\n\t\t\t\t(stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) {\n\t\t\t\tstacks.push(meta.stack);\n\t\t\t}\n\t\t}\n\n\t\treturn stacks;\n\t},\n\n\t/**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n\tgetStackCount: function() {\n\t\treturn this._getStacks().length;\n\t},\n\n\t/**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n\t * @returns {number} The stack index\n\t * @private\n\t */\n\tgetStackIndex: function(datasetIndex, name) {\n\t\tvar stacks = this._getStacks(datasetIndex);\n\t\tvar index = (name !== undefined)\n\t\t\t? stacks.indexOf(name)\n\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\treturn (index === -1)\n\t\t\t? stacks.length - 1\n\t\t\t: index;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetRuler: function() {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar stackCount = me.getStackCount();\n\t\tvar datasetIndex = me.index;\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar start = isHorizontal ? scale.left : scale.top;\n\t\tvar end = start + (isHorizontal ? scale.width : scale.height);\n\t\tvar pixels = [];\n\t\tvar i, ilen, min;\n\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\tpixels.push(scale.getPixelForValue(null, i, datasetIndex));\n\t\t}\n\n\t\tmin = helpers$1.isNullOrUndef(scale.options.barThickness)\n\t\t\t? computeMinSampleSize(scale, pixels)\n\t\t\t: -1;\n\n\t\treturn {\n\t\t\tmin: min,\n\t\t\tpixels: pixels,\n\t\t\tstart: start,\n\t\t\tend: end,\n\t\t\tstackCount: stackCount,\n\t\t\tscale: scale\n\t\t};\n\t},\n\n\t/**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n\tcalculateBarValuePixels: function(datasetIndex, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar scale = me._getValueScale();\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar datasets = chart.data.datasets;\n\t\tvar value = +scale.getRightValue(datasets[datasetIndex].data[index]);\n\t\tvar minBarLength = scale.options.minBarLength;\n\t\tvar stacked = scale.options.stacked;\n\t\tvar stack = meta.stack;\n\t\tvar start = 0;\n\t\tvar i, imeta, ivalue, base, head, size;\n\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\tfor (i = 0; i < datasetIndex; ++i) {\n\t\t\t\timeta = chart.getDatasetMeta(i);\n\n\t\t\t\tif (imeta.bar &&\n\t\t\t\t\timeta.stack === stack &&\n\t\t\t\t\timeta.controller._getValueScaleId() === scale.id &&\n\t\t\t\t\tchart.isDatasetVisible(i)) {\n\n\t\t\t\t\tivalue = +scale.getRightValue(datasets[i].data[index]);\n\t\t\t\t\tif ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) {\n\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbase = scale.getPixelForValue(start);\n\t\thead = scale.getPixelForValue(start + value);\n\t\tsize = head - base;\n\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n\t\t\tsize = minBarLength;\n\t\t\tif (value >= 0 && !isHorizontal || value < 0 && isHorizontal) {\n\t\t\t\thead = base - minBarLength;\n\t\t\t} else {\n\t\t\t\thead = base + minBarLength;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsize: size,\n\t\t\tbase: base,\n\t\t\thead: head,\n\t\t\tcenter: head + size / 2\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler) {\n\t\tvar me = this;\n\t\tvar options = ruler.scale.options;\n\t\tvar range = options.barThickness === 'flex'\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\tvar size = Math.min(\n\t\t\thelpers$1.valueOrDefault(options.maxBarThickness, Infinity),\n\t\t\trange.chunk * range.ratio);\n\n\t\treturn {\n\t\t\tbase: center - size / 2,\n\t\t\thead: center + size / 2,\n\t\t\tcenter: center,\n\t\t\tsize: size\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar rects = me.getMeta().data;\n\t\tvar dataset = me.getDataset();\n\t\tvar ilen = rects.length;\n\t\tvar i = 0;\n\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tif (!isNaN(scale.getRightValue(dataset.data[i]))) {\n\t\t\t\trects[i].draw();\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveElementOptions: function(rectangle, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar dataset = datasets[me.index];\n\t\tvar custom = rectangle.custom || {};\n\t\tvar options = chart.options.elements.rectangle;\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\tvar keys = [\n\t\t\t'backgroundColor',\n\t\t\t'borderColor',\n\t\t\t'borderSkipped',\n\t\t\t'borderWidth'\n\t\t];\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$1([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[key],\n\t\t\t\toptions[key]\n\t\t\t], context, index);\n\t\t}\n\n\t\treturn values;\n\t}\n});\n\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\nvar resolve$2 = helpers$1.options.resolve;\n\ncore_defaults._set('bubble', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\n\t\t\tposition: 'bottom',\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_bubble = core_datasetController.extend({\n\t/**\n\t * @protected\n\t */\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @protected\n\t */\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data;\n\n\t\t// Update Points\n\t\thelpers$1.each(points, function(point, index) {\n\t\t\tme.updateElement(point, index, reset);\n\t\t});\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar options = me._resolveElementOptions(point, index);\n\t\tvar data = me.getDataset().data[index];\n\t\tvar dsIndex = me.index;\n\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = dsIndex;\n\t\tpoint._index = index;\n\t\tpoint._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\thitRadius: options.hitRadius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tradius: reset ? 0 : options.radius,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t};\n\n\t\tpoint.pivot();\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$3(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$3(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$3(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = options.radius + options.hoverRadius;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveElementOptions: function(point, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar dataset = datasets[me.index];\n\t\tvar custom = point.custom || {};\n\t\tvar options = chart.options.elements.point;\n\t\tvar data = dataset.data[index];\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\tvar keys = [\n\t\t\t'backgroundColor',\n\t\t\t'borderColor',\n\t\t\t'borderWidth',\n\t\t\t'hoverBackgroundColor',\n\t\t\t'hoverBorderColor',\n\t\t\t'hoverBorderWidth',\n\t\t\t'hoverRadius',\n\t\t\t'hitRadius',\n\t\t\t'pointStyle',\n\t\t\t'rotation'\n\t\t];\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$2([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[key],\n\t\t\t\toptions[key]\n\t\t\t], context, index);\n\t\t}\n\n\t\t// Custom radius resolution\n\t\tvalues.radius = resolve$2([\n\t\t\tcustom.radius,\n\t\t\tdata ? data.r : undefined,\n\t\t\tdataset.radius,\n\t\t\toptions.radius\n\t\t], context, index);\n\n\t\treturn values;\n\t}\n});\n\nvar resolve$3 = helpers$1.options.resolve;\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\n\ncore_defaults._set('doughnut', {\n\tanimation: {\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\n\t\tanimateRotate: true,\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\n\t\tanimateScale: false\n\t},\n\thover: {\n\t\tmode: 'single'\n\t},\n\tlegendCallback: function(chart) {\n\t\tvar text = [];\n\t\ttext.push('
You can easily create reuseable chart components. vue-chartjs is a wrapper for Chart.js. Read full documnetation here
\r\n\r\n